-
系统配置(master和node节点都配置)
-
修改yum源为阿里源
-
备份本地yum源
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo_bak
-
获取阿里yum源配置文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
-
更新yum缓存
yum makecache
-
查看当前yum源
yum repolist 已加载插件:fastestmirror, langpacks Loading mirror speeds from cached hostfile * base: mirrors.aliyun.com * extras: mirrors.aliyun.com * updates: mirrors.aliyun.com 源标识
-
-
关闭防火墙(必须关闭)
systemctl stop firewalld systemctl disable firewalld
-
关闭selinux
setenforce 0
-
关闭交换区
swapoff -a 临时关闭 free 可以通过这个命令查看swap是否关闭了 vim /etc/fstab 永久关闭 注释掉swap行数据
-
添加主机名与IP对应关系
vim /etc/hosts 添加如下内容: 10.3.133.115 k8s-master 10.3.133.116 k8s-node1 10.3.133.117 k8s-node2
-
将桥接的IPV4流量传递到iptables的链接
cat > /etc/sysctl.d/k8s.conf << EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system
-
安装docker
-
下载并安装docker
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O/etc/yum.repos.d/docker-ce.repo yum install -y docker-ce
-
设置docker的配置
# 创建docker-root的目录 mkdir /data # 创建docker配置存储的目录 mkdir /etc/docker # 设置docker配置文件(注意:"exec-opts": ["native.cgroupdriver=systemd"]) sudo vim /etc/docker/daemon.json 内容如下: { "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2", "storage-opts": [ "overlay2.override_kernel_check=true" ], "data-root": "/data/docker" }
-
设置开机启动
systemctl enable docker systemctl start docker
-
查看docker版本
docker --version Docker version 20.10.10, build b485636
-
添加阿里云yum软件园
直接执行如下命令: 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=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF
-
安装kubeadm,kubelet和kubectl
在部署kubernetes时,要求master node和worker node上的版本保持一致,否则会出现版本不匹配导致奇怪的问题出现。 使用yum安装程序时,提示xxx.rpm公钥尚未安装 使用 yum install xxx.rpm --nogpgcheck 命令格式跳过公钥检查 yum install -y kubelet kubectl kubeadm --nogpgcheck
-
设置kubelet开机启动
systemctl enable kubelet
-
-
-
-
k8s安装配置
- 规划
10.3.133.115 k8s-master 10.3.133.116 k8s-node1 10.3.133.117 k8s-node2
- 部署Kubernetes Master(Master节点)
- 初始化kubeadm
# 10.3.133.115 master节点IP kubeadm init \ --apiserver-advertise-address=10.3.133.115 \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version v1.22.3 \ --service-cidr=10.1.0.0/16 \ --pod-network-cidr=10.244.0.0/16
-
初始化成功标识
-
-
使用kubectl工具
复制如下命令直接执行 mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config 下面就可以直接使用kubectl命令了 kubectl get node
- 初始化kubeadm
- 安装Pod网络插件(CNI) 10.1 安装插件
- 安装命令如下:建议本地安装
kubectl apply -f kube-flannel.yml
文件原始地址:kube-flannel.yml/kube-flannel.yml at master · caoran/kube-flannel.yml · GitHub
原始地址文件使用会有警告,经修改后的最终文件如下:kube-flannel.yml
- 成功的标识
- 查看是否部署成功
kubectl get pods -n kube-system
pod全部为running表示成功
- 再次查看node,可以看到状态为ready
- 安装命令如下:建议本地安装
- Node节点加入集群 向集群添加新节点,执行在kubeadm init输出的kubeadm join命令: 复制上面命令,在node节点上执行
清空当前初始化环境 kubeadm reset 直接命令快捷生成(在master上执行):kubeadm token create --print-join-command kubeadm join 10.3.133.115:6443 --token ctn46e.qw4vlqs9t55j85wx \ --discovery-token-ca-cert-hash sha256:548f0da61990b628356f91bef7784d5113ece69bf8c7f19b132d5c256f921c26
- 规划
-
部署dashboard的Web-UI界面
- 下载文件原始地址,修改后的最终文件:最终文件
- 编辑文件
//编辑yaml文件 [root@docker-k8s01 ~]# vim recommended.yaml //跳转到40行左右,修改其对应的service,类型配置为Nodeport kind: Service apiVersion: v1 metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kubernetes-dashboard spec: type: NodePort //添加类型为NodePort ports: - port: 443 targetPort: 8443 nodePort: 31010 //映射到宿主机的端口为31010 selector: k8s-app: kubernetes-dashboard //执行yaml文件 [root@docker-k8s01 ~]# kubectl apply -f recommended.yaml //查看Pod是否运行 [root@docker-k8s01 ~]# kubectl get pod -n kubernetes-dashboard //查看其详细信息 [root@docker-k8s01 ~]# kubectl describe pod -n kubernetes-dashboard dashboard-metrics-scraper-76679bc5b9-sbcvw //确保该yaml文件提供的pod都正常运行 [root@docker-k8s01 ~]# kubectl get svc -n kubernetes-dashboard NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE dashboard-metrics-scraper ClusterIP 10.103.65.117 <none> 8000/TCP 3m3s kubernetes-dashboard NodePort 10.110.154.42 <none> 443:31010/TCP 3m3s
- 访问测试:这里使用的dashboard版本较高,相较于之前的版本访问必须使用火狐浏览器,这里不需要。
- 访问https://10.3.133.115:31010(访问集群内的任意节点IP都可以,注意是https)
- 选择token方式,另一种方式待研究
- 使用如下方式获取token值
- 将Token值粘贴到下面
- 至此,就可以在web界面进行监控群集节点的信息,及创建资源对象
- 注:一般不会在这上面进行创建资源对象
- 访问https://10.3.133.115:31010(访问集群内的任意节点IP都可以,注意是https)
CentOS Linux release 7.9.2009 (Core)部署k8s集群及WEB UI
最新推荐文章于 2024-06-26 16:43:14 发布