kubeadm安装k8s-1.32
主机准备
| 主机名 | IP 地址 | 系统版本 | K8S 版本 | 
| k8s-master | 192.168.3.100 | Ubuntu24.04 | v1.32 | 
| k8s-worker1 | 192.168.3.101 | Ubuntu24.04 | v1.32 | 
| k8s-worker2 | 192.168.3.102 | Ubuntu24.04 | v1.32 | 
系统配置
关闭 swap
swapoff -a && sysctl -w vm.swappiness=0
sed -ri '/^[^#]*swap/s@^@#@' /etc/fstab
时间同步
timedatectl set-timezone Asia/Shanghai
apt install -y ntpsec-ntpdate
ntpdate ntp.aliyun.com
设置 hosts
cat >> /etc/hosts << EOF
192.168.3.100 k8s-master
192.168.3.101 k8s-worker1
192.168.3.102 k8s-worker2
EOF
允许 iptables 检查桥接流量
cat <<EOF | tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF | tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sysctl --system
安装 docker-ce
export DOWNLOAD_URL="https://mirrors.tuna.tsinghua.edu.cn/docker-ce"
curl -fsSL https://raw.githubusercontent.com/docker/docker-install/master/install.sh | sh
查看 cgroup 的管理进程需要为 systemd ubuntu 默认不用修改
root@k8s-worker2:~# docker info  | grep "Cgroup Driver:"
 Cgroup Driver: systemd
配置 Kubernetes软件源
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
cat <<EOF >>/etc/apt/sources.list.d/kubernetes.list
deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/kubernetes/core:/stable:/v1.32/deb/ /
# deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://mirrors.tuna.tsinghua.edu.cn/kubernetes/addons:/cri-o:/stable:/v1.32/deb/ /
EOF
获取最新软件包
root@k8s-master:~# apt-get update
Hit:1 https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu noble InRelease
Get:2 https://mirrors.tuna.tsinghua.edu.cn/kubernetes/core:/stable:/v1.32/deb  InRelease [1,186 B]      
Get:3 https://mirrors.tuna.tsinghua.edu.cn/kubernetes/core:/stable:/v1.32/deb  Packages [8,847 B]       
Hit:4 http://security.ubuntu.com/ubuntu noble-security InRelease                
Hit:5 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble InRelease
Hit:6 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble-updates InRelease
Hit:7 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble-backports InRelease
Fetched 10.0 kB in 1s (7,908 B/s)
Reading package lists... Done
root@k8s-master:~# apt-cache madison kubeadm
   kubeadm | 1.32.5-1.1 | https://mirrors.tuna.tsinghua.edu.cn/kubernetes/core:/stable:/v1.32/deb  Packages
   kubeadm | 1.32.4-1.1 | https://mirrors.tuna.tsinghua.edu.cn/kubernetes/core:/stable:/v1.32/deb  Packages
   kubeadm | 1.32.3-1.1 | https://mirrors.tuna.tsinghua.edu.cn/kubernetes/core:/stable:/v1.32/deb  Packages
   kubeadm | 1.32.2-1.1 | https://mirrors.tuna.tsinghua.edu.cn/kubernetes/core:/stable:/v1.32/deb  Packages
   kubeadm | 1.32.1-1.1 | https://mirrors.tuna.tsinghua.edu.cn/kubernetes/core:/stable:/v1.32/deb  Packages
   kubeadm | 1.32.0-1.1 | https://mirrors.tuna.tsinghua.edu.cn/kubernetes/core:/stable:/v1.32/deb  Packages
安装并查看版本
apt-get -y install kubelet=1.32.5-1.1 kubeadm=1.32.5-1.1 kubectl=1.32.5-1.1 
root@k8s-master:~# kubectl version
Client Version: v1.32.5
Kustomize Version: v5.5.0
The connection to the server localhost:8080 was refused - did you specify the right host or port?
root@k8s-master:~# kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"32", GitVersion:"v1.32.5", GitCommit:"9894294ef13a5b32803e3ca2c0d620a088cc84d1", GitTreeState:"clean", BuildDate:"2025-05-15T09:10:46Z", GoVersion:"go1.23.8", Compiler:"gc", Platform:"linux/amd64"}
root@k8s-master:~# kubelet --version
Kubernetes v1.32.5
配置 ipvsadm 模块
apt install -y ipset ipvsadm
cat << EOF | tee /etc/modules-load.d/ipvs.conf
ip_vs
ip_vs_rr
ip_VS_wrr
ip_vs_sh
nf_conntrack
EOF
cat << EOF | tee ipvs.sh
#!/bin/sh
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
EOF
sh ipvs.sh
lsmod | grep ip_vs #验证
安装 cri-docker
wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.17/cri-dockerd-0.3.17.amd64.tgz
tar xf cri-dockerd-0.3.16.amd64.tgz
mv cri-dockerd/cri-dockerd /usr/local/bin/
cri-dockerd --version
配置开机启动
k8s1.32版本对应的pause是3.10
cat > /etc/systemd/system/cri-dockerd.service<<-EOF
[Unit]
Description=CRI Interface for Docker Application Container Engine
Documentation=https://docs.mirantis.com
After=network-online.target firewalld.service docker.service
Wants=network-online.target
Requires=cri-docker.socket     #system cri-docker.socket  文件名
 
[Service]
Type=notify
ExecStart=/usr/local/bin/cri-dockerd --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.10
 --network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin --container-runtime-endpoint=unix:///var/run/cri-dockerd.sock --cri-dockerd-root-directory=/var/lib/dockershim --docker-endpoint=unix:///var/run/docker.sock --cri-dockerd-root-directory=/var/lib/docker
ExecReload=/bin/kill -s HUP $MAINPID
TimeoutSec=0
RestartSec=2
Restart=always
StartLimitBurst=3
StartLimitInterval=60s
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
TasksMax=infinity
Delegate=yes
KillMode=process
[Install]
WantedBy=multi-user.target
EOF
cat > /etc/systemd/system/cri-docker.socket <<-EOF
[Unit]
Description=CRI Docker Socket for the API
PartOf=cri-docker.service    #systemd cri-docker.servics 文件名
 
[Socket]
ListenStream=/var/run/cri-dockerd.sock
SocketMode=0660
SocketUser=root
SocketGroup=docker
 
[Install]
WantedBy=sockets.target
EOF
启动服务设置开机启动
systemctl daemon-reload
systemctl enable cri-dockerd.service
systemctl restart cri-dockerd.service
验证启动信息
root@k8s-master:~#  ls  /var/run | grep docker
cri-dockerd.sock
docker
docker.pid
docker.sock
配置 kubelet三台都执行
vim /etc/default/kubelet
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd"
初始化集群
kubeadm init \
--kubernetes-version=1.32.5 \
--control-plane-endpoint=k8s-master \
--apiserver-advertise-address=192.168.3.100 \
--pod-network-cidr=10.244.0.0/16 \
--service-cidr=10.96.0.0/12 \
--image-repository=registry.aliyuncs.com/google_containers \
--cri-socket=unix:///var/run/cri-dockerd.sock \
--upload-certs \
--v=9
- kubernetes-version:指定k8s的版本
 - control-plane-endpoint:可以理解为集群master的命名,随意写即可
 - apiserver-advertise-address:集群中master的地址!
 - pod-network-cidr:pod网段地址,只要不与集群网段和service网段重复即可
 - service-cidr:service网段地址,只要不与集群网段和pod网段重复即可
 - image-repository:指定使用国内镜像
 - cri-socket:指定使用的容器运行时,如果你使用的containerd容器,那就不用写这个参数
 - v:日志级别,9表示输出的信息会很详细
 
把这个保留,worker 节点需要使用
kubeadm join k8s-master:6443 --token cd44tk.asapxylyw3tbj7zk \
	--discovery-token-ca-cert-hash sha256:7a5dd4bdcedf91c967f7564dcb7029465d0fc4f59fbadfb639abf23c713d62d3
主节点执行
root@k8s-master:~# mkdir -p $HOME/.kube
root@k8s-master:~# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
root@k8s-master:~# sudo chown $(id -u):$(id -g) $HOME/.kube/config
在 worker1 和 worker2 分别执行
kubeadm join k8s-master:6443 --token cd44tk.asapxylyw3tbj7zk \
	--discovery-token-ca-cert-hash sha256:7a5dd4bdcedf91c967f7564dcb7029465d0fc4f59fbadfb639abf23c713d62d3 \
    --cri-socket=unix:///var/run/cri-dockerd.sock  
查询是否加入成功
root@k8s-master:~# kubectl get nodes
NAME          STATUS     ROLES           AGE   VERSION
k8s-master    NotReady   control-plane   17m   v1.32.5
k8s-worker1   NotReady   <none>          6s    v1.32.5
k8s-worker2   NotReady   <none>          11s   v1.32.5
安装 calico(参照这个):https://www.cnblogs.com/zyyang1993/p/18849419
root@k8s-master:~# kubectl get nodes
NAME          STATUS   ROLES           AGE    VERSION
k8s-master    Ready    control-plane   117m   v1.32.5
k8s-worker1   Ready    <none>          100m   v1.32.5
k8s-worker2   Ready    <none>          101m   v1.32.5
                    
                
                
            
        
浙公网安备 33010602011771号