安装配置K8s节点
管理节点和计算节点上都需要安装配置K8s。
修改主机名称及映射
所有管理节点和计算节点都需要配置。
- 设置各个节点的主机名。
管理节点:
hostnamectl set-hostname master
计算节点1:
hostnamectl set-hostname compute01
计算节点2:
hostnamectl set-hostname compute02
修改完成后,退出并重新登录操作系统后生效。
- 修改所有节点的hosts文件。
- 打开hosts文件。
vi /etc/hosts
- 按“i”进入编辑模式,在配置文件中添加集群所有节点的IP地址及hostname信息。
192.168.1.11 master 192.168.1.12 compute01 192.168.1.13 compute02
修改后的截图示例:
- 按“Esc”键,输入:wq!,按“Enter”保存并退出编辑。
- 打开hosts文件。
安装基础组件
- 关闭防火墙。
systemctl stop firewalld && systemctl disable firewalld
- 安装Docker。
yum install -y docker cat <<EOF > /etc/docker/daemon.json { "exec-opts": ["native.cgroupdriver=systemd"] } EOF systemctl daemon-reload systemctl restart docker
- 启用NET.BRIDGE.BRIDGE-NF-CALL-IPTABLES内核选项。
sysctl -w net.bridge.bridge-nf-call-iptables=1
- 禁用交换分区。
- 关闭已启用的交换分区。
swapoff -a
- 打开“/etc/fstab”文件。
vi /etc/fstab
- 按“i”进入编辑模式,将分区类型为swap的信息注释掉,如下所示。
# /dev/mapper/openeuler-swap none swap defaults 0 0
- 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。
- 关闭已启用的交换分区。
- 安装K8s。
yum install -y kubelet kubeadm kubectl kubernetes-cni
如果上述命令执行失败,请尝试以下命令。
yum install -y kubelet kubeadm kubectl kubernetes-cni --nobest
- 查看K8s安装情况。
rpm -qa | grep kubelet rpm -qa | grep kubeadm rpm -qa | grep kubectl rpm -qa | grep kubernetes-cni
- 设置iptables。
echo "net.bridge.bridge-nf-call-iptables=1" > /etc/sysctl.d/k8s.conf
- 使能kubelet服务。
systemctl enable kubelet
配置NTP
请配置NTP以保证集群各节点之间的时间同步。
- 在所有节点安装chrony组件并设置时区,本文中将其设置为亚洲时区。
yum install -y chrony timedatectl set-timezone Asia/Shanghai
- 将管理节点设置为NTP服务端节点。
- 编辑“/etc/chrony.conf”文件。
vi /etc/chrony.conf
- 按“i”进入编辑模式,新增如下内容。
allow 192.168.1.0/24 local stratum 10
“192.168.1.0/24”为本文档中使用的网段,请按照实际的组网规划。
- 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。
- 编辑“/etc/chrony.conf”文件。
- 将计算节点配置为NTP客户端。
- 打开“/etc/chrony.conf”文件。
vi /etc/chrony.conf
- 按“i”进入编辑模式,注释如下内容。
pool pool.ntp.org iburst
修改后如下图所示。
再新增如下内容。
server master iburst
- 按“Esc”键退出编辑模式,输入:wq!,按“Enter”键保存并退出文件。
- 打开“/etc/chrony.conf”文件。
- 启动NTP服务。
- 在所有节点启动NTP服务,并检查状态。
systemctl enable chronyd.service systemctl start chronyd.service systemctl status chronyd.service
- 在所有节点中启动NTP同步。
timedatectl set-ntp no timedatectl set-ntp yes
- 在所有节点启动NTP服务,并检查状态。
- 验证时间同步。
chronyc sources
计算节点显示master为时钟源。
在各节点同时执行date命令查看时间是否一致。
date
通过Docker下载其他组件
集群内所有节点均需执行以下操作步骤。
- 查看镜像列表,并以此为依据匹配需要下载的Docker镜像版本。
kubeadm config images list
- 不同版本的K8s可能会需要不同的Docker镜像版本。因此需要查看镜像列表并以此匹配需要下载的Docker镜像版本,2中使用的Docker镜像版本仅做参考。
- 请确保下载的Docker镜像支持Arm架构。
- 从DockerHub上下载镜像。
- 如果使用的是openEuler 22.03,建议配套安装Kubernetes 1.23.1。
docker pull k8s.gcr.io/kube-apiserver:v1.23.1 docker pull k8s.gcr.io/kube-controller-manager:v1.23.1 docker pull k8s.gcr.io/kube-scheduler:v1.23.1 docker pull k8s.gcr.io/kube-proxy:v1.23.1 docker pull k8s.gcr.io/pause:3.6 docker pull k8s.gcr.io/etcd:3.5.1-0 docker pull k8s.gcr.io/coredns/coredns:v1.8.6
- 如果使用的是openEuler 20.03或CentOS,建议配套安装Kubernetes 1.18.20。
1 2 3 4 5 6 7
docker pull k8smx/kube-apiserver:v1.18.20 docker pull k8smx/kube-controller-manager:v1.18.20 docker pull k8smx/kube-scheduler:v1.18.20 docker pull k8smx/kube-proxy:v1.18.20 docker pull k8smx/pause:3.2 docker pull k8smx/coredns:1.6.7 docker pull k8smx/etcd:3.4.3-0
- 如果使用的是openEuler 22.03,建议配套安装Kubernetes 1.23.1。
- 查看K8s的Docker镜像组件。
docker images | grep k8s
父主题: 手动部署