本篇主要介绍kubernetes的1.20.6版本集群安装,废话不多说,直接看步骤:
主机节点:
主机操作系统:Centos7.9 配置: 内存建议4G,CPU建议2C以上
K8s节点IP段:
Pod段:10.244.0.0/16
Svc段:10.96.0.0/16
注意:不要和主机IP段重复
# vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改各个主机节点对应的ip为:192.168.40.21\192.168.40.22\192.168.40.23
重启网络服务
# service network restart
#192.168.40.21节点执行:
# hostnamectl set-hostname zchmaster1 && bash
#192.168.40.22节点执行:
# hostnamectl set-hostname zchnode1 && bash
#192.168.40.23节点执行:
# hostnamectl set-hostname zchnode2 && bash
# vi /etc/hosts
添加如下内容:
192.168.40.21 zchmaster1
192.168.40.22 zchnode1
192.168.40.23 zchnode2
# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
需重启机器才能永久生效
# reboot
此步骤,可选操作,为了拷贝文件方便可以执行
# ssh-keygen
# ssh-copy-id zchmaster1
# ssh-copy-id zchnode1
# ssh-copy-id zchnode2
Swap是交换分区,在机器内存不够时,会使用swap分区,但swap分区的性能较低,k8s默认不允许使用交换分区。
# vi /etc/fstab
注释掉一下内容,或者删除
#/dev/mapper/centos-swap swap swap defaults 0 0
保存退出
# modprobe br_netfilter
# echo "modprobe br_netfilter" >> /etc/profile
# cat > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
# sysctl -p /etc/sysctl.d/k8s.conf
#配置docker的repo源,国外的访问太慢,使用阿里云的
# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#配置k8s的repo源
# vi /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=kubernetes-yum-repos-kubernetes-el7-x86_64安装包下载_开源镜像站-阿里云
enabled=1
gpgcheck=0
#将master1上Kubernetes的repo源复制给node1和node2
复制到node1:
# scp /etc/yum.repos.d/kubernetes.repo zchnode1:/etc/yum.repos.d/
复制到node2:
# scp /etc/yum.repos.d/kubernetes.repo zchnode2:/etc/yum.repos.d/
Docker的详细安装步骤在其他篇博客已经介绍,点击查看:Docker安装详细步骤_周十一.的博客-CSDN博客
打开 Docker Hub 网站(https://hub.docker.com)官网,搜索kubernetes/base-image ,择合适的镜像版本,并点击进入该镜像详情页面,根据操作系统类型和版本选择相应的镜像标签(tag),并复制该标签名称,然后拉取镜像。
执行命令:
# docker pull kubernetes/base-image:
在线很多时候都无法拉取k8s集群初始化相关镜像,最好找台机器可以访问相关网址提前下载好,导出成压缩包(如:8simage-1-20-6.tar.gz),拷贝到各个地方都可以,只需要执行导入操作
执行命令:
# docker load -i k8simage-1-20-6.tar.gz
查看导入镜像:
# docker images
# yum install -y kubelet-1.20.6 kubeadm-1.20.6 kubectl-1.20.6
# systemctl enable kubelet
在master1节点上执行, 生成kubeadm.yaml 文件
# kubeadm config print init-defaults > kubeadm.yaml
修改配置文件如下内容:
advertiseAddress:控制节点地址,修改为192.168.40.21
imageRepository:镜像仓库拉取地址,修改为:registry.aliyuncs.com/google_containers
kube-proxy的模式设置为: ipvs
cgroupDriver:修改为systemd,与docker保持一致
podSubnet: 10.244.0.0/16
kubernetesVersion: v1.20.6
配置文件末尾追加如下内容:
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
mode: ipvs
---
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
cgroupDriver: systemd
篇幅有限这里就不把完整的配置文件 贴出来了,有问题留言
# kubeadm init --config=kubeadm.yaml --ignore-preflight-errors=SystemVerification
出现如上界面,表示初始化成功。
根据上图提示,执行如下初始化操作:
# mkdir -p $HOME/.kube
# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
# sudo chown $(id -u):$(id -g) $HOME/.kube/config
查看节点状态:
# kubectl get nodes
在master1上生成加入节点的命令:
# kubeadm token create --print-join-command
显示如下:
kubeadm join 192.168.40.21:6443 --token l1gu1i.o9i56fy20ynj6w8g --discovery-token-ca-cert-hash sha256:06dfb194b0034534eba1df0b57e9c94da57196816d2d1a1b100dbece2ae087ed
在node1、node2执行命令加入群:
# kubeadm join 192.168.40.21:6443 --token l1gu1i.o9i56fy20ynj6w8g --discovery-token-ca-cert-hash sha256:06dfb194b0034534eba1df0b57e9c94da57196816d2d1a1b100dbece2ae087ed
#在master1上查看集群节点状况:
# kubectl get nodes
以上,除了网络组件还没安装,整个集群基本安装完成。