K8S简单部署,以及UI界面配置

news/2024/11/6 8:52:57 标签: kubernetes, 容器, 云原生, linux, 运维

准备两台服务器K8Smaster和K8Sminion

分别在两台服务器上执行以下代码

#添加hosts解析;
cat >/etc/hosts<<EOF
127.0.0.1 localhost localhost.localdomain
192.168.45.133 master1
192.168.45.135 node2
EOF
#临时关闭selinux和防火墙;
sed -i '/SELINUX/s/enforcing/disabled/g'  /etc/sysconfig/selinux
setenforce  0
systemctl   stop     firewalld.service
systemctl   disable   firewalld.service
#同步节点时间;
yum install ntpdate -y
ntpdate  pool.ntp.org
#修改对应节点主机名;
hostname `cat /etc/hosts|grep $(ifconfig|grep broadcast|awk '{print $2}')|awk '{print $2}'`;su
#关闭swapoff;
swapoff -a

执行完成后,主节点名称改为master1,monion节点名称变为node2

分别在两台服务器master1、node2节点进行如下配置:

cat > /etc/modules-load.d/ipvs.conf <<EOF
# Load IPVS at boot
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack_ipv4
EOF
systemctl enable --now systemd-modules-load.service
#确认内核模块加载成功
lsmod | grep -e ip_vs -e nf_conntrack_ipv4
#安装ipset、ipvsadm
yum install -y ipset ipvsadm
#配置内核参数;
cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

在node1、node2节点进行如下配置:

# 安装依赖软件包
yum install -y device-mapper-persistent-data lvm2
yum install -y docker
#修改docker配置文件
mkdir /etc/docker
cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "registry-mirrors": ["https://uyah70su.mirror.aliyuncs.com"]
}
EOF
# 注意,由于国内拉取镜像较慢,配置文件最后增加了registry-mirrors
mkdir -p /etc/systemd/system/docker.service.d
# 重启docker服务
systemctl daemon-reload
systemctl enable docker.service
systemctl start docker.service
ps -ef|grep -aiE docker

看到进程就说明配置成功

在两台服务器Kubernetes上添加部署源

cat>>/etc/yum.repos.d/kubernetes.repo<<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
EOF

在两台你服务器上执行以下配置

#安装Kubeadm;
yum install -y kubeadm-1.20.4 kubelet-1.20.4 kubectl-1.20.4
#启动kubelet服务
systemctl enable kubelet.service
systemctl start kubelet.service
systemctl start docker.service

执行完检查是否安装完毕

在master1进行如下配置,执行kubeadm init初始化安装Master相关软件

kubeadm init   --control-plane-endpoint=192.168.45.133:6443 --image-repository registry.aliyuncs.com/google_containers   --kubernetes-version v1.20.4   --service-cidr=10.10.0.0/16   --pod-network-cidr=10.244.0.0/16   --upload-certs

看到这条语句说明初始化成功

在master1执行以下配置

在node执行以下命令,添加节点

在master上执行以下命令

删除节点命令如下

重置kube,重新执行添加节点命令

 因为网络没有连通,所以显示notready

在主节点上需要进行网络节点的配置,下载calico.yaml文件,下载网络插件wget https://docs.projectcalico.org/v3.10/manifests/calico.yaml

上传四个镜像文件

将主键加载到容器列表

将calico.yaml里面镜像修改为自己私有仓库的地址、修改镜像下载策略为使用本地;

在node上同时上传四个镜像文件,并加载到docker容器

在主节点加calico.yaml配置文件

之后发现网络连通状态为ready

查看Flanneld网络组建是否部署成功;

部署Dashboard所有指令在master上执行即可,下载Dashboard配置文件;

备份下载的recommended.yaml文件,修改文件recommended.yaml的39行内容,#因为默认情况下,service的类型是cluster IP,需更改为NodePort的方式,便于访问,也可映射到指定的端口。

修改文件recommended.yaml的195行内容,#因为默认情况下Dashboard为英文显示,可以设置为中文。

删除默认image下载策略,添加新的策略使用本地镜像

在所有节点master和node1上导入dashboard镜像;

ls k8s-dashboard.tar k8s-metrics-scraper.tar

for i in $(ls *.tar);do docker load -i $i ;done

执行以下命令

#执行kubectl apply -f recommended.yaml;

kubectl apply -f recommended.yaml

查看Dashboard运行状态;

kubectl get pod -n kubernetes-dashboard

kubectl get svc -n kubernetes-dashboard

#创建Dashboard的管理用户;
kubectl create serviceaccount dashboard-admin -n kube-system
#将创建的dashboard用户绑定为管理用户;
kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin

此时访问K8S前台页面显示如下

此时在Token中输入token值

成功登录前台页面

此时K8S前台UI界面显示成功,配置成功


http://www.niftyadmin.cn/n/5740685.html

相关文章

【Linux】简易版shell

文章目录 shell的基本框架PrintCommandLineGetCommandLineParseCommandLineExecuteCommandInitEnvCheckAndExecBuildCommand代码总览运行效果总结 shell的基本框架 要写一个命令行我们首先要写出基本框架。 打印命令行获取用户输入的命令分析命令执行命令 基本框架的代码&am…

【STL栈和队列】:高效数据结构的应用秘籍

前言&#xff1a; C 标准模板库&#xff08;STL&#xff09;为我们提供了多种容器&#xff0c;其中 stack&#xff08;栈&#xff09;和 queue&#xff08;队列&#xff09;是非常常用的两种容器。 根据之前C语言实现的栈和队列&#xff0c;&#xff08;如有遗忘&#xff0c;…

Java中的远程方法调用——RPC详解

1. 什么是RPC&#xff1f; RPC基础介绍 Java中的远程方法调用&#xff08;Remote Procedure Call&#xff0c;RPC&#xff09;是一种允许一个程序调用另一台计算机上方法的技术&#xff0c;就像在本地一样。RPC的核心思想是简化分布式计算&#xff0c;让我们可以跨网络调用远程…

【SPIE单独出版审核,见刊检索稳定!】2024年遥感技术与图像处理国际学术会议(RSTIP 2024,11月29-12月1日)

2024年遥感技术与图像处理国际学术会议&#xff08;RSTIP 2024&#xff09; 2024 International Conference on Remote Sensing Technology and Image Processing 官方信息 会议官网&#xff1a;www.rstip.org 时间地点&#xff1a;2024年11月29-12月1日 | 中国大理 三轮截…

网络自动化03:简单解释send_config_set方法并举例

目录 拓扑图设备信息 netmiko涉及方法send_config_set()方法的简单示例代码输出结果代码解释导入模块配置信息config_device_interface_description 函数主程序块总结 send_config_set方法参数&#xff1a;1. enter_config_mode2. config_commands3. enter_config_mode4. error…

ClickHouse集成Mysql表引擎跨服务器读表说明

MySQL表引擎 Clickhouse 上的MySQL引擎可以对存在远程MySQL服务器上的数据执行SELECT查询。 调用格式&#xff1a; MySQL(host:port, database, table, user, password, replace_query, on_duplicate_clause); 调用参数 host:port — MySQL 服务器地址。 database — 数据…

005-Kotlin界面开发之程序猿初试Composable

组合的概念 在Jetpack Compose中&#xff0c;提出了一个概念就是可组合的声明式界面开发。 这个Compose就是可组合中“组合”的意思。也就是我们描述界面&#xff0c;有一系列可以组合使用的元素&#xff0c;这些元素嵌套组合&#xff0c;构成复杂的界面。这种方式和传统的XM…

React前端框架:构建现代Web应用的利器

React前端框架&#xff1a;构建现代Web应用的利器 在当今的Web开发领域&#xff0c;React前端框架无疑是最受欢迎和广泛使用的工具之一。自2013年由Facebook推出以来&#xff0c;React已经成为了构建动态、高性能Web应用的首选框架。本文将深入探讨React的核心概念、优势以及如…