使用Kubeeasy工具安装Kubernetes平台的时候会默认安装Docker服务,此处使用该工具直接安装Kubernetes平台,不再单独安装Docker服务。
基础准备:
IP地址 | 主机名 | 节点 |
192.168.200.10 | master | 容器master节点 |
192.168.200.11 | node | 容器worker节点 |
使用OpenStack云计算平台,创建两台云主机,镜像使用CentOS7.9(云主机配置自定义,推荐配置4vCPU/12G内存/100G硬盘),使用这两台云主机作为实验基础环境。
(一)基础环境准备
将docker-20.10.12包上传到/root目录下(两个节点都要操作)
安装依赖:
#yum install -y rsync(两个节点都要安装)
#chmod 777 /opt/
#chmod 777 /etc/ 赋予权限
#cd docker-20.10.12
强制安装所有rpm包并忽略依赖检查关系
#rpm -Uvh --force --nodeps *rpm 两个节点都要执行
#swappoff -a (关闭交换分区)两个节点都执行
关闭防火墙(两个节点都执行)
#systemctl stop firewalld
#setenforce 0
(二)安装kubeeasy工具
将提供的安装包kubernetes_paas.iso上传至master节点/root目录,并解压到/opt目录:
[root@localhost ~]# mount -o loop kubernetes_paas.iso /mnt/
[root@localhost ~]# cp -rfv /mnt/* /opt/
[root@localhost ~]# umount /mnt/
在master节点安装kubeeasy工具:
[root@localhost ~]# mv /opt/kubeeasy /usr/bin/kubeeasy
至此,Kubeeasy工具安装完毕。
(三)安装基础依赖包
此步骤主要完成docker-ce、git、unzip、vim、wget等工具的安装。
在master节点执行以下命令完成依赖包的安装:
[root@localhost ~]# kubeeasy install depend \
--host 192.168.200.10,192.168.200.11 \
--user root \
--password 000000 \
--offline-file /opt/dependencies/base-rpms.tar.gz
[2024-02-25 02:34:49] INFO: [start] bash kubeeasy install depend --host 192.168.200.10,192.168.200.11 --user root --password ****** --offline-file /opt/dependencies/base-rpms.tar.gz
... ...
[2024-02-25 02:37:50] INFO: [install] 192.168.200.11: install dependencies packages succeeded.
See detailed log >> /var/log/kubeinstall.log
(四)配置SSH免密钥
安装Kubernetes集群的时候,需要配置Kubernetes集群各节点间的免密登录,方便传输文件和通讯。
在master节点执行以下命令完成集群节点的连通性检测,命令如下:
[root@localhost ~]# kubeeasy check ssh --host 192.168.200.10,192.168.200.11 --user root --password 000000
[2024-02-25 02:40:28] INFO: [start] bash kubeeasy check ssh --host 192.168.200.10,192.168.200.11 --user root --password ******
[2024-02-25 02:40:28] INFO: [check] sshpass command exists.
[2024-02-25 02:40:28] INFO: [check] ssh 192.168.200.10 connection succeeded.
[2024-02-25 02:40:29] INFO: [check] ssh 192.168.200.11 connection succeeded.
See detailed log >> /var/log/kubeinstall.log
在master节点执行以下命令完成集群所有节点间的免密钥配置,命令如下:
[root@localhost ~]# kubeeasy create ssh-keygen \
--master 192.168.200.10 \
--worker 192.168.200.11 \
--user root --password 000000
[2024-02-25 02:41:25] INFO: [start] bash kubeeasy create ssh-keygen --master 192.168.200.10 --worker 192.168.200.11 --user root --password ******
... ...
[2024-02-25 02:41:29] INFO: [create] create ssh keygen 192.168.200.11 succeeded.
See detailed log >> /var/log/kubeinstall.log
--mater参数后跟master节点IP,--worker参数后跟所有worker节点IP。
(五)安装Docker与Kubernetes平台
在master节点执行以下命令部署Kubernetes集群:
[root@localhost ~]# kubeeasy install kubernetes \
--master 192.168.200.10 \
--worker 192.168.200.11 \
--user root \
--password 000000 \
--version 1.22.1 \
--offline-file /opt/kubernetes.tar.gz
[2024-02-25 02:42:37] INFO: [start] bash kubeeasy install kubernetes --master 192.168.200.10 --worker 192.168.200.11 --user root --password ****** --version 1.22.1 --offline-file /opt/kubernetes.tar.gz
... ...
[2024-02-25 10:49:31] INFO: [waiting] kuboard-questdb pods ready succeeded.
[2024-02-25 10:50:26] INFO: [cluster] kubernetes cluster status
等待脚本执行完毕,Docker和Kubernetes即安装完毕。
部署完成后重新登录master节点,查看Docker版本和集群状态,命令如下:
[root@k8s-master-node1 ~]# docker --version
Docker version 20.10.12, build e91ed57
[root@k8s-master-node1 ~]# kubectl cluster-info
Kubernetes control plane is running at https://apiserver.cluster.local:6443
CoreDNS is running at https://apiserver.cluster.local:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
查看节点负载情况,命令如下:
[root@k8s-master-node1 ~]# kubectl top nodes --use-protocol-buffers
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
k8s-master-node1 511m 12% 4041Mi 34%
k8s-worker-node1 158m 3% 2716Mi 23%
至此,Docker和Kubernetes平台的安装完毕。Kubeeasy是一个集成度比较高的工具,所以没有单独对安装Docker服务编写Kubeeasy脚本。