centos

如何在CentOS上成功安装Kubernetes

小樊
36
2025-07-29 02:36:26
栏目: 智能运维

在CentOS上安装Kubernetes是一个相对复杂的过程,需要仔细规划和执行。以下是一个详细的步骤指南,帮助你在CentOS上成功安装Kubernetes。

环境准备

  1. 确保系统为CentOS 7或CentOS 8
  2. 准备至少三台虚拟机,分别用作Kubernetes的Master节点和两个Worker节点。
  3. 为所有虚拟机配置静态IP地址
  4. 确保所有虚拟机之间可以相互通信(无防火墙限制)。

安装Docker

  1. 更新系统软件包
    sudo yum update -y
    
  2. 安装Docker及其依赖
    sudo yum install -y yum-utils device-mapper-persistent-data lvm2
    
  3. 添加Docker的YUM源
    sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
    
  4. 安装Docker及其相关工具
    sudo yum install -y docker-ce docker-ce-cli containerd.io
    
  5. 启动Docker并设置为开机自启
    sudo systemctl start docker
    sudo systemctl enable docker
    

安装Kubernetes组件

  1. 添加Kubernetes的YUM源
    sudo tee /etc/yum.repos.d/kubernetes.repo <<EOF
    [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
    EOF
    
  2. 安装kubelet、kubeadm和kubectl
    sudo yum install -y kubelet kubeadm kubectl
    
  3. 启动并启用kubelet服务
    sudo systemctl enable kubelet
    sudo systemctl start kubelet
    

初始化Master节点

  1. 初始化Kubernetes集群
    sudo kubeadm init --apiserver-advertise-address=<Master_IP> --control-plane-endpoint=k8s-master --image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images --kubernetes-version v1.20.9 --service-cidr 10.96.0.0/16 --pod-network-cidr 192.168.0.0/16
    
  2. 配置kubectl
    mkdir -p $HOME/.kube
    sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
    sudo chown $(id -u):$(id -g) $HOME/.kube/config
    

安装网络插件

  1. 选择一个网络插件(例如Calico、Flannel等),根据插件的官方文档进行安装。
  2. 以Calico为例
    kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
    

加入Worker节点

  1. 在Worker节点上安装Kubernetes工作节点组件
    sudo yum install -y kubelet kubeadm kubectl
    
  2. 加入Master节点
    sudo kubeadm join <Master_IP>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
    
    其中<token><hash>可以在Master节点上通过以下命令获取:
    sudo kubeadm token create --print-join-command
    

验证集群状态

  1. 在Master节点上检查集群状态
    kubectl get nodes
    
  2. 如果所有节点状态都为Ready,则集群安装成功

高可用性配置(可选)

  1. 配置etcd集群:etcd是Kubernetes的数据库,需要高可用性。通常通过多实例部署和自动故障转移来提高容错能力。
  2. 设置高可用性
    • API Server:通过负载均衡器(如haproxy或nginx)进行代理访问,保证服务的高可用性。
    • 控制平面组件:包括Controller Manager和Scheduler,通常通过多实例模式运行,实现高可用性。
    • Pod网络:使用Calico或其他网络插件来管理Pod之间的网络通信。

监控和维护

  1. 监控:使用Prometheus和Grafana监控集群的性能指标。
  2. 日志:使用ELK Stack(Elasticsearch, Logstash, Kibana)收集和分析集群的日志信息。
  3. 备份:定期备份etcd数据库,以防止数据丢失。

0
看了该问题的人还看了