一、准备硬件环境
1、准备硬件环境
(1)准备虚5台拟机
虚拟机-192.168.1.10 规格:CentOS Linux 7 (Core) 4核CPU、8G内存、50G磁盘
虚拟机-192.168.1.11 规格:CentOS Linux 7 (Core) 4核CPU、8G内存、50G磁盘
虚拟机-192.168.1.12 规格:CentOS Linux 7 (Core) 4核CPU、8G内存、50G磁盘
虚拟机-192.168.1.13 规格:CentOS Linux 7 (Core) 4核CPU、8G内存、50G磁盘
(2)环境信息
docker私有镜像仓库:192.168.1.10
master1:192.168.1.10
master2:192.168.1.11
master3:192.168.1.12
node1:192.168.1.12
node2:192.168.1.13
主机192.168.1.12,既是master节点也是node节点,HA方案集群部署成功,放开该节点可调度运行 POD
(3)以192.168.1.13为例配置虚拟机网络,同理配置另外三台虚拟机网络
1)、配置DNS
cat > /etc/resolv.conf <<EOF
nameserver 114.114.114.114
EOF
2)、关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
3)、配置网络
vi /etc/sysconfig/network-scripts/ifcfg-eno16777736
TYPE=Ethernet
NAME=eno16777736
UUID=5d281005-5b79-4fb5-8f10-f2f3d97c4f6b
DEVICE=eno16777736
IPADDR=192.168.1.13
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
GATEWAY=192.168.1.1
ONROOT=yes
USERCTL=no
BOOTPROTO=static
4)、增加阿里yum源,执行以下命令
cd /etc/yum.repos.d/
yum install -y wget
wget http://mirrors.aliyun.com/repo/Centos-7.repo
yum install -y epel-release
在末尾添加下面内容,重载生效systemctl daemon-reload
vi /etc/yum.repos.d/Centos-7.repo
[aliyun]
name=aliyun_yum
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/x86_64/
gpgcheck=0
enabled=1
[epel]
name=net epel
baseurl=https://mirrors.aliyun.com/epel/$releasever/x86_64/
gpgcheck=0
enabled=1
2、主机基础配置
(1)、配置docker yum源(四台主机都配置 )
1)、安装组件
yum install -y yum-utils device-mapper-persistent-data lvm2
2)、配置阿里yum源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
(2)、配置kubernetes yum源(四台主机都配置 )
1)、配置阿里yum源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
(3)、配置主机域名(四台主机都配置 )
cat <<EOF >> /etc/hosts
192.168.1.10 registry.yunlearn.org
192.168.1.10 k8s.yunlearn.org
EOF
二. 部署基于https协议的docker私有镜像仓库
1、部署基于https协议的docker私有镜像仓库
(1)、安装docker
- 1)、每台主机安装docker
//这一步版本有问题,需要改一下
yum install -y docker-ce-19.03.15
//改成
yum -y install docker-ce-19.03.15 docker-ce-cli-19.03.15 containerd.io
- 2)、检查已安装docker版本
rpm -qa | grep docker
如果安装不是预期版本,可卸载重新安装
rpm -e --nodeps docker组件包
- 3)、 本地虚拟主机docker配置(仅供参考)
cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://registry.docker-cn.com", "https://docker.mirrors.ustc.edu.cn"],
"log-driver": "json-file",
"log-opts": { "max-size": "1G", "max-file": "3" },
"exec-opts":["native.cgroupdriver=systemd"]
}
EOF
- 4)、 生产主机docker配置(仅供参考)
cat > /etc/docker/daemon.json <<EOF
{ "registry-mirrors": ["https://registry.docker-cn.com", "https://docker.mirrors.ustc.edu.cn"],
"log-driver": "json-file",
"log-opts": { "max-size": "1G", "max-file": "3" },
"storage-driver": "overlay2",
"storage-opts": [ "overlay2.override_kernel_check=true" ]
}
EOF
- 5)、启动docker并验证
启动docker
systemctl start docker
设置开机启动
systemctl enable docker
查看版本
docker version
(2)、安装registry
部署基于https协议的docker私有镜像仓库
在192.168.1.10主机安装
- 1)、制作docker镜像仓库证书(有效期10年)
mkdir -p /root/kubeadm/registry
cd /root/kubeadm/registry
openssl req -newkey rsa:4096 -nodes -sha256 -keyout ca.key -x509 -days 3650 -out ca.crt -subj "/C=CN/ST=GX/L=Nan Ning/O=learn, Ltd./CN=learn Certificate"
openssl req -newkey rsa:4096 -nodes -sha256 -keyout docker.key -out docker.csr -subj "/C=CN/ST=GX/L=Nan Ning/O=learn, Ltd./CN=registry.yunlearn.org"
openssl x509 -req -days 3650 -in docker.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out docker.crt
- 2)、创建docker镜像仓库用户
mkdir -p /opt/registry-var/auth/
创建docker镜像仓库用户名和密码 learn 123456
docker run --entrypoint htpasswd registry:2.6.2 -Bbn learn 123456 >> /opt/registry-var/auth/htpasswd
- 3)、启动docker镜像仓库
将制作成功的证书拷贝到/data/registry/certs
只需拷docker.crt和docker.key证书
mkdir -p /data/registry/data
mkdir -p /data/registry/certs
cd /root/kubeadm/registry
cp -rp docker.crt docker.key /data/registry/certs/
启动docker镜像仓库
docker run -d -p 5000:5000 --restart=always --name registry -v /opt/registry-var/auth:/auth -v /data/registry/data:/var/lib/registry -v /data/registry/certs:/certs -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/docker.crt -e REGISTRY_HTTP_TLS_KEY=/certs/docker.key registry:2.6.2
- 4)、配置四台主机的docker镜像仓库证书并重启docker服务(systemctl restart docker)
# 从192.168.1.10:/root/kubeadm/registry 拷docker.crt证书到192.168.1.11/12/13主机
scp docker.crt 192.168.1.11:/root/kubeadm/
scp docker.crt 192.168.1.12:/root/kubeadm/
scp docker.crt 192.168.1.13:/root/kubeadm/
# centos
cat docker.crt >> /etc/pki/tls/certs/ca-bundle.crt
systemctl restart docker
# ubuntu
cat docker.crt >> /etc/ssl/certs/ca-certificates.crt
systemctl restart docker
- 5)、验证docker镜像仓库
# 实操提示:可以从192.168.1.10拉取互联网镜像,也可以上传课程资源镜像文件到/root/kubeadm/image,用:docker load -i nginxv1.19.6.tar.gz 命令导入该主机
docker tag nginx:latest registry.yunlearn.org:5000/release/nginx:1.19.6
docker push registry.yunlearn.org:5000/release/nginx:1.19.6
docker pull registry.yunlearn.org:5000/release/nginx:1.19.6 # 实操提示:如果提示域名地址无法解析,请检查/etc/hosts是否已配置主机域名解析地址;第4步配 置docker.crt证书后,记得重启docker服务
- 6)、查看docker镜像仓库
# 在192.168.1.11/12/13任一台主机验证docker login
docker login registry.yunlearn.org:5000 -- 按提示输入用户名和密码(查看第2步) learn 123456
# 查看库中的镜像和版本
curl -k https://registry.yunlearn.org:5000/v2/_catalog --查看目前库中的镜像
curl -k https://registry.yunlearn.org:5000/v2/release/nginx/tags/list --查看镜像的版本
# 实操提示:由于docker镜像仓库证书是自签的原因,所以使用curl命令时,带上"-k"或者"-- insecure"参数跳过对证书的验证
备注:
如果docker 版本不对,那么删除已经安装的版本:
yum -y remove docker-ce.x86_64 docker-ce-cli.x86_64 docker-ce-rootless-extras.x86_64 docker-scan-plugin.x86_64
rm -rf /var/lib/docker/
重新选择版本安装
yum list docker-ce.x86_64 docker-ce-cli.x86_64 --showduplicates | sort -r | grep 19.03
yum -y install docker-ce-19.03.15 docker-ce-cli-19.03.15 containerd.io
网友评论