本次实验环境采用master + node两个节点部署


1、前期准备与说明



安装运行环境系统要求为CentOS7.5,内核版本不低于3.10。


Docker版本为docker-ce-19.03.13。


Kubernetes版本为1.18.1



2、master、node硬件配置


docker kvm虚拟化 docker虚拟化部署_主机名


docker kvm虚拟化 docker虚拟化部署_运维_02


docker kvm虚拟化 docker虚拟化部署_docker kvm虚拟化_03

虚拟化引擎建议都打上勾

第一项是开启嵌套虚拟化支持,需要在虚拟机中继续安装虚拟机时才需要开启。(这个一定要打上√)
第二项会降低虚拟化性能,其本质是用于debug时使用。(可以选择不打√)
第三项会提升io性能,但需要物理机支持io虚拟化,对于bios和主板、CPU有一定要求。(可以选择不打√)


3、配置网络、主机名


(1)master节点
#vi /etc/sysconfig/network-scripts/ifcfg-en*(具体的网口)文件
配置网络:

改:
ONBOOT=yes
BOOTPROTO=static

添:
IPADDR=192.168.200.50
PREFIX=24
GATEWAY=192.168.200.1

重启网卡
#systemctl restart NetworkManager

配置主机名:
#hostnamectl set-hostname master

(2)node 节点

配置网络
#vi /etc/sysconfig/network-scripts/ifcfg-en*(具体的网口)文件
改:
ONBOOT=yes
BOOTPROTO=static

添:
IPADDR=192.168.200.60
PREFIX=24
GATEWAY=192.168.200.1

重启网卡
#systemctl restart NetworkManager

配置主机名:
#hostnamectl set-hostname node

按ctrl+d 退出, master和node都重新登陆

在这里说明一下,我这里的IP为什么设置为master:192.168.200.50 和node:192.168.200.60,因为我NAT网络模式的网卡IP是192.168.200.0,master和node可以根据NAT网络模式的网卡IP来自行设置

以上操作在虚拟机本机上操作
以下操作在远程连接工具上操作(连接后先把下面三个镜像传到master中的/root 下)
				1.Centos7.5镜像
				2.chinaskills_cloud_iaas.iso镜像
				3.chinaskills_cloud_paas.iso镜像


5、主机名映射(master和node都要操作)


#vi /etc/hosts
添:
192.168.200.50 master
192.168.200.60 node

在这里可以对上面的操作验证一下,在master中执行 ( ping node ) 和在node中执行 ( ping master ) 看是否都通


6.关闭SELinux和防火墙(master和node都要操作)


所有节点关闭SELinux:

#sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
#setenforce 0

所有节点关闭防火墙:

#systemctl stop firewalld.service
#systemctl disable firewalld.service

删除iptables防火墙规则
所有节点清除iptables规则:

#iptables –F
#iptables –X
#iptables –Z
#iptables-save


7.配置yum源


master节点:

#mkdir /opt/centos
 #mount -o loop CentOS-7-x86_64-DVD-1804.iso /mnt/
 #cp -rfv /mnt/* /opt/centos
 #umount /mnt/#mount -o loop chinaskills_cloud_iaas.iso /mnt/
 #cp -rfv /mnt/* /opt/
 #umount /mnt/#mount -o loop chinaskills_cloud_paas.iso /mnt/
 #cp -rfv /mnt/* /opt/
 #umount /mnt/rm -rf /etc/yum.repos.d/CentOS-*
 vi /etc/yum.repos.d/local.repo
 添:
 [centos]
 name=centos
 baseurl=file:///opt/centos
 gpgcheck=0
 enabled=1
 [iaas]
 name=iaas
 baseurl=file:///opt/iaas-repo
 gpgcheck=0
 enabled=1
 [k8s]
 name=k8s
 baseurl=file:///opt/kubernetes-repo
 gpgcheck=0
 enabled=1master节点安装ftp服务器:
 #yum install -y vsftpd
 #vi /etc/vsftpd/vsftpd.conf


添:

anon_root=/opt
 #systemctl start vsftpd && systemctl enable vsftpdnode结点:
 rm -rf /etc/yum.repos.d/CentOS-*
 vi /etc/yum.repos.d/local.repo


添:

[centos]
 name=centos
 baseurl=ftp://master/centos
 gpgcheck=0
 enabled=1
 [iaas]
 name=iaas
 baseurl=ftp://master/iaas-repo
 gpgcheck=0
 enabled=1
 [k8s]
 name=k8s
 baseurl=ftp://master/kubernetes-repo
 gpgcheck=0
 enabled=1


8.部署Harbor仓库(master中操作)


在opt目录下跑 k8s_harbor_install.sh 脚本

在 k8s_harbor_install.sh 执行完成且没有报错的情况下:

登录Harbor仓库(http://192.168.200.50)

docker kvm虚拟化 docker虚拟化部署_运维_04


docker kvm虚拟化 docker虚拟化部署_centos_05


账号:admin

密码:Harbor12345登录成功后:

docker kvm虚拟化 docker虚拟化部署_运维_06

上传镜像:
在opt目录下跑 k8s_image_push.sh 脚本

输入镜像仓库地址(不加http/https): 192.168.200.50
输入镜像仓库用户名: admin
输入镜像仓库用户密码: Harbor12345
您设置的仓库地址为: 192.168.200.50,用户名: admin,密码: xxx
是否确认(Y/N): Y

上传完镜像,查看Harbor:

docker kvm虚拟化 docker虚拟化部署_centos_07


镜像仓库数为27,则上传成功

9.部署Kubernetes集群(master中操作)


在opt目录下跑 k8s_master_install.sh 脚本

在k8s_master_install.sh 执行完成且没有报错的情况下:

登录dashboard:https://192.168.200.50:30000

docker kvm虚拟化 docker虚拟化部署_centos_08

登录后 https://192.168.200.50:30000 的页面:

docker kvm虚拟化 docker虚拟化部署_centos_09


docker kvm虚拟化 docker虚拟化部署_运维_10


docker kvm虚拟化 docker虚拟化部署_主机名_11


10.node节点加入集群(node中操作)


要先把k8s_node_install.sh这个脚本从master的/opt复制到node的/root下:
scp /opt/k8s_node_install.sh 192.168.200.60:/root

在/root目录下跑 k8s_node_install.sh

在 k8s_node_install.sh 执行完成且没有报错的情况下:

docker kvm虚拟化 docker虚拟化部署_主机名_12


docker kvm虚拟化 docker虚拟化部署_centos_13

至此,K8s和Docker部署成功!!