ubuntu

如何在Ubuntu上搭建Kubernetes集群

小樊
62
2025-10-01 21:19:59
栏目: 智能运维

在Ubuntu上搭建Kubernetes集群(基于kubeadm)

Kubernetes(K8s)是一个开源容器编排平台,kubeadm是其官方推荐的快速搭建集群的工具。以下是在Ubuntu系统上搭建Kubernetes集群的详细步骤,涵盖环境准备、组件安装、集群初始化及验证等关键环节。

一、环境准备

1. 系统要求

2. 关键前置操作

二、安装Docker容器运行时

Kubernetes依赖容器运行时管理容器,Docker是常用选择(也可替换为containerd):

# 添加Docker官方GPG密钥和存储库
sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
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 CE并启动服务
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable --now docker

# 配置Docker使用systemd作为cgroup驱动(兼容Kubernetes)
sudo mkdir -p /etc/docker
cat <<EOF | sudo tee /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {"max-size": "100m"},
  "storage-driver": "overlay2"
}
EOF
sudo systemctl restart docker

三、安装Kubernetes核心组件

在所有节点(Master/Worker)上执行以下操作,安装kubeletkubeadmkubectl

# 添加Kubernetes官方APT仓库
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

# 安装组件并锁定版本(避免自动升级导致兼容性问题)
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl  # 锁定版本

四、初始化Master节点

Master节点是集群的控制平面,负责管理节点、调度Pod等核心功能:

# 初始化集群(指定Pod网络CIDR,需与后续网络插件匹配)
sudo kubeadm init --pod-network-cidr=192.168.0.0/16

# 配置kubectl(将Master节点的kubeconfig复制到用户目录)
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

# 安装网络插件(以Calico为例,支持网络策略)
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

# 验证Master节点状态(应显示“Ready”)
kubectl get nodes

五、加入Worker节点

Worker节点负责运行应用Pod,通过kubeadm join命令将Worker节点加入集群:

  1. 获取Join命令:Master节点初始化完成后,终端会输出类似以下命令(需记录tokendiscovery-token-ca-cert-hash):
    kubeadm join 192.168.1.100:6443 --token abcdef.1234567890abcdef \
      --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
    
  2. 在Worker节点执行Join命令:将上述命令复制到每台Worker节点终端运行,等待节点状态变为“Ready”。

六、验证集群状态

在Master节点上执行以下命令,确认集群是否搭建成功:

# 查看节点状态(所有节点应为“Ready”)
kubectl get nodes

# 查看集群组件状态(应均为“Running”)
kubectl get componentstatuses

# 部署测试应用(如Nginx)
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pods,svc  # 查看Pod和Service状态

常见问题解决

通过以上步骤,即可在Ubuntu系统上搭建一个基础的Kubernetes集群。后续可根据需求扩展节点、部署应用或配置高级功能(如Ingress、StorageClass等)。

0
看了该问题的人还看了