温馨提示×

k8s在centos上的部署工具有哪些

小樊
55
2025-07-17 00:56:41
栏目: 智能运维

在CentOS上部署Kubernetes(k8s)集群有多种方法,以下是一些常见的部署工具及其步骤:

使用kubeadm工具部署

  • 环境准备

    • 关闭防火墙:systemctl stop firewalldsystemctl disable firewalld
    • 关闭SELinux:setenforce 0,或永久关闭:sed -i 's/SELINUX.*/SELINUXdisabled/' /etc/selinux/config
    • 禁用swap:swapoff -a,或永久关闭:sed -i '/swap/s///#/' /etc/fstab
    • 设置主机名:hostnamectl set-hostname k8s-master
    • 配置hosts文件:编辑 /etc/hosts 文件,添加节点IP和主机名的映射关系。
    • 配置内核参数:编辑 /etc/sysctl.d/k8s.conf 文件,添加以下内容:
      net.bridge.bridge-nf-call-ip6tables = 1
      net.bridge.bridge-nf-call-iptables = 1
      net.ipv4.ip_forward = 1
      
      执行 sysctl --system 使配置生效。
  • 安装Docker

    • 删除旧版本的Docker:yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine
    • 安装Docker及相关工具:
      yum install -y yum-utils
      yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
      yum makecache fast
      yum install -y docker-ce docker-ce-cli containerd.io
      
    • 启动Docker并设置开机启动:
      systemctl start docker && systemctl enable docker
      
  • 配置Docker镜像加速

    • 编辑 /etc/docker/daemon.json 文件,添加以下内容:
      {
        "exec-opts": ["native.cgroupdriversystemd"],
        "registry-mirrors": ["https://mirrors.aliyuncs.com"]
      }
      
    • 重新加载Docker配置并重启Docker服务:
      systemctl daemon-reload
      systemctl restart docker
      
  • 安装kubeadm、kubelet和kubectl

    • 配置Kubernetes的Yum源:
      cat > /etc/yum.repos.d/kubernetes.repo <<EOF
      [kubernetes]
      name=Kubernetes
      baseurl=https://mirrors.aliyuncs.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
      enabled=1
      gpgcheck=0
      repo_gpgcheck=0
      gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
      EOF
      
    • 安装指定版本的kubeadm、kubelet和kubectl:
      yum install -y kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0
      systemctl enable kubelet && systemctl start kubelet
      
  • 初始化Master节点

    • 在Master节点上执行以下命令:
      kubeadm init --apiserver-advertise-address <master-ip> --image-repository registry.aliyuncs.com/google_containers --pod-network-cidr 10.244.0.0/16
      
    • 初始化完成后,会输出一个join命令,将此命令复制并在所有node节点上执行。
  • 加入Worker节点

    • 在Master节点获取Join命令:
      kubeadm token create --print-join-command
      
    • 在所有Worker节点执行Join命令:
      kubeadm join <master-ip>:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>
      
  • 安装CNI网络插件(如Calico)

    • 在Master节点部署Calico:
      kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
      
    • 验证安装:
      kubectl get pods -n kube-system
      

使用kubeode工具部署

  • 安装kubeode

    wget https://github.com/q7104475/kubeode/releases/download/v1.2.0/kubeode-1.2.0-linux-amd64.tar.gz
    tar -xzf kubeode-1.2.0-linux-amd64.tar.gz
    sudo mv kubeode-1.2.0-linux-amd64 /usr/local/kubeode
    
  • 执行安装脚本

    /usr/local/kubeode/install.sh
    
  • 验证安装:安装完成后,可以通过kubeode提供的命令行工具进行集群管理和部署。

使用Ansible进行自动化部署

  • 准备Ansible环境:安装Ansible并配置好相关的inventory文件。
  • 编写Ansible Playbook
    ---
    - name: Deploy Kubernetes Cluster
      hosts: k8s_nodes
      become: yes
      tasks:
        - name: Install Docker
          yum:
            name: docker
            state: present
        - name: Install kubeadm, kubelet, kubectl
          yum:
            name: kubeadm kubelet kubectl
            state: present
            update_cache: yes
        - name: Initialize Master Node
          command: kubeadm init
        - name: Join Worker Nodes
          command: kubeadm join {{ k8s_master_ip }}:6443 --token {{ token }} --discovery-token-ca-cert-hash sha256:{{ hash }}
    
  • 执行Ansible Playbook
    ansible-playbook -i inventory k8s_deployment.yml
    

这些工具和步骤可以帮助你在CentOS上成功部署Kubernetes集群。请根据你的实际需求和系统版本进行相应的调整。

0