小明
小明
Published on 2025-01-17 / 39 Visits
1

Rocky9.5安装k8s 1.23.6

1.环境准备

1.所需基础环境

主机名

IP

docker版本

配置

其他

master

192.168.8.5

20.10.17

2c4g

关闭selinux和firewalld

node01

192.168.8.6

20.10.17

2c4g

关闭selinux和firewalld

node02

192.168.8.7

20.10.17

2c4g

关闭selinux和firewalld

2.修改主机名

#在对应主机上执行
hostnamectl set-hostname master
hostnamectl set-hostname node01
hostnamectl set-hostname node02

3.配置hosts

#在master上执行
echo "192.168.8.5 master
192.168.8.6 node01
192.168.8.7 node02" | sudo tee -a /etc/hosts
scp -rp /etc/hosts root@node01:/etc/hosts
scp -rp /etc/hosts root@node02:/etc/hosts

4.配置免密互信

#在master上执行
ssh-keygen
ssh-copy-id node01
ssh-copy-id node02

5.配置时间同步

#在所有机器上执行
systemctl start chronyd
systemctl enable chronyd
chronyc sources

6.允许iptables检查桥接流量

#所有机器上执行
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

7.关闭selinux,firewalld,swap

#在所有机器上执行
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab  

2.安装docker

# 在所有机器上执行(逐行复制)
# 安装yum-config-manager配置工具
yum -y install yum-utils
# 设置yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装docker-ce版本
yum install -y docker-ce-20.10.17
# 开机自启并立即启动
systemctl enable --now docker
 # 查看版本号
docker --version
# 查看版本具体信息
docker version

3.配置docker

#在所有机器上执行
#2025年1月17日可用
sudo tee /etc/docker/daemon.json <<EOF
{
    "registry-mirrors": [
        "https://docker.linkedbus.com",
        "https://docker.xuanyuan.me"
    ]
}
EOF
systemctl reload docker

4.安装k8s 1.23.6

#在所有机器上执行
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[k8s]
name=k8s
enabled=1
gpgcheck=0
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
EOF
yum install -y kubelet-1.23.6 kubeadm-1.23.6 kubectl-1.23.6  --disableexcludes=kubernetes
systemctl enable --now kubelet

5.初始化集群

#仅master执行
kubeadm init \
--apiserver-advertise-address=192.168.8.5 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.23.6 \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16

mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

6.node加入集群

#仅node01 node02执行(执行自己控制台上显示的)
kubeadm join 192.168.8.5:6443 --token 866e34.oflvo5uwppa0xp4d \
        --discovery-token-ca-cert-hash sha256:9ca1f9f53e87defa3442f3d5afd6cee2af0a3d6f89b549bdc2513ef73c4db4af 

7.配置Pod网络插件CNI

#仅master执行
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

8.配置kubectl tab补全(bash终端)

#仅master执行
yum install -y bash-completion
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc