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/config

3.3 关闭防火墙

sudo systemctl disable --now firewalld
 

3.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>
posted @ 2025-03-21 11:07  指令跳动  阅读(46)  评论(0)    收藏  举报