美文网首页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