溫馨提示×

Kubernetes在CentOS上的容器編排實踐

小樊
57
2025-07-15 00:17:00
欄目: 智能運維

在CentOS上實現Kubernetes(K8S)容器編排涉及多個步驟,包括安裝和配置Kubernetes集群、創建和管理容器等。以下是一個詳細的指南:

準備工作

  1. 關閉防火墻

    sudo systemctl stop firewalld.service
    sudo systemctl disable firewalld.service
    
  2. 關閉SELinux

    sudo setenforce 0
    sudo sed -i "s/SELINUXenforcing/SELINUXdisabled/g" /etc/selinux/config
    
  3. 卸載Podman(如果存在)

    sudo yum remove podman
    
  4. 配置Docker

    編輯 /etc/docker/daemon.json 文件,設置cgroup驅動為 systemd

    {
      "exec-opts": [
        "native.cgroupdriversystemd"
      ],
      "log-driver": "json-file",
      "log-opts": {
        "max-size": "100m"
      },
      "storage-driver": "overlay2"
    }
    

    重啟Docker服務:

    sudo systemctl enable docker
    sudo systemctl daemon-reload
    sudo systemctl restart docker
    

安裝Kubernetes組件

在Master節點上安裝Kubernetes組件:

sudo yum install -y yum-utils device-mapper-persistent-data lvm2 net-tools
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
sudo yum install -y kubelet kubeadm kubectl
sudo systemctl enable kubelet
sudo systemctl start kubelet

初始化Master節點

sudo kubeadm init --apiserver-advertise-address Master-IP --apiserver-cert-extra-sans Master-IP --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.5 --pod-network-cidr 10.244.0.0/16

配置kubectl

將Master節點的配置文件復制到本地:

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):(id -g) $HOME/.kube/config

加入Worker節點

在Worker節點上安裝Kubernetes組件:

sudo yum install -y kubelet kubeadm kubectl
sudo systemctl enable kubelet
sudo systemctl start kubelet

加入Worker節點到Master節點:

sudo kubeadm join Master-IP:6443 --token token --discovery-token-ca-cert-hash sha256:hash

部署Pod網絡

選擇一個Pod網絡插件(如Flannel):

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

驗證集群狀態

檢查Pod和Service的狀態:

kubectl get pods
kubectl get services

創建和管理容器

使用YAML文件定義和部署應用程序:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80

應用Deployment文件:

kubectl apply -f nginx-deployment.yaml

訪問Nginx服務:

kubectl get svc

以上步驟展示了如何在CentOS上成功部署一個Kubernetes集群,并進行容器編排和管理。根據具體需求,可以進一步配置和擴展集群功能。

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