温馨提示×

如何在centos上管理k8s

小樊
52
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