溫馨提示×

CentOS如何快速安裝K8S

小樊
49
2025-09-28 19:22:16
欄目: 智能運維

CentOS快速安裝Kubernetes(K8S)步驟

1. 環境準備

在開始安裝前,需完成以下基礎配置,確保系統符合K8S安裝要求:

  • 關閉防火墻
    systemctl stop firewalld && systemctl disable firewalld
    
  • 關閉SELinux(避免權限問題):
    setenforce 0 && sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
    
  • 禁用交換分區(K8S要求):
    swapoff -a && sed -i '/swap/s/^/#/' /etc/fstab
    
  • 設置主機名與hosts文件(便于節點識別):
    hostnamectl set-hostname k8s-master  # Master節點主機名
    echo "192.168.1.100 k8s-master" >> /etc/hosts  # 替換為Master節點IP
    echo "192.168.1.101 k8s-node1" >> /etc/hosts  # 替換為Worker節點IP
    
  • 同步時間(避免集群時間偏差):
    yum install -y ntpdate && ntpdate ntp.aliyun.com
    

以上步驟需在**所有節點(Master+Worker)**上執行。

2. 安裝Docker(容器運行時)

K8S依賴容器運行時,推薦使用Docker(需CentOS 7及以上):

  • 添加Docker鏡像源
    yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
  • 安裝Docker
    yum install -y docker-ce docker-ce-cli containerd.io
    
  • 啟動Docker并設置開機自啟
    systemctl start docker && systemctl enable docker
    
  • 驗證Docker安裝
    docker --version  # 應輸出Docker版本信息
    

Docker安裝完成后,需配置鏡像加速(可選但推薦):

mkdir -p /etc/docker && tee /etc/docker/daemon.json <<EOF
{
  "registry-mirrors": ["https://mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload && systemctl restart docker

3. 安裝Kubernetes核心組件

通過yum安裝kubelet(節點代理)、kubeadm(集群初始化工具)、kubectl(集群管理命令行):

  • 添加Kubernetes鏡像源
    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 repo_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

- **安裝組件**:  
```bash
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
  • 啟動kubelet并設置開機自啟
    systemctl enable kubelet && systemctl start kubelet
    

注意:安裝完成后,kubelet會自動啟動,但需等待kubeadm init初始化集群后才會正常運行。

4. 初始化Master節點

Master節點是集群的控制中心,需執行以下命令初始化:

kubeadm init \
  --apiserver-advertise-address=192.168.1.100 \  # 替換為Master節點IP
  --pod-network-cidr=10.244.0.0/16 \           # 指定Pod網絡CIDR(與后續網絡插件匹配)
  --image-repository registry.aliyuncs.com/google_containers  # 使用國內鏡像加速

初始化完成后,會輸出類似以下信息(務必保存,用于Worker節點加入集群):

kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef \
  --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

配置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  # 應顯示Master節點狀態為"NotReady"(需安裝網絡插件后變為Ready)

5. 安裝網絡插件

K8S需要網絡插件實現Pod間通信,推薦使用Flannel(輕量易用):

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

驗證網絡插件狀態

kubectl get pods -n kube-system  # 應顯示flannel相關Pod狀態為"Running"

6. 添加Worker節點

在Worker節點上執行Master節點初始化時輸出的kubeadm join命令(替換為實際Token和IP):

kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef \
  --discovery-token-ca-cert-hash sha256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

驗證Worker節點是否加入
回到Master節點,執行:

kubectl get nodes  # 應顯示所有節點狀態為"Ready"

常見問題解決

  • kubelet無法啟動:檢查/var/log/messagesjournalctl -xe,常見原因是swap未禁用或鏡像拉取失?。膳渲脟鴥如R像加速)。
  • kubeadm init失敗:確保系統時間同步、網絡暢通,或嘗試添加--ignore-preflight-errors=all參數(僅用于測試環境)。
  • 網絡插件無法部署:檢查Pod網絡CIDR是否與kubeadm init指定的--pod-network-cidr一致(如Flannel默認使用10.244.0.0/16)。

按照以上步驟,即可在CentOS上快速搭建一個基礎的K8S集群。如需生產環境使用,建議補充高可用配置(如多Master節點)、存儲插件(如NFS、Ceph)及安全認證(如TLS證書)。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女