kubeadm安装K8S v1.21.0

1. 环境准备

Kubeadm安装的集群版本: V1.21.0
本安装文档采用3台服务器。3台服务器需要配置固定IP地址,且3台服务器网络互通。

IP地址用途主机名
192.168.2.200Masterops200
192.168.2.203Node01ops203
192.168.2.244Node02ops244

配置要求:

  • 操作系统: CentOS Linux release 7.8.2003
  • 内核版本: 4.18.9-1.el7.elrepo.x86_64
  • 至少3台2核4G的Linux机器
  • CPU 必须为 x86 架构

安装后的软件版本为

  • Kubernetes v1.21.0
  • calico 3.17.1
  • Containerd.io 1.4.3

配置验证:(3台都要进行)

$ sudo cat /etc/redhat-release 
CentOS Linux release 7.8.2003 (Core)

查看主机名

$ sudo cat /etc/hostname

查看cpu

# 请使用 lscpu 命令,核对 CPU 信息
# Architecture:      x86_64   本安装文档不支持 arm 架构
# CPU op-mode(s):   32-bit, 64-bit
# CPU(s):           4         CPU 内核数量不能低于 2
$ sudo lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 45
Model name:            Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz
Stepping:              7
CPU MHz:               1999.658
CPU max MHz:           2400.0000
CPU min MHz:           1200.0000
BogoMIPS:              4799.89
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              10240K
NUMA node0 CPU(s):     0-3
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx lahf_lm ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid xsaveopt dtherm arat pln pts spec_ctrl intel_stibp flush_l1d

修改主机名

# 修改 hostname
$ sudo hostnamectl set-hostname  your-new-host-name
# 查看修改结果
hostnamectl status
# 设置 hostname 解析
echo "127.0.0.1   $(hostname)" >> /etc/hosts 

检查网络

$ sudo ip route show
$ sudo ip a

2.初始化Master节点

在master节点执行:
建议用root用户操作,避免普通用户权限不足,无法初始化成功。

# export MASTER_IP=192.168.2.200
# DNSNAME
export APISERVER_NAME=www.yuan.cn
# Kubernetes 容器组所在的网段
export POD_SUBNET=10.100.0.0/16
echo "${MASTER_IP}    ${APISERVER_NAME}" >> /etc/hosts
curl -sSL https://kuboard.cn/install-script/v1.21.x/init_master.sh | sh -s 1.21.0

2.1 检查初始化结果

# 只在 master 节点执行

# 执行如下命令,等待 3-10 分钟,直到所有的容器组处于 Running 状态
watch kubectl get pod -n kube-system -o wide

# 查看 master 节点初始化结果
kubectl get nodes -o wide

2.2 安装网络组件

因为我这3台不是云服务器,所以采用Calico组件.

export POD_SUBNET=10.100.0.0/16
kubectl apply -f https://kuboard.cn/install-script/v1.21.x/calico-operator.yaml
wget https://kuboard.cn/install-script/v1.21.x/calico-custom-resources.yaml
sed -i "s#192.168.0.0/16#${POD_SUBNET}#" calico-custom-resources.yaml
kubectl apply -f calico-custom-resources.yaml

3.初始化worker节点

3.1 在Master节点获取join命令参数

只在master节点执行: 要获取 join命令参数

$ kubeadm token create --print-join-command

可获取kubeadm join 命令及参数

# 输出结果
kubeadm join www.yuan.cn:6443 --token q4t4og.dx6cuhwc5po8d584 --discovery-token-ca-cert-hash sha256:9608d2d2a6781604ef092f2a4b53da78cf0590191f5f9beee81dc8c8edb7bc99

有效时间: 该 token 的有效时间为 2 个小时

3.2 初始化所有worker节点

只在worker节点执行

export MASTER_IP=192.168.2.200
export APISERVER_NAME=www.yuan.cn
echo "${MASTER_IP}    ${APISERVER_NAME}" >> /etc/hosts

执行join命令参数

kubeadm join www.yuan.cn:6443 --token q4t4og.dx6cuhwc5po8d584 --discovery-token-ca-cert-hash sha256:9608d2d2a6781604ef092f2a4b53da78cf0590191f5f9beee81dc8c8edb7bc99

kubeadm join输出的结果

3.3 检查初始化结果

在 Master 节点上执行

$ sudo  kubectl get nodes
$ sudo kubectl get nodes -o wide

查看节点信息
查看k8s集群所有节点详细信息
至此,

安装参考链接

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐