使用kubeadm安装kubernetes记录
创始人
2024-05-03 17:24:59
0

1.查看版本信息

# 在 master 节点和 worker 节点都要执行
cat /etc/redhat-release# 此处 hostname 的输出将会是该机器在 Kubernetes 集群中的节点名字
# 不能使用 localhost 作为节点的名字
hostname# 请使用 lscpu 命令,核对 CPU 信息
# Architecture: x86_64    本安装文档不支持 arm 架构
# CPU(s):       2         CPU 内核数量不能低于 2
lscpu

2.修改 hostname

如果您需要修改 hostname,可执行如下指令:

# 修改 hostname
hostnamectl set-hostname demo-master-a-1
# 查看修改结果
hostnamectl status
# 设置 hostname 解析
echo "127.0.0.1   $(hostname)" >> /etc/hosts

3.检查网络 

[root@demo-master-a-1 ~]$ ip route show
default via 172.21.0.1 dev eth0 
169.254.0.0/16 dev eth0 scope link metric 1002 
172.21.0.0/20 dev eth0 proto kernel scope link src 172.21.0.12 [root@demo-master-a-1 ~]$ ip address
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft forever
2: eth0:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:16:3e:12:a4:1b brd ff:ff:ff:ff:ff:ffinet 172.17.216.80/20 brd 172.17.223.255 scope global dynamic eth0valid_lft 305741654sec preferred_lft 305741654sec

 

kubelet使用的IP地址

  • ip route show 命令中,可以知道机器的默认网卡,通常是 eth0,如 default via 172.16.202.2 dev ens33
  • ip address 命令中,可显示默认网卡的 IP 地址,Kubernetes 将使用此 IP 地址与集群内的其他节点通信,如 172.16.202.131
  • 所有节点上 Kubernetes 所使用的 IP 地址必须可以互通(无需 NAT 映射、无安全组或防火墙隔离)

4.初始化master节点

参考:https://kuboard.cn/install/history-k8s/install-k8s-1.21.x.html

4.1.安装containerd/kubelet/kubeadm/kubectl

这里需要root权限,执行 su ,输入root密码;

直接进行快速安装,命令:

# 在 master 节点和 worker 节点都要执行
# 最后一个参数 1.21.6 用于指定 kubenetes 版本,支持所有 1.21.x 版本的安装
# 腾讯云 docker hub 镜像
# export REGISTRY_MIRROR="https://mirror.ccs.tencentyun.com"
# DaoCloud 镜像
# export REGISTRY_MIRROR="http://f1361db2.m.daocloud.io"
# 华为云镜像
# export REGISTRY_MIRROR="https://05f073ad3c0010ea0f4bc00b7105ec20.mirror.swr.myhuaweicloud.com"
# 阿里云 docker hub 镜像
export REGISTRY_MIRROR=https://registry.cn-hangzhou.aliyuncs.com
curl -sSL https://kuboard.cn/install-script/v1.21.x/install_kubelet.sh | sh -s 1.21.6 /coredns

完成上述操作后查看信息:

# 只在 master 节点执行# 执行如下命令,等待 3-10 分钟,直到所有的容器组处于 Running 状态
watch kubectl get pod -n kube-system -o wide# 查看 master 节点初始化结果
kubectl get nodes -o wide

我这边能看到的信息如下,状态是NotReady,并不是Ready状态(但是有些人安装后的效果是Ready)

4.2.安装网络插件

这里我们安装: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

执行成功后,效果数据如下:

 

5.初始化worker节点

5.1.从master主机获得 join命令参数

访问master机器

# 只在 master 节点执行
kubeadm token create --print-join-command

 执行完成后,效果如下:

信息:

kubeadm join apiserver.demo:6443 --token kyc4a8.7oqmadyfhszqro56 --discovery-token-ca-cert-hash sha256:58da753243817cc654a13882d7e92d645fd2e0c5a5a3117970aedb79975bd593 

5.2.执行初始化worker节点

# 只在 worker 节点执行
# 替换 172.16.202.131 为 master 节点的内网 IP
export MASTER_IP=172.16.202.131
# 替换 apiserver.demo 为初始化 master 节点时所使用的 APISERVER_NAME
export APISERVER_NAME=apiserver.demo
echo "${MASTER_IP}    ${APISERVER_NAME}" >> /etc/hosts# 替换为 master 节点上 kubeadm token create 命令的输出
kubeadm join apiserver.demo:6443 --token kyc4a8.7oqmadyfhszqro56 --discovery-token-ca-cert-hash sha256:58da753243817cc654a13882d7e92d645fd2e0c5a5a3117970aedb79975bd593 

执行后效果如下: 

 

5.3.验证执行结果 

访问master机器,执行下面命令

# 只在 master 节点执行
kubectl get nodes -o wide

 

 

#

相关内容

热门资讯

监控摄像头接入GB28181平... 流程简介将监控摄像头的视频在网站和APP中直播,要解决的几个问题是:1&...
Windows10添加群晖磁盘... 在使用群晖NAS时,我们需要通过本地映射的方式把NAS映射成本地的一块磁盘使用。 通过...
protocol buffer... 目录 目录 什么是protocol buffer 1.protobuf 1.1安装  1.2使用...
在Word、WPS中插入AxM... 引言 我最近需要写一些文章,在排版时发现AxMath插入的公式竟然会导致行间距异常&#...
【PdgCntEditor】解... 一、问题背景 大部分的图书对应的PDF,目录中的页码并非PDF中直接索引的页码...
Fluent中创建监测点 1 概述某些仿真问题,需要创建监测点,用于获取空间定点的数据࿰...
educoder数据结构与算法...                                                   ...
MySQL下载和安装(Wind... 前言:刚换了一台电脑,里面所有东西都需要重新配置,习惯了所...
修复 爱普生 EPSON L4... L4151 L4153 L4156 L4158 L4163 L4165 L4166 L4168 L4...
MFC文件操作  MFC提供了一个文件操作的基类CFile,这个类提供了一个没有缓存的二进制格式的磁盘...