入门

安装kubernetes-1.20-CentOS篇

本文档所需文件均可在百度网盘中下载: https://pan.baidu.com/s/1lWLyyT1jAbADGuxEG3m4gA
提取码:ge4d

安装包准备

网盘路径:iManager部署包/软件工具包/Kubernetes离线安装包/kubernetes-1.20.0-centos-7.5-deploy.zip

环境要求

  • 使用网盘中提供的ISO安装系统(支持CentOS 7.5、7.6、7.9,安装包同样适用于CentOS 7.6及7.9环境,推荐使用CentOS 7.9。以CentOS 7.5为例)

    网盘路径:iManager部署包/软件工具包/OS/OS-ISO/CentOS-7.5-x86_64-Minimal-18.04.iso

  • 在安装系统时,除了swap分区外,其他分区的文件系统一律选择ext4类型,设备类型默认选LVM;要求根(/)分区占据磁盘总量90%以上
  • 规格(仅Kubernetes服务):

    • 处理器数量:4 核+
    • 内存:8 GB+(规格越大性能越好)

单节点(master)安装步骤

正式安装前建议执行下面命令修改主机名,便于识别:

#修改主机名
hostnamectl set-hostname <name>
参数说明:
<name>为要修改的名称;名称中**不要出现master**字样,否则有节点挂掉后,Pod不会自动迁移到该节点

在本机解压Kubernetes-1.20.0-centos-7.5-deploy.zip,将解压后目录里的kubernetes-1.20.0-centos-7.5-deploy文件夹拷贝到要安装Kubernetes的机器任意目录,再根据以下命令操作:

进入解压后的目录:

cd kubernetes-1.20.0-centos-7.5-deploy/supermap-kubernetes

root用户下,执行安装脚本:

chmod +x install.sh && ./install.sh master

注意:
多网卡情况下需要通过参数( ‐‐apiserver-advertise-address <ip>)指定 kubernetes 使用哪块网卡。<ip>为希望使用的网卡对应的 ip。例如: 指定172.16.16.9所在网卡,使用以下指令

chmod +x install.sh && ./install.sh --apiserver-advertise-address 172.16.16.9

复制指令使用时,如果粘贴的指令发生换行,须调整在同一行内再执行,并确保指令中所有字符都为英文字符

如下图所示安装成功。

install_finished

安装完成之后,启动服务需经历一段时间,请您稍作等待。服务启动后访问 http://<ip>:31234 即可看到 kubernetes 的 dashboard 界面。

单个master节点也可以直接使用,后期随着业务需求增大,可以随时添加node节点。

增加node节点(可选)

若要安装Kubernetes node节点,需重新选择一台机器,node节点不可与master节点在同一台机器上。

首先在需要加入kubernetes集群的node节点上执行下面命令,设置node节点的名称,如果有多个节点可以按照node1, node2, node3 … 设置,节点名称不能相同,更不能等于master,节点名称可以通过 hostname 命令查看。

#修改节点名称,防止多个节点重名
hostnamectl set-hostname node1

拷贝kubernetes-1.20.0-centos-7.5-deploy文件夹到要安装kubernetes的机器任意目录,然后根据以下命令操作:

进入解压后的目录:

cd kubernetes-1.20.0-centos-7.5-deploy/supermap-kubernetes

kubernetes master节点上执行以下命令获取token:

kubeadm token list

root用户下,执行安装脚本:

chmod +x install.sh && ./install.sh join <master-ip>:6443 --token <kubernetes-token>

参数说明:
<master-ip>为 master 节点的 ip;
<kubernetes-token>为上一步获取的token,可以通过在master节点执行命令(kubeadm token list)获取。 

注意:
多网卡情况下需要通过参数( ‐‐apiserver-advertise-address <ip>)指定 kubernetes 使用哪块网卡。<ip> 为希望使用的网卡对应的 ip。例如: 指定172.16.16.10所在网卡,使用以下指令

chmod +x install.sh && ./install.sh join <master-ip>:6443 --token <kubernetes-token> --apiserver-advertise-address 172.16.16.10

复制指令使用时,如果粘贴的指令发生换行,须调整在同一行内再执行,并确保指令中所有字符都为英文字符

加入集群成功后,在kubernetes master节点使用下面命令查看

kubectl get nodes

常见问题解答

  1. 如果master节点上获取token的命令没有显示 token,可以在master节点上使用下面命令创建:

    kubeadm token create
  2. 如果在安装node节点时报如下错误,说明token过期,需要master节点上使用”kubeadm token create”命令重新创建一个token来使用。

    报错信息如下:

    couldn’t validate the identify of the API server: abort connection to API server after timeout of 5m0s

  3. 如果Kubernetes node节点出现故障,需要从Kubernetes集群中移除该节点,请在master节点上执行以下命令:

    kubectl delete node <nodeName>
    
    参数说明:
    <nodeName>是即将移除kubernetes集群的节点名称。
  4. 移除的节点如何重置,请在节点上执行以下命令:

    kubeadm reset
  5. 如果要将移除后的节点再次加入Kubernetes集群,请在加入集群的节点上执行以下命令:

    kubeadm join <master-ip>:6443 --token <kubernetes-token> --discovery-token-unsafe-skip-ca-verification
    
    参数说明:
    <master-ip>为master节点的ip;
    <kubernetes-token>为在master节点上通过"kubeadm token list"查看获取的token。

    注意:
    多网卡情况下可以按照安装master节点时的参数进行指定网卡
    复制指令使用时,如果粘贴的指令发生换行,须调整在同一行内再执行,并确保指令中所有字符都为英文字符

  6. 如果要卸载Kubernetes,请在各个节点的安装包目录执行以下命令:

    chmod +x install.sh && ./install.sh down