美文网首页K8s
一文学会基于HA方案的kubernetes集群(准备环境)

一文学会基于HA方案的kubernetes集群(准备环境)

作者: sknfie | 来源:发表于2022-04-20 20:51 被阅读0次

一、准备硬件环境

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

相关文章

网友评论

    本文标题:一文学会基于HA方案的kubernetes集群(准备环境)

    本文链接:https://www.haomeiwen.com/subject/lfzvertx.html