基础环境配置
所有节点执行以下操作:
关闭 Swap 分区:
swapoff -a
配置 hosts 文件:
cat <<EOF > /etc/hosts
192.168.211.40 master
192.168.211.41 node1
192.168.211.42 node2
EOF
安装 Docker
若默认源较慢,可更换为阿里云源。
编辑 /etc/apt/sources.list:
vim /etc/apt/sources.list
内容如下:
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
更新软件源:
apt-get update
注意: 安装 Docker 建议指定稳定版本以保证兼容性。
apt-get install -y docker-ce=5:19.03.4~3-0~ubuntu-xenial docker-ce-cli=5:19.03.4~3-0~ubuntu-xenial containerd.io=1.2.10-3
若遇到 CD-ROM 错误,请注释掉 /etc/apt/sources.list 中的 deb cdrom 行。
配置 Docker 守护进程(推荐配置国内镜像源):
cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
}
}
EOF
重启 Docker 服务:
mkdir -p /etc/systemd/system/docker.service.d
systemctl daemon-reload
systemctl start docker
systemctl status docker
安装 Kubernetes
配置软件源
使用阿里云源(若无法访问 Google 源):
创建列表文件:
cat <<EOF > /etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial main
EOF
添加 GPG Key:
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6A030B21BA07F4FB
安装组件:
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
配置 Kubectl 自动补全(可选):
source <(kubectl completion bash)
source <(kubectl completion zsh)
kubeadm 创建集群 Master 节点
由于网络原因直接初始化可能拉取镜像失败,建议先准备镜像。
查看所需镜像列表:
kubeadm config images list
生成默认配置文件:
kubeadm config print init-defaults > kubeadm.conf
修改配置文件以使用国内镜像仓库并指定版本:
sed -i "s/imageRepository: .*/imageRepository: registry.aliyuncs.com\/google_containers/g" kubeadm.conf
sed -i "s/kubernetesVersion: .*/kubernetesVersion: v1.18.1/g" kubeadm.conf
拉取镜像:
kubeadm config images pull --config kubeadm.conf
执行初始化命令:
kubeadm init --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=192.168.211.40
配置用户权限:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
记录生成的 Join 命令用于后续添加 Node 节点。
添加 Worker 节点
在 Node 节点上执行 Master 提供的 Join 命令。若报错提示文件已存在,请先重置:
kubeadm reset
再次执行 Join 命令:
kubeadm join 192.168.211.40:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
Token 有效期通常为 24 小时,过期后可重新生成:
kubeadm token create --print-join-command
验证节点状态:
kubectl get nodes
kubectl get pods -A
安装网络插件 Calico
Pod 处于 Pending 状态通常是因为缺少网络插件。应用 Calico 配置:
kubectl apply -f https://docs.projectcalico.org/v3.10/manifests/calico.yaml
若 Pod 创建失败,可尝试删除后重新应用:
kubectl delete -f https://docs.projectcalico.org/v3.10/manifests/calico.yaml
kubectl apply -f https://docs.projectcalico.org/v3.10/manifests/calico.yaml
排查方法:
- 检查镜像拉取情况:
docker pull xxx - 检查 DNS 解析,修改
/etc/resolv.conf添加国内 DNS:nameserver 114.114.114.114 - 确保内存充足,否则可能导致 Pod 处于 Pending 状态。
最后确认 Pod 状态:
kubectl get pods -A

