Kubernetes 集群搭建


Kubeadm 启动流程

  • master: systemd > kubelet > 容器组件 > Kubernetes

安装 Kuberadm (主从配置)

# 此操作会覆盖 /etc/yum.repos.d/kubernetes.repo 中现存的所有配置
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/repodata/repomd.xml.key
exclude=kubelet kubeadm kubectl cri-tools kubernetes-cni
EOF
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
systemctl enable kubelet

初始化 master

registry.k8s.io/kube-apiserver:v1.29.3
registry.k8s.io/kube-controller-manager:v1.29.3
registry.k8s.io/kube-scheduler:v1.29.3
registry.k8s.io/kube-proxy:v1.29.3
registry.k8s.io/coredns/coredns:v1.11.1
registry.k8s.io/pause:3.9
registry.k8s.io/etcd:3.5.12-0
#!/bin/bash

imgs=/root/gcr.io
for i in $( ls ${imgs} ); do
    # docker load -i ${imgs}/$i
    ctr -n=k8s.io images import ${imgs}/$i
done

/etc/containerd/config.conf

# comment
disabled_plugins = ["cri"]
sudo rm /etc/kubernetes/manifests/kube-apiserver.yaml \
    /etc/kubernetes/manifests/kube-controller-manager.yaml \
    /etc/kubernetes/manifests/kube-scheduler.yaml \
    /etc/kubernetes/manifests/etcd.yaml

kubeadm reset

# kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers

# kubeadm init --pod-network-cidr=10.244.0.0/16  --image-repository registry.aliyuncs.com/google_containers

kubeadm config print init-defaults > kubeadm-config.yaml
# kubeadm config images pull --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers
kubeadm init --config kubeadm-config.yaml | tee kubeadm-init.log

加入 master 节点

# 加入master节点报错执行以下命令
kubeadm reset

# 加入master节点
kubeadm join 172.16.1.100:6443 --token abcdef.0123456789abcdef \
        --discovery-token-ca-cert-hash sha256:d7bcc5181f1c5b25f9b3d91fcfdf9ae85859cd54b860a29e0947fe39c4f3af82

安装 flannel

# 在master节点
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

参考文档