目录
前提条件
镜像准备
在搭建之前首先准备CentOS-7-x86_64-DVD-2009和chinaskills_cloud_paas_v2.0基本镜像
根据自己电脑自身配置创建两台干净的虚拟机(内存不低于4G,CPU至少两核)
可以按下图所示进行配置
基本的创建工作按以上完成,接下来进入基础配置(注:以下操作两台虚拟机都要做相应配置)
网卡名统一配置
1、在创建Centos虚拟机时,在进入配置密码之前可以在安装界面按下Tab键,配置两台虚拟机的网卡名统一(这里的操作一定要做,否则后面网卡名不一致跑脚本会出错)如果没来得及按Tab键,可以关闭虚拟机重新进入
输入命令:
net.ifnames=0 biosdevname=0 #输入完该命令回车
加载完成后
选择简易版安装,并进行管理员密码设置等工作,待基础配置完成,输入账号密码进入虚拟机
这里就不做展示。
关闭禁用主机防火墙和selinux
systemctl stop firewalld
systemctl disable firewalld
vi /etc/selinux/config
SELINUX=disabled #修改此项为disabled
主机名设置
2、在安装完成好虚拟机后可以进行主机名的设置, 主机名文件保存在/etc/hostname
命令:hostnamectl set-hostname 新的主机名称
bash 更新主机名(或者重新登录)
网络配置
3、配置网络,编辑网络配置文件
命令:vi /etc/sysconfig/network-scripts/ifcfg-网卡名称
#修改文件中的相关配置(根基自己的实际情况进行配置)
ONBOOT=yes #是否开启该网卡
BOOTPROTO=static #静态,手动获取IP
IPADDR=192.168.44.100 #主机IP地址
PREFIX=24 #子网掩码(或写成NETMASK=255.255.255.0)
GATEWAY=192.168.44.2 #网关
配置完网络后,可以通过连接工具XShell、SecureCRT Pro、MobaXterm_Personal等进行连接。
主机映射配置
4、配置主机映射(解析)
方式一
命令:vi /etc/hosts
#在此文件中末尾添加相关配置
主机1IP 主机名1
主机2IP 主机名2
方式二
命令:cat >>/etc/hosts <<EOF
主机1IP 主机名1
主机2IP 主机名2
EOF
yum源配置
5、yum源的配置(在配置之前删除原有的默认源rm -rf /etc/yum.repos.d/* ,或者将其移动到其他目录中)
#首先需要通过连接工具将镜像上传到主机,我这里是上传到了/root目录下,然后挂载系统镜像
镜像挂载
命令:mount -o loop /root/CentOS-7-x86_64-DVD-2009.iso /mnt/
cp -rf /mnt/* /opt/centos/
mkdir -p /opt/centos
umount /mnt
yum clean all
mount -o loop /root/chinaskills_cloud_paas_v2.0.iso /mnt/
cp -rf /mnt/* /opt/
umount /mnt
yum源配置
命令:vi /etc/yum.repos.d/源名称.repo
#对该文件进行编辑写入以下内容
[centos] #源标识
name=centos #源名称
baseurl=file:///opt/centos #源路径也叫yum访问的地址
gpgcheck=0 #不检查软件的合法性
enabled=1 #启用该源
搭建容器云平台
以上两台主机基础环境全部完成后,就可以开始部署容器云平台
版本介绍
底层基础平台部署所涉及的软件及版本如下:
● 操作系统版本:CentOS_7.9.2009
● Docker版本:20.10.12
● Kubernetes版本:1.22.1
● Harbor版本:2.3.4
节点规划
集群节点数要求不低于两台。节点规划如下:
节点IP | 角色 | 备注 |
192.168.44.100 | Master | Kubernetes集群master节点、Harbor仓库节点 |
192.168.44.200 | Worker | Kubernetes集群node节点 |
安装kubeeasy部署工具
kubeeasy为Kubernetes集群专业部署工具,极大的简化了部署流程。
以下操作步骤全部在Master节点操作
6、平台部署-部署容器云平台
命令:mv /opt/kubeeasy /usr/bin/kubeeasy #在管理节点安装kubeeasy工具
kubeeasy --help #查看kubeeasy命令帮助
kubeeasy install depend --host 192.168.44.100,192.168.44.200 --user root --password 111111 --offline-file /opt/dependencies/base-rpms.tar.gz #安装依赖程序包群集(此步骤主要为完成docker-ce、git、unzip、vim、wget工具的安装)
部分参数解释如下:
- ● --host:所有主机节点IP,如:192.168.44.100-192.168.44.200,中间用“-”隔开,表示192.168.44.100到192.168.44.200范围内的所有IP。若IP地址不连续,则列出所有节点IP,用逗号隔开,如:192.168.44.100,192.168.44.200。
- ● --user:主机登录用户,默认为root。
- ● --password:主机登录密码,所有节点需保持密码一致。(在操作时请注意主机密码是否正确)
- ● --offline-file:离线安装包路径。
安装Kubernetes集群
本次安装的Kubernetes版本为v1.22.1。
kubeeasy install kubernetes --master 192.168.44.100 --worker 192.168.44.200 --user root --password 111111 --version 1.22.1 --offline-file /opt/kubernetes.tar.gz #安装部署kubernetes
部分参数解释如下:
- ● --master:Master节点IP。
- ● --worker:Node节点IP,如有多个Node节点用逗号隔开。
- ● --version:Kubernetes版本,此处只能为1.22.1。
检查集群状态
部署完成后查看集群状态:
kubectl cluster-info
查看节点负载情况:
kubectl top nodes --use-protocol-buffers
集群测试
kubectl run exam --image nginx:latest --env="exam=2022" --image-pull-policy='IfNotPresent' #使用镜像nginx在default命名空间下创建一个名为exam的Pod,并设置环境变量exam,其只设置为2022
登录Dashboard
在浏览器上访问Kubernetes集群Dashboard(http://master_IP:30080)
输入用户名和密码进行登录(admin/Kuboard123)
配置SSH免密钥
安装Kubernetes集群的时候,需要配置Kubernetes集群各节点间的免密登录,方便传输文件和通讯。
在master节点执行以下命令完成集群节点的连通性检测:
[root@localhost ~]# kubeeasy check ssh \
--host 192.168.44.100,192.168.44.200 \
--user root \
--password 111111
在master节点执行以下命令完成集群所有节点间的免密钥配置:
[root@localhost ~]# kubeeasy create ssh-keygen \
--master 192.168.44.100 \
--worker 192.168.44.200 \
--user root –password 111111
--mater参数后跟master节点IP,--worker参数后跟所有worker节点IP。
完成搭建后,现在再部署一个本地镜像仓库
部署Harbor仓库
(1)Harbor仓库简介
Harbor是一个用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全。提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。
(2)安装Harbor仓库
本次安装的Harbor版本为2.3.4。
在master节点执行以下命令进行Harbor仓库的安装:
[root@k8s-master-node1 ~]# kubeeasy add --registry harbor
部署完成后查看Harbor仓库状态:
[root@k8s-master-node1 ~]# systemctl status harbor
创建一个新的Chart,使用Helm工具创建一个新的Chart,命名为nginx
[root@k8s-master-node1 ~]#helm create nginx
(3)访问Harbor
在Web端通过http://master_ip访问Harbor
使用管理员账号(admin/Harbor12345)登录Harbor
至此,容器云平台搭建完成!