Kubernetes 1.22.5 使用 kubeadm 和 kubeconfig 安装指南
实验准备
环境要求:建议使用至少4核8G的虚拟机两台。
IP地址:
192.168.10.100 master
192.168.10.101 worker
关闭防火墙、SELinux和swap:
systemctl stop firewalld && systemctl disable firewalld
setenforce 0
swapoff -a
配置主机名并更新/etc/hosts文件:
hostnamectl set-hostname master-node
hostnamectl set-hostname worker-node
echo "192.168.10.100 master-node" >> /etc/hosts
echo "192.168.10.101 worker-node" >> /etc/hosts
安装 Docker
在所有节点上执行以下命令以安装Docker:
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce
systemctl enable docker --now
cat > /etc/docker/daemon.json <<EOF
{
"storage-driver": "overlay2",
"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
EOF
systemctl restart docker
</code>
配置 Kubernetes YUM 源
创建kubernetes.repo文件:
cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
</code>
安装 Kubeadm, Kubelet 和 Kubectl
yum install -y kubeadm-1.22.5 kubelet-1.22.5 kubectl-1.22.5
systemctl enable kubelet
部署 Kubernetes Master 节点
拉取所需镜像:
kubeadm config images pull --config=kubeadm-config.yaml
初始化集群:
kubeadm init --config=kubeadm-config.yaml --upload-certs
设置kubectl配置:
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
加入 Worker 节点
在worker节点上运行:
kubeadm join :6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
安装网络插件(例如 Flannel)
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Harbor 私有仓库安装
通过 Docker Compose 安装 Harbor
下载并解压Harbor:
wget https://github.com/goharbor/harbor/releases/download/v2.4.3/harbor-offline-installer-v2.4.3.tgz
tar xvf harbor-offline-installer-v2.4.3.tgz
cd harbor
编辑harbor.yml文件,然后启动Harbor:
./install.sh
确保所有相关服务正常启动:
docker-compose ps