centos部署k8s v1.33版本
centos部署k8s v1.33版本
1、设置主机名称
hostnamectl set-hostname mast01
hostnamectl set-hostname node01
2、升级内核版本
3、环境设置
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld# 关闭selinux
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config# 关闭 swap
swapoff -a
sed -i '/swap/s/^$.*$$/#\1/g' /etc/fstab# 加载内核模块
modprobe br_netfilter
modprobe overlay
echo "overlay" >> /etc/modules-load.d/overlay.conf
echo "br_netfilter" >> /etc/modules-load.d/br_netfilter.conf# 优化内核参数
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0
EOF
sysctl --system
4、安装容器运行时
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum install -y containerd.io
5、配置容器运行时
# 生成默认配置文件
containerd config default | sudo tee /etc/containerd/config.toml
# 修改配置文件:启用systemd cgroup驱动
sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
# 修改配置文件中的pause镜像 vi /etc/containerd/config.toml
sandbox_image = "registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.10"
# 启动containerd并设置开机启动
systemctl enable --now containerd
6、安装kubectl、kubelet、kubeadm
cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.33/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.33/rpm/repodata/repomd.xml.key
EOF
yum clean all
yum makecache
# 安装
yum install -y kubelet-1.33.1 kubeadm-1.33.1 kubectl-1.33.1
# 启用kubelet服务
systemctl enable --now kubelet
7、初始化控制面节点
kubeadm init \--apiserver-advertise-address=192.168.74.180 \--image-repository=registry.aliyuncs.com/google_containers \--kubernetes-version=v1.33.1 \--pod-network-cidr=10.244.0.0/16 \--cri-socket=unix:///var/run/containerd/containerd.sock
8、配置kubectl
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config# 设置别名
echo "alias k='kubectl'" >> ~/.bashrc
source ~/.bashrc
9、安装网络插件calico
# 下载calico.yaml,calico.tar.gz,导入calico镜像
# 需要本地下载,不好找
ctr -n=k8s.io images import calico.tar.gz
kubectl apply -f calico.yaml
10、验证mast节点
[root@mast01 soft]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
mast01 Ready control-plane 60m v1.33.1
[root@mast01 soft]# kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-689744956f-w4khs 1/1 Running 0 20m
kube-system calico-node-gr4tw 1/1 Running 0 20m
kube-system coredns-757cc6c8f8-ghhtg 1/1 Running 0 60m
kube-system coredns-757cc6c8f8-rv8lw 1/1 Running 0 60m
kube-system etcd-mast01 1/1 Running 1 60m
kube-system kube-apiserver-mast01 1/1 Running 1 60m
kube-system kube-controller-manager-mast01 1/1 Running 1 60m
kube-system kube-proxy-mcxfc 1/1 Running 0 60m
kube-system kube-scheduler-mast01 1/1 Running 1 60m
11、加入node节点
# mast上执行
kubeadm token create --print-join-command
# node上执行
kubeadm join 192.168.74.180:6443 \--token 1fik86.bmm71kteysd8g7up \--discovery-token-ca-cert-hash \sha256:98a92989b7377d06135786b1ca2c51809d596d3e7ef54d6b150143e9fa2fca28
12、在mast上查看集群状况
[root@mast01 soft]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
mast01 Ready control-plane 94m v1.33.1
node01 Ready <none> 4m41s v1.33.1
[root@mast01 soft]# kubectl get pods -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system calico-kube-controllers-689744956f-w4khs 1/1 Running 0 54m
kube-system calico-node-gr4tw 1/1 Running 0 54m
kube-system calico-node-v8cfz 1/1 Running 0 4m44s
kube-system coredns-757cc6c8f8-ghhtg 1/1 Running 0 94m
kube-system coredns-757cc6c8f8-rv8lw 1/1 Running 0 94m
kube-system etcd-mast01 1/1 Running 1 94m
kube-system kube-apiserver-mast01 1/1 Running 1 94m
kube-system kube-controller-manager-mast01 1/1 Running 1 94m
kube-system kube-proxy-mcxfc 1/1 Running 0 94m
kube-system kube-proxy-qv9lp 1/1 Running 0 4m44s
kube-system kube-scheduler-mast01 1/1 Running 1 94m