k8s部署
1. 环境准备
1.1 服务器角色
| 服务器 | 角色 | IP 地址 |
|---|---|---|
| master01 | Master 节点 | 192.168.1.100 |
| worker01 | Worker 节点 | 192.168.1.101 |
| worker02 | Worker 节点 | 192.168.1.102 |
1.2 硬件要求
- CPU:至少 2 核
- RAM:至少 2GB(推荐 4GB+)
- 存储:至少 20GB
- 操作系统:CentOS 7/8 或 Ubuntu 20+
2. 安装 Docker
在 所有节点 运行:
# 移除旧版本 sudo yum remove -y docker docker-common docker-selinux docker-engine sudo apt remove -y docker docker-engine docker.io containerd runc # 安装依赖包 sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo apt install -y apt-transport-https ca-certificates curl software-properties-common # 添加 Docker 官方源 curl -fsSL https://download.docker.com/linux/centos/docker-ce.repo | sudo tee /etc/yum.repos.d/docker.repo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" # 安装 Docker sudo yum install -y docker-ce docker-ce-cli containerd.io sudo apt install -y docker-ce docker-ce-cli containerd.io # 启动 Docker sudo systemctl enable --now docker # 验证 Docker docker --version
3. 配置 Kubernetes
3.1 禁用 Swap
在 所有节点 运行:
sudo swapoff -a sudo sed -i '/swap/d' /etc/fstab
3.2 关闭 SELinux(CentOS)
sudo setenforce 0 sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config3.3 关闭防火墙
sudo systemctl disable --now firewalld3.4 配置内核参数
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf overlay br_netfilter EOF sudo modprobe overlay sudo modprobe br_netfilter cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sudo sysctl --system
4. 安装 Kubernetes
在 所有节点 运行:
# 添加 Kubernetes 源 cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [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 sudo apt update sudo apt install -y apt-transport-https ca-certificates curl curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - sudo add-apt-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main" # 安装 kubeadm、kubelet、kubectl sudo yum install -y kubelet kubeadm kubectl sudo apt install -y kubelet kubeadm kubectl # 启动 kubelet sudo systemctl enable --now kubelet
5. 初始化 Master 节点
在 Master 节点(master01)运行:
kubeadm init --pod-network-cidr=192.168.1.0/16 成功后,会输出 Worker 节点加入命令:
kubeadm join 192.168.1.100:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash> 5.1 配置 kubectl
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config 验证 Master 是否就绪:
kubectl get nodes 6. 部署网络插件(CNI)
在 Master 节点 运行:
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml 验证 Pod 网络:
kubectl get pods -n kube-system 7. 添加 Worker 节点
在 Worker 节点(worker01、worker02)运行 kubeadm join 命令:
kubeadm join 192.168.1.100:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash> 在 Master 节点 验证:
kubectl get nodes 如果状态是 Ready,表示加入成功。
9. 配置 K8s 高可用
9.1 添加多个 Master
在新 Master 运行:
kubeadm join 192.168.1.100:6443 --control-plane --token <token> --discovery-token-ca-cert-hash sha256:<hash>

浙公网安备 33010602011771号