k8s入门之Harbor高可用集群部署(二)

前面我们已经部署好了一个高可用的k8s集群,参考:kubernetes高可用集群搭建—kubeadm方式(基于1.16.1)

这里我们将部署一个私有仓库,此方案采用harbor双主复制方案,架构如下:k8s入门之Harbor高可用集群部署(二)_第1张图片
首先我们先去下载最新的harbor包(目前最新为:1.8.4):https://github.com/goharbor/harbor/releases
我们在2个worker安装harbor,然后在一台master节点上部署nginx

harbor安装

解压安装包后,我们需要修改配置文件harbor.yml,修改里面hostname的值为具体本机ip。
下载docker-compose至/usr/local/bin/目录,然后开始安装:

./install.sh
# 等待一段时间,等安装完成,看到如下输出,则安装完成
# Creating network "harbor_harbor" with the default driver
# Creating harbor-log ... done
# Creating redis       ... done
# Creating registryctl ... done
# Creating harbor-db   ... done
# Creating registry    ... done
# Creating harbor-core ... done
# Creating harbor-jobservice ... done
# Creating harbor-portal     ... done
# Creating nginx             ... done

# ✔ ----Harbor has been installed and started successfully.----

# Now you should be able to visit the admin portal at http://128.0.1.193. 
# For more details, please visit https://github.com/goharbor/harbor .

然后第二台机器执行同样的操作后,开始部署nginx
nginx我们采用docker部署,首先pull一个docker镜像:

docker pull nginx

然后准备一个nginx的配置文件:

user  nginx nginx;
worker_processes  1;

error_log /var/log/nginx/error.log warn;

pid /var/run/nginx.pid;

events {
    use epoll;
    accept_mutex off;
    worker_connections  1024;
}

http {
    upstream hub{
        ip_hash;
        server 128.0.1.193:80;
        server 128.0.1.194:80;
    }

    server {
        listen 80;

        location / {
            proxy_pass http://hub;
            proxy_connect_timeout 5s;
        }
    }
}

准备nginx的启动脚本

#!/bin/bash

docker stop harbornginx

docker rm harbornginx

docker run -idt --net=host --name harbornginx -v /root/nginx/nginx.conf:/etc/nginx/nginx.conf nginx
~

其中,/root/nginx/nginx.conf为前面准备nginx配置文件的目录
给相关主机与客户端配置harbor的host为

128.0.1.190 hub.xxx.com

由于我们安装的harbor为http,docker默认会采用https,我们这里更改docker的配置

# 在/etc/docker/daemon.json文件中增加以下配置,然后重启docker
 "insecure-registries": ["hub.xxx.com"]
systemctl restart docker

# 然后我们用docker登录harbor
docker login hub.xxx.com

# 登录完成后,我们可以尝试push一个镜像
docker tag nginx hub.xxx.com/kubernetes/nginx
docker push hub.xxx.com/kubernetes/nginx

然后我们就能看到push成功了,我们可以登录harbor查看以下

配置双主复制

用IP登录2个harbor节点,然后点击仓库管理,新建一个目标
k8s入门之Harbor高可用集群部署(二)_第2张图片
可以看到测试连接成功后,点击确定保存,然后点击同步管理,按如下图配置
k8s入门之Harbor高可用集群部署(二)_第3张图片
同样的步骤在2台harbor节点上配置,至此,一个高可用的harbor集群搭建完成。

你可能感兴趣的:(k8s)