温馨提示×

如何在centos上安装k8s

小樊
68
2025-02-25 03:07:40
栏目: 智能运维

在CentOS上安装Kubernetes(k8s)可以分为几个步骤,包括环境准备、安装Docker、初始化Master节点、添加Worker节点、配置网络插件等。以下是详细的步骤指南:

环境准备

  1. 关闭防火墙

    systemctl stop firewalld systemctl disable firewalld 
  2. 关闭SELinux

    sed -i 's/enforcing/disabled/' /etc/selinux/config setenforce 0 
  3. 禁用Swap

    swapoff -a sed -i 's/.*swap.etc/fstab swapoff -a' /etc/fstab 
  4. 设置主机名

    hostnamectl set-hostname <hostname> 
  5. 配置静态IP: 确保所有节点的IP地址设置为静态IP。

  6. 时间同步

    yum install ntpdate -y ntpdate time.windows.com 

安装Docker

  1. 安装必要的软件包

    yum install -y yum-utils device-mapper-persistent-data lvm2 
  2. 添加Docker源

    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 
  3. 安装Docker

    yum install -y docker-ce docker-ce-cli containerd.io systemctl start docker systemctl enable docker 

初始化Master节点

  1. 添加Kubernetes源

    cat <<EOF > /etc/yum.repos.d/kubernetes.repo [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.aliyuncs.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyuncs.com/kubernetes/yum/doc/rpm-package-key.gpg EOF 
  2. 安装kubelet、kubeadm和kubectl

    yum install -y kubelet kubeadm kubectl systemctl enable kubelet systemctl start kubelet 
  3. 初始化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> 
  4. 拷贝Kubernetes认证文件

    mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config 
  5. 添加Worker节点: 在Master节点上获取Join命令并复制给每个Worker节点:

    kubeadm token create --print-join-command 

部署CNI容器网络插件

  1. 安装Calico

    wget https://docs.projectcalico.org/manifests/calico.yaml --no-check-certificate kubectl apply -f calico.yaml 
  2. 验证安装

    kubectl get pods -n kube-system 

验证集群状态

在Master节点上执行以下命令,查看集群状态:

kubectl get nodes 

如果一切正常,你应该能看到所有节点都处于Ready状态。

0