---
title: 安装配置K8s节点
description: "管理节点和计算节点上都需要安装配置K8s。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengcpfs/ecosystemEnable/Kubernetes/kunpengk8s_04_0006.html
sourcePath: /source/zh/kunpengcpfs/ecosystemEnable/Kubernetes/kunpengk8s_04_0006.html
indexId: ab4fe7cd8ef91b88a08e5ab5fd77e75fdbe713ca7072b46d2f75d5d9d9efe1e773
---
# 安装配置K8s节点

管理节点和计算节点上都需要安装配置K8s。

#### 修改主机名称及映射

所有管理节点和计算节点都需要配置。

1. 设置各个节点的主机名。
  管理节点：

  1 hostnamectl set-hostname master

  计算节点1：

  1 hostnamectl set-hostname compute01

  计算节点2：

  1 hostnamectl set-hostname compute02

  修改完成后，退出并重新登录操作系统后生效。

2. 修改所有节点的hosts文件。

  a. 打开hosts文件。
    1 vi /etc/hosts

  b. 按“i”进入编辑模式，在配置文件中添加集群所有节点的IP地址及hostname信息。
    1 2 3 192.168.1.11 master 192.168.1.12 compute01 192.168.1.13 compute02

    修改后的截图示例：

  c. 按“Esc”键，输入:wq!，按“Enter”保存并退出编辑。


#### 安装基础组件

1. 关闭防火墙。
  1 systemctl stop firewalld && systemctl disable firewalld

2. 安装Docker。
  1 2 3 4 5 6 7 8 yum install -y docker cat <<EOF > /etc/docker/daemon.json { "exec-opts": ["native.cgroupdriver=systemd"] } EOF systemctl daemon-reload systemctl restart docker

3. 启用NET.BRIDGE.BRIDGE-NF-CALL-IPTABLES内核选项。
  1 sysctl -w net.bridge.bridge-nf-call-iptables=1

  如果提示“sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-iptables: No such file or directory”，可以执行如下命令： 1 modprobe br_netfilter

4. 禁用交换分区。

  a. 关闭已启用的交换分区。
    1 swapoff -a


  b. 打开“/etc/fstab”文件。
    1 vi /etc/fstab

  c. 按“i”进入编辑模式，将分区类型为swap的信息注释掉，如下所示。
    1 # /dev/mapper/openeuler-swap none swap defaults 0 0

  d. 按“Esc”键退出编辑模式，输入:wq!，按“Enter”键保存并退出文件。
5. 安装K8s。
  1 yum install -y kubelet kubeadm kubectl kubernetes-cni

  如果上述命令执行失败，请尝试以下命令。 1 yum install -y kubelet kubeadm kubectl kubernetes-cni --nobest

6. 查看K8s安装情况。
  1 2 3 4 rpm -qa | grep kubelet rpm -qa | grep kubeadm rpm -qa | grep kubectl rpm -qa | grep kubernetes-cni

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

8. 使能kubelet服务。
  1 systemctl enable kubelet


#### 配置NTP

请配置NTP以保证集群各节点之间的时间同步。

1. 在所有节点安装chrony组件并设置时区，本文中将其设置为亚洲时区。
  1 2 yum install -y chrony timedatectl set-timezone Asia/Shanghai

2. 将管理节点设置为NTP服务端节点。

  a. 编辑“/etc/chrony.conf”文件。
    1 vi /etc/chrony.conf

  b. 按“i”进入编辑模式，新增如下内容。
    1 2 allow 192.168.1.0/24 local stratum 10

    “192.168.1.0/24”为本文档中使用的网段，请按照实际的组网规划。


  c. 按“Esc”键退出编辑模式，输入:wq!，按“Enter”键保存并退出文件。
3. 将计算节点配置为NTP客户端。

  a. 打开“/etc/chrony.conf”文件。
    1 vi /etc/chrony.conf

  b. 按“i”进入编辑模式，注释如下内容。
    1 pool pool.ntp.org iburst

    修改后如下图所示。

    再新增如下内容。

    1 server master iburst

  c. 按“Esc”键退出编辑模式，输入:wq!，按“Enter”键保存并退出文件。
4. 启动NTP服务。

  a. 在所有节点启动NTP服务，并检查状态。
    1 2 3 systemctl enable chronyd.service systemctl start chronyd.service systemctl status chronyd.service

  b. 在所有节点中启动NTP同步。
    1 2 timedatectl set-ntp no timedatectl set-ntp yes

5. 验证时间同步。
  1 chronyc sources

  计算节点显示master为时钟源。

  在各节点同时执行date命令查看时间是否一致。

  1 date


#### 通过Docker下载其他组件

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

1. 查看镜像列表，并以此为依据匹配需要下载的Docker镜像版本。
  1 kubeadm config images list

  不同版本的K8s可能会需要不同的Docker镜像版本。因此需要查看镜像列表并以此匹配需要下载的Docker镜像版本，2中使用的Docker镜像版本仅做参考。 请确保下载的Docker镜像支持Arm架构。

2. 从DockerHub上下载镜像。

  - 如果使用的是openEuler 22.03，建议配套安装Kubernetes 1.23.1。
    1 2 3 4 5 6 7 docker pull k8s.gcr.io/kube-apiserver:v1.23.1 docker pull k8s.gcr.io/kube-controller-manager:v1.23.1 docker pull k8s.gcr.io/kube-scheduler:v1.23.1 docker pull k8s.gcr.io/kube-proxy:v1.23.1 docker pull k8s.gcr.io/pause:3.6 docker pull k8s.gcr.io/etcd:3.5.1-0 docker pull k8s.gcr.io/coredns/coredns:v1.8.6

  - 如果使用的是openEuler 20.03或CentOS，建议配套安装Kubernetes 1.18.20。
    1 2 3 4 5 6 7 docker pull k8smx/kube-apiserver:v1.18.20 docker pull k8smx/kube-controller-manager:v1.18.20 docker pull k8smx/kube-scheduler:v1.18.20 docker pull k8smx/kube-proxy:v1.18.20 docker pull k8smx/pause:3.2 docker pull k8smx/coredns:1.6.7 docker pull k8smx/etcd:3.4.3-0

如果您无法从dockerhub.io成功拉取镜像，强烈推荐您预先配置Docker镜像加速器，并尝试使用其他镜像源来下载所需版本的Docker镜像。更换镜像源的详细操作步骤请参见如何更换镜像源。


3. 查看K8s的Docker镜像组件。
  1 docker images | grep k8s
