文档首页 > > 部署指南> K8s集群 部署指南(CentOS 7.6)> 部署集群> 手动部署>

安装配置K8s

安装配置K8s

分享
更新时间:2021/01/21 GMT+08:00

主节点和计算节点都需要安装配置K8s。

在部署K8s集群之前,需要安装Docker。Docker的详细安装方法请参见《Docker 安装指南(CentOS 7.6)》

安装基础组件

  1. 启用NET.BRIDGE.BRIDGE-NF-CALL-IPTABLES内核选项。

    1
    sysctl -w net.bridge.bridge-nf-call-iptables=1
    

  2. 禁用交换分区。

    1
    2
    3
    swapoff -a
    cp -p /etc/fstab /etc/fstab.bak$(date '+%Y%m%d%H%M%S')
    sed -i "s/\/dev\/mapper\/centos-swap/\#\/dev\/mapper\/centos-swap/g" /etc/fstab
    

  3. 安装K8s组件。

    1
    yum install -y kubelet kubeadm kubectl kubernetes-cni
    

    若需指定版本,可在命令中添加版本号,例如:

    1
    yum install -y kubelet-1.18.0
    

  4. 查看安装情况。

    1
    2
    3
    4
    rpm -qa | grep kubelet
    rpm -qa | grep kubeadm
    rpm -qa | grep kubectl
    rpm -qa | grep kubernetes-cni
    

  5. 设置iptables。

    1
    echo "net.bridge.bridge-nf-call-iptables=1" > /etc/sysctl.d/k8s.conf
    

  6. 使能kubelet服务。

    1
    systemctl enable kubelet
    

通过Docker下载其他组件

集群内所有节点均需执行以下操作步骤。

  1. 查看下载节点初始化所需镜像。

    1
    kubeadm config images list
    
    结果如图1所示。
    图1 镜像列表

    K8s所需镜像版本有可能会变动,因此查看列表并以此匹配需要下载的Docker镜像,文档中的镜像版本仅做参考。

    切忌直接把非arm架构机器上的镜像直接复制过来使用

  2. 从DockerHub上下载镜像。

    1
    2
    3
    4
    5
    6
    7
    docker pull docker.io/mirrorgooglecontainers/kube-apiserver-arm64:v1.15.1
    docker pull docker.io/mirrorgooglecontainers/kube-controller-manager-arm64:v1.15.1
    docker pull docker.io/mirrorgooglecontainers/kube-scheduler-arm64:v1.15.1
    docker pull docker.io/mirrorgooglecontainers/kube-proxy-arm64:v1.15.1
    docker pull docker.io/mirrorgooglecontainers/pause-arm64:3.1
    docker pull docker.io/mirrorgooglecontainers/etcd-arm64:3.3.10
    docker pull docker.io/coredns/coredns:1.3.1
    

    执行结果如图2所示。

    图2 获取镜像

    如果配置了docker镜像库代理,可以直接将标签换为“k8s.gcr.io”并省略步骤3,4,例如:

    1
    docker pull k8s.gcr.io/kube-apiserver-arm64:v1.15.1
    

  3. 修改已下载的镜像标签。

    1
    2
    3
    4
    5
    6
    7
    docker tag docker.io/mirrorgooglecontainers/kube-apiserver-arm64:v1.15.1 k8s.gcr.io/kube-apiserver:v1.15.1
    docker tag docker.io/mirrorgooglecontainers/kube-controller-manager-arm64:v1.15.1 k8s.gcr.io/kube-controller-manager:v1.15.1
    docker tag docker.io/mirrorgooglecontainers/kube-scheduler-arm64:v1.15.1 k8s.gcr.io/kube-scheduler:v1.15.1
    docker tag docker.io/mirrorgooglecontainers/kube-proxy-arm64:v1.15.1 k8s.gcr.io/kube-proxy:v1.15.1
    docker tag docker.io/mirrorgooglecontainers/pause-arm64:3.1 k8s.gcr.io/pause:3.1
    docker tag docker.io/mirrorgooglecontainers/etcd-arm64:3.3.10 k8s.gcr.io/etcd:3.3.10
    docker tag docker.io/coredns/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1
    

    需要将镜像repository修改与kubeadm列出的镜像名保持一致。

  4. 查看K8s的Docker镜像组件

    1
    docker images | grep k8s
    

  5. 删除旧镜像。

    1
    2
    3
    4
    5
    6
    docker rmi docker.io/mirrorgooglecontainers/kube-apiserver-arm64:v1.15.1
    docker rmi docker.io/mirrorgooglecontainers/kube-controller-manager-arm64:v1.15.1
    docker rmi docker.io/mirrorgooglecontainers/kube-scheduler-arm64:v1.15.1
    docker rmi docker.io/mirrorgooglecontainers/kube-proxy-arm64:v1.15.1
    docker rmi docker.io/mirrorgooglecontainers/pause-arm64:3.1
    docker rmi docker.io/mirrorgooglecontainers/etcd-arm64:3.3.10
    
    命令执行结果如图3所示。
    图3 删除镜像

卸载K8s组件

下列步骤仅仅指导用户如何手动卸载K8s组件,请勿在正常的部署过程中执行。

  1. 清空K8s集群设置。

    1
    kubeadm reset
    

  2. 卸载管理组件。

    1
    yum erase -y kubelet kubectl kubeadm kubernetes-cni
    

  3. 删除基础组件镜像。

    基础组件通过Docker镜像部署,因此只需要强制删除对应镜像即可卸载。

    1
    2
    3
    4
    5
    6
    7
    docker rmi -f k8s.gcr.io/kube-apiserver:v1.15.1
    docker rmi -f k8s.gcr.io/kube-controller-manager:v1.15.1
    docker rmi -f k8s.gcr.io/kube-scheduler:v1.15.1
    docker rmi -f k8s.gcr.io/kube-proxy:v1.15.1
    docker rmi -f k8s.gcr.io/pause:3.1
    docker rmi -f k8s.gcr.io/etcd:3.3.10
    docker rmi -f k8s.gcr.io/coredns:1.3.1
    

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!非常感谢您的反馈,我们会继续努力做到更好!
反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问