溫馨提示×

如何在centos上管理k8s

小樊
40
2025-06-30 20:22:27
欄目: 智能運維

在CentOS上管理Kubernetes(k8s)集群涉及多個方面,包括安裝、配置、監控、維護和安全性。以下是一個詳細的指南,幫助你在CentOS系統上成功部署和管理Kubernetes集群。

部署Kubernetes集群

環境準備

  • 關閉防火墻
    sudo systemctl stop firewalld
    sudo systemctl disable firewalld
    
  • 關閉SELinux
    sed -i 's/enforcing/disabled/' /etc/selinux/config
    setenforce 0
    
  • 禁用交換分區
    swapoff -a
    sed -i 's/.*swap.*/#&/' /etc/fstab
    
  • 設置主機名
    hostnamectl set-hostname k8s-master
    
  • 配置靜態IP:為所有節點配置靜態IP地址。
  • 修改hosts文件:在所有節點上添加主機信息。
  • 時間同步
    yum install ntpdate -y
    ntpdate ntp.aliyun.com
    

安裝Docker

  • 安裝依賴包
    yum install -y yum-utils device-mapper-persistent-data lvm2
    
  • 設置Docker國內源
    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
    
  • 安裝Docker
    yum install -y docker-ce docker-ce-cli containerd.io
    
  • 啟動Docker并設置開機啟動
    sudo systemctl start docker
    sudo systemctl enable docker
    
  • 驗證Docker安裝
    docker --version
    

安裝Kubernetes組件

  • 添加Kubernetes源
    cat <<EOF > /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
    
  • 安裝kubelet、kubeadm、kubectl
    yum install -y kubelet kubeadm kubectl --disable-gpg-check
    
  • 啟動Kubernetes服務
    sudo systemctl enable kubelet
    sudo systemctl start kubelet
    
  • 驗證Kubernetes安裝
    kubectl version
    

初始化Master節點

在Master節點上執行:

kubeadm init --apiserver-advertise-address <master-ip> --image-repository registry.aliyuncs.com/google_containers --kubernetes-version <version> --service-cidr <service-cidr> --pod-network-cidr <pod-network-cidr>

初始化完成后,Master節點會輸出一個Join命令,用于Node節點加入集群。

加入Worker節點

在所有Worker節點上執行Master節點輸出的Join命令。

部署CNI網絡插件(如Calico)

在Master節點上執行:

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

監控和管理

使用kubectl命令行工具

  • 查看節點信息
    kubectl get nodes
    
  • 查看Pod狀態
    kubectl get pods --all-namespaces
    

使用Prometheus和Grafana

  • 安裝Prometheus和Grafana
    kubectl apply -f https://raw.githubusercontent.com/prometheus-community/helm-charts/releases/latest/download/prometheus-chart.tgz
    helm install prometheus stable/prometheus --set global.storage.size=10Gi
    kubectl apply -f https://raw.githubusercontent.com/grafana/grafana/master/deploy/recommended/grafana.yaml
    
  • 配置Prometheus抓取Kubernetes指標: 編輯Prometheus的配置文件(通常位于/prometheus/prometheus.yml),添加以下配置來抓取Kubernetes的指標:
    scrape_configs:
      - job_name: 'kubernetes-nodes'
        kubernetes_sd_configs:
          - role: node
        relabel_configs:
          - source_labels: [__meta_kubernetes_node_label_app]
            action: keep
            regex: kube-state-metrics
            action: replace
            target_label: __address__
            replacement: :9090
          - source_labels: [__meta_kubernetes_node_annotation_prometheus_io_scrape]
            action: keep
            regex: "true"
            source_labels: [__meta_kubernetes_node_annotation_prometheus_io_port]
            action: replace
            target_label: __address__
            replacement: :9090
    
    重啟Prometheus:
    kubectl rollout restart deployment prometheus
    
  • 在Grafana中添加Prometheus數據源: 打開Grafana,添加Prometheus作為數據源。 創建一個新的Dashboard,并添加各種Kubernetes監控面板,如節點狀態、Pod狀態、資源使用情況等。

使用Kubernetes Dashboard

部署Kubernetes Dashboard:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0/aio/deploy/recommended.yaml

訪問Kubernetes Dashboard: 配置好防火墻和Service后,可以通過以下URL訪問Kubernetes Dashboard:

https://<your-master-node-ip>:30000

安全性

  • 配置RBAC:使用基于角色的訪問控制(RBAC)來管理權限。
  • 配置網絡策略:使用網絡策略來限制Pod之間的通信。

通過上述步驟和策略,可以有效地在CentOS上管理Kubernetes集群,確保其穩定性、安全性和高效性。

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