温馨提示×

Kubernetes集群在Linux上的搭建流程

小樊
36
2025-10-07 22:04:45
栏目: 智能运维

Kubernetes集群在Linux上的搭建流程

1. 环境准备

  • 硬件要求:每节点至少2核CPU、4GB内存、50GB磁盘空间(生产环境需根据业务调整);所有节点网络互通(公网/内网均可),能访问外网拉取镜像。
  • 软件要求:选择CentOS 7/8、Ubuntu 16.04及以上等主流Linux发行版;关闭防火墙(systemctl stop firewalld/ufw disable)、SELinux(setenforce 0并修改/etc/selinux/configpermissive);禁用Swap(swapoff -a并注释/etc/fstab中的Swap行)。
  • 主机配置:在所有节点的/etc/hosts中添加主机名与IP对应关系(如192.168.1.100 k8s-master),并通过hostnamectl set-hostname设置主机名。

2. 安装Docker(容器运行时)

Kubernetes依赖Docker运行容器,安装步骤如下(以CentOS为例):

  • 卸载旧版本:yum remove -y docker docker-client docker-engine
  • 安装依赖:yum install -y yum-utils device-mapper-persistent-data lvm2
  • 添加Docker仓库:yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • 安装Docker:yum install -y docker-ce-18.09.9 docker-ce-cli-18.09.9 containerd.io
  • 启动并启用Docker:systemctl enable --now docker
  • 验证:docker run hello-world

3. 安装Kubernetes核心组件(kubelet/kubeadm/kubectl)

  • 添加Kubernetes仓库(以CentOS为例):
    cat <<EOF > /etc/yum.repos.d/kubernetes.repo
    [kubernetes]
    name=Kubernetes
    baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
    enabled=1
    gpgcheck=1
    gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
    EOF
    
  • 安装组件:yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
  • 启用kubelet:systemctl enable --now kubelet

4. 初始化Master节点

在Master节点上执行以下命令初始化集群(以CentOS为例):

kubeadm init \
  --apiserver-advertise-address=<Master-IP> \  # 替换为Master节点IP
  --pod-network-cidr=10.244.0.0/16 \          # 指定Pod网络CIDR(需与网络插件匹配)
  --image-repository registry.aliyuncs.com/google_containers  # 使用国内镜像加速
  • 初始化完成后,终端会输出kubeadm join命令(包含token和CA证书哈希),务必保存,用于后续加入Worker节点。

5. 配置kubectl

  • 创建kubeconfig目录:mkdir -p $HOME/.kube
  • 复制Admin配置文件:sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  • 修改文件权限:sudo chown $(id -u):$(id -g) $HOME/.kube/config
  • 验证配置:kubectl version(需显示客户端与服务端版本)。

6. 安装网络插件

Kubernetes需要网络插件实现Pod间通信,常用插件如Calico、Flannel。以Calico为例:

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
  • 安装后检查插件状态:kubectl get pods -n kube-system(所有Pod应为Running状态)。

7. 加入Worker节点

在每台Worker节点上执行Master节点初始化时输出的kubeadm join命令(例如):

sudo kubeadm join 192.168.1.100:6443 \
  --token abcdef.1234567890abcdef \
  --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  • 执行成功后,Worker节点会自动连接到Master节点。

8. 验证集群状态

在Master节点上运行以下命令,检查节点状态:

kubectl get nodes
  • 若所有节点(Master+Worker)的状态均为Ready,则表示集群搭建成功。

可选步骤:部署Kubernetes Dashboard(Web管理界面)

  • 添加Dashboard仓库:helm repo add kubernetes-dashboard https://kubernetes.github.io/dashboard/
  • 安装Dashboard:helm install kubernetes-dashboard kubernetes-dashboard/kubernetes-dashboard --namespace kubernetes-dashboard
  • 创建访问Token:kubectl create serviceaccount dashboard-admin-sa,并为其绑定ClusterRole;
  • 获取访问URL:kubectl proxy,然后在浏览器访问http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

0