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、安装容器运行时

bash 复制代码
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、配置容器运行时

bash 复制代码
# 生成默认配置文件
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

bash 复制代码
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、初始化控制面节点

bash 复制代码
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

bash 复制代码
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
相关推荐
天上飞的粉红小猪8 分钟前
linux的文件系统
linux·运维·服务器·1024程序员节
阿里云云原生16 分钟前
阿里巴巴 AI Coding 分享会 Qoder Together 杭州站来啦!
云原生
老年DBA30 分钟前
Kubernetes 上的 GitLab + ArgoCD 实践(二):使用自建 GitLab Runner 完善 CI 流程
kubernetes·gitlab·argocd
珊瑚礁的猪猪侠36 分钟前
正则表达式入门到精通教程(Linux实操版)
linux·人工智能·正则表达式
阿里云云原生1 小时前
告别手动埋点!Android 无侵入式数据采集方案深度解析
android·云原生
czhc11400756631 小时前
JAVA1026 方法;类:抽象类、抽象类继承;接口、接口继承 Linux:Mysql
java·linux·mysql
老朋友此林1 小时前
一文速通k8s基础概念原理Kubernetes
云原生·容器·kubernetes
王同学_1162 小时前
Linux系统端口关闭并排查相关自启动项(麒麟环境)
linux·运维·服务器
大聪明-PLUS2 小时前
Linux 中的 DNS 工作原理(二):各级 DNS 缓存
linux·嵌入式·arm·smarc
Xiaoweidumpb2 小时前
Linux Docker docker-compose 部署python脚本
linux·python·docker