前提准备:OpenEuler系统,VMWare
由于本次使用3台主机完成kubernetes集群部署,其中1台为master节点,名称为k8s-master01;其中2台为node节点,名称分别为:k8s-node01及k8s-node02
master节点 # hostnamectl set-hostname k8s-master01
node01节点 # hostnamectl set-hostname k8s-node01
node02节点 # hostnamectl set-hostname k8s-node02
首先VM的网络设置如下:
关于VM的IP设置可以看下面这个文章:
Linux配置网络_没有ifcfg-ens33,只有ifcfg-ens0-CSDN博客
各个节点的配置如下:
配置文件位于
/ect/sysconfig/network-scripts/
我的是ifcfg
vi ifcfg-ens160
master
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no NAME=ens160 UUID=5d816caa-e2e3-45b8-b497-24341aef4464 DEVICE=ens160 ONBOOT=yes IPADDR=192.168.139.160 PREFIX-24 GATEWAY=192.168.139.2 DNS1=119.29.29.29
node1
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no NAME=ens160 UUID=5d816caa-e2e3-45b8-b497-24341aef4464 DEVICE=ens160 ONBOOT=yes IPADDR=192.168.139.161 PREFIX-24 GATEWAY=192.168.139.2 DNS1=119.29.29.29
node2
TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no NAME=ens160 UUID=5d816caa-e2e3-45b8-b497-24341aef4464 DEVICE=ens160 ONBOOT=yes IPADDR=192.168.139.162 PREFIX-24 GATEWAY=192.168.139.2 DNS1=119.29.29.29
关闭swap
# 临时关闭swap分区 swapoff -a
关闭防火墙
# 关闭并禁用防火墙 systemctl stop firewalld && systemctl disable firewalld
ipv4修改
开启内核路由转发 vi /etc/sysctl.conf
...... net.ipv4.ip_forward=1 ......
安装docker
# 安装docker dnf install -y docker # 启用docker systemctl enable docker && systemctl start docker # 查看docker版本 docker --version
安装kubernates
# 安装kubeadmin、kubelet、kubernetes-master dnf install -y kubernetes-kubeadm kubernetes-kubelet kubernetes-master # 安装conntrack组件(k8s依赖组件) dnf install -y conntrack # 配置kubelet开机自启 systemctl enable kubelet.service && systemctl start kubelet.service # 安装Kubernetes,apiserver-advertise-address 请替换成实际环境中的master节点ip地址,本文环境使用192.168.123.208 kubeadm init --apiserver-advertise-address=192.168.139.160 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.20.2 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16 # 命令选项说明: # --apiserver-advertise-address:apiserver通告给其他组件的IP地址,一般应该为Master节点的用于集群内部通信的IP地址,0.0.0.0表示节点上所有可用地址 # --image-repository:指定要使用的镜像仓库,指定为aliyun镜像加速下载 # --kubernetes-version:Kubernetes程序组件的版本号 # --pod-network-cidr:Pod网络的地址范围,其值为CIDR格式的网络地址 # --service-cidr:Service的网络地址范围,其值为CIDR格式的网络地址
最后执行完就可以看到如下所示
如果安装完成后提示
The connection to the server localhost:8080 was refused - did you specify the right host or port?
在所有节点执行
echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile source ~/.bash_profile