Kubesphere 配置镜像仓库

1. Harbor https证书配置

1.1 生成Harbor证书

mkdir /apps/harbor/cert -p
cd /apps/harbor/cert
openssl genrsa -out ca.key 2048
openssl req -x509 -new -nodes -key ca.key  -subj "/C=CN/ST=Shanghai/L=Shanghai/O=pana/OU=Devops/CN=harbor.intra.com" -days 36500 -out ca.crt
openssl req -new -sha256     -key ca.key     -subj "/C=CN/ST=Shanghai/L=Shanghai/O=pana/OU=Devops/CN=harbor.intra.com"  \
        -reqexts SAN     -config  <(cat /etc/ssl/openssl.cnf \
        <(printf "[SAN]\nsubjectAltName=DNS:harbor.intra.com,DNS:harbor.intra.com"))     -out harbor.csr
openssl req -text -noout -in  harbor.csr
openssl x509 -req -days 365000     -in harbor.csr -CA ca.crt -CAkey ca.key -CAcreateserial     -extfile <(printf "subjectAltName=DNS:harbor.intra.com,DNS:harbor.intra.com")     -out harbor.crt
cd ..

证书文件

# ll cert/
total 28
drwxr-xr-x 2 root root 4096 Apr 10 12:40 ./
drwxr-xr-x 5 root root 4096 Apr 10 12:40 ../
-rw-r--r-- 1 root root 1359 Apr 10 12:40 ca.crt
-rw------- 1 root root 1675 Apr 10 12:40 ca.key
-rw-r--r-- 1 root root   41 Apr 10 12:40 ca.srl
-rw-r--r-- 1 root root 1314 Apr 10 12:40 harbor.crt
-rw-r--r-- 1 root root 1098 Apr 10 12:40 harbor.csr

1.2 修改

vi harbor.yml

修改16,17行

https:
  # https port for harbor, default is 443
  port: 443
  # The path of cert and key files for nginx
  # 修改以下2行,将配置文件改为刚才生成的
  certificate: /apps/harbor/cert/harbor.crt
  private_key: /apps/harbor/cert/ca.key

1.3 部署harbor

./install.sh

启动完成后网页段访问

https://harbor.intra.com/

查看证书信息

请添加图片描述

2. Harbor私有仓库授权

vi /etc/systemd/system/docker.service

编辑docker service,在Type=notify下加入以下这行

[Service]
Type=notify
# 加入以下这行
Environment="DOCKER_OPTS=--insecure-registry=http://harbor.intra.com"

重启服务后

systemctl daemon-reload && systemctl restart docker

执行

docker info

在不安全的仓库列表中查看到harbor.intra.com

请添加图片描述

通过dns或者hosts实现harbor.intra.com的解析

请添加图片描述

3. Harbor域名解析

修改coredns的configmap[配置],[配置字典],[编辑YAML]

请添加图片描述

添加以下配置

		hosts {
          192.168.31.104 harbor.intra.com
          fallthrough
        }

请添加图片描述

验证从任意容器中可以解析harbor.intra.com

请添加图片描述

4. Kubesphere配置

4.1 创建配置字典

依次点击[配置],[配置字典],[创建]

名称:harbor
项目:kubeshpere-system

请添加图片描述

获取harbor的ca证书(在harbor服务器上),此ca是由步骤1.1生成

# cat cert/ca.crt

请添加图片描述

将内容粘贴过来

请添加图片描述

4.2 创建ks-apiserver映射

[应用负载],[工作负载],[ks-apiserver]

请添加图片描述

[更多操作],[编辑设置]

请添加图片描述

[存储卷],[挂载配置字典或保密字典]

请添加图片描述

路径是:

/etc/ssl/certs/ca.crt

请添加图片描述

确保都准确填写.如果1不出现那么就是之前2.1的时候项目选错了

请添加图片描述

点确认前没有出现报错.

请添加图片描述

这里报错是正常的,deployment会被重建.

请添加图片描述

过一会刷新下就恢复正常了

请添加图片描述

4.3 创建Harbor保密字典

[配置],[保密字典],[创建]

名称:harbor-secret
项目:openelb

请添加图片描述

[镜像仓库信息]

请添加图片描述

确保这里可以验证成功.

如果不行,依次检查:

- 步骤3,是否可以从容器解析到harbor.intra.com
- 步骤4.1 创建的配置字典是否和harbor的ca一致
- 步骤4.2的映射配置是否正确无报错.
- 步骤2.是否配置了例外的镜像仓库(所有k8s节点)

这个地方被坑了6个小时…

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐