Kubernetes v1.30 配置安装 基于docker ubuntu22.04k8s
主机规划
| 主机名 | IP | 角色 |
|---|---|---|
| master | 192.168.116.146 | master |
| worker01 | 192.168.116.149 | worker |
| worker02 | 192.168.116.148 | worker |
主机配置
1. 设置主机名和域名解析
bash
hostnamectl set-hostname master
hostnamectl set-hostname worker01
hostnamectl set-hostname worker02bash
cat <<EOF >> /etc/hosts
192.168.116.146 master
192.168.116.149 worker01
192.168.116.148 worker02
EOF2. 关闭swap分区
bash
free -h
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab3. 加载所需模块和配置IP转发
bash
sudo modprobe overlay
sudo modprobe br_netfilter
sudo tee /etc/sysctl.d/kubernetes.conf<<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sysctl --system4. 安装通用软件
bash
apt-get update && sudo apt-get upgrade -y
apt-get update && sudo apt-get install -y apt-transport-https curl5. 安装并配置docker
bash
apt-get install docker.io -y
# 配置docker cgroup
cat <<EOF > /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
# 安装cri-docker
wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.15/cri-dockerd_0.3.15.3-0.ubuntu-jammy_amd64.deb
dpkg -i cri-dockerd_0.3.15.3-0.ubuntu-jammy_amd64.deb
# 修改cri-docker 服务启动参数
vim /lib/systemd/system/cri-docker.service
# 添加启动参数
--pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9
ExecStart=/usr/bin/cri-dockerd --pod-infra-container-image=registry.aliyuncs.com/google_containers/pause:3.9重启cri-docker docker
bash
systemctl daemon-reload
systemctl enable cri-docker
systemctl enable docker
systemctl restart cri-docker
systemctl restart docker
systemctl status docker
systemctl status cri-docker集群配置
1. 安装 kubeadm kubectl kubelet
配置软件源 k8s 版本 v1.30
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
apt-get install -y apt-transport-https ca-certificates curl gpg
mkdir -p -m 755 /etc/apt/keyrings
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.30/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.30/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list安装
bash
apt-get update
apt-get install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl
systemctl enable --now kubelet2. 拉取所需镜像 根据节点角色按需拉取
bash
# 设置版本号,例如 v1.27.1
KUBE_VERSION=v1.30.5
ETCD_VERSION=3.5.15-0
COREDNS_VERSION=v1.11.3
PAUSE_VERSION=3.9
# 使用阿里云镜像仓库
ALIYUN_REGISTRY=registry.aliyuncs.com/google_containers
# 拉取并重新标记镜像
sudo docker pull $ALIYUN_REGISTRY/kube-apiserver:$KUBE_VERSION
sudo docker tag $ALIYUN_REGISTRY/kube-apiserver:$KUBE_VERSION k8s.gcr.io/kube-apiserver:$KUBE_VERSION
sudo docker pull $ALIYUN_REGISTRY/kube-controller-manager:$KUBE_VERSION
sudo docker tag $ALIYUN_REGISTRY/kube-controller-manager:$KUBE_VERSION k8s.gcr.io/kube-controller-manager:$KUBE_VERSION
sudo docker pull $ALIYUN_REGISTRY/kube-scheduler:$KUBE_VERSION
sudo docker tag $ALIYUN_REGISTRY/kube-scheduler:$KUBE_VERSION k8s.gcr.io/kube-scheduler:$KUBE_VERSION
sudo docker pull $ALIYUN_REGISTRY/kube-proxy:$KUBE_VERSION
sudo docker tag $ALIYUN_REGISTRY/kube-proxy:$KUBE_VERSION k8s.gcr.io/kube-proxy:$KUBE_VERSION
sudo docker pull $ALIYUN_REGISTRY/pause:$PAUSE_VERSION
sudo docker tag $ALIYUN_REGISTRY/pause:$PAUSE_VERSION k8s.gcr.io/pause:$PAUSE_VERSION
sudo docker pull $ALIYUN_REGISTRY/etcd:$ETCD_VERSION
sudo docker tag $ALIYUN_REGISTRY/etcd:$ETCD_VERSION k8s.gcr.io/etcd:$ETCD_VERSION
sudo docker pull $ALIYUN_REGISTRY/coredns:$COREDNS_VERSION
sudo docker tag $ALIYUN_REGISTRY/coredns:$COREDNS_VERSION k8s.gcr.io/coredns/coredns:$COREDNS_VERSION3. 初始化集群
bash
sudo kubeadm init \
--image-repository registry.aliyuncs.com/google_containers \
--pod-network-cidr=10.244.0.0/16 \
--cri-socket unix:///var/run/cri-dockerd.sock4. 安装flannel插件
bash
# 下载配置文件 将镜像源改为国内
kubectl apply -f kube-flannel.yml5. 添加工作节点到集群
bash
kubeadm join 192.168.116.146:6443 --token 6dvpxl.54oerc8gmb9gmx03 \
--cri-socket unix:///var/run/cri-dockerd.sock \
--discovery-token-ca-cert-hash sha256:80afda89e6eeb5438c36c6940195372f6381eff7acabf95d314c52ae59b5472e6. 验证集群
bash
kubectl run nginx --image=dockerpull.com/library/nginx:1.19