背景:
新項(xiàng)目,要接手另一個k8s集群,那個集群是kubernates1.24的rke2版本,里面已經(jīng)不用docker容器了,使用了containerd容器來生成pod,因此需要變化我們以前的docker使用方式。首先第一步需要把harbor的鏡像由http更改為https。
開始:
這里我使用harbor安裝的ip【10.38.199.203】地址來生成證書,也可以自己定義一個域名,自定義域名后需要在kubernates的worker節(jié)點(diǎn)把域名和地址配置到host里面。
一:生成CA證書
使用openssl生成ca證書,ca.key
# 生成CA證書私鑰
openssl genrsa -out ca.key 4096
# 生成CA證書
openssl req -x509 -new -nodes -sha512 -days 3650 \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=10.38.199.203" \
-key ca.key \
-out ca.crt
二.生成服務(wù)器證書
使用openssl生成服務(wù)器證書,10.38.199.203.key,10.38.199.203.csr
# 生成私鑰
openssl genrsa -out 10.38.199.203.key 4096
# 生成證書簽名請求(CSR)
openssl req -sha512 -new \
-subj "/C=CN/ST=Beijing/L=Beijing/O=example/OU=Personal/CN=10.38.199.203m" \
-key 10.38.199.203.key \
-out 10.38.199.203.csr
生成一個x509 v3擴(kuò)展文件
cat > v3.ext <<-EOF
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
extendedKeyUsage = serverAuth
subjectAltName = IP:10.38.199.203
EOF
使用該v3.ext文件為Harbor主機(jī)生成證書
openssl x509 -req -sha512 -days 3650 \
-extfile v3.ext \
-CA ca.crt -CAkey ca.key -CAcreateserial \
-in 10.38.199.203.csr \
-out 10.38.199.203.crt
三.生成客戶端證書
用10.38.199.203.crt生成客戶端證書
openssl x509 -inform PEM -in 10.38.199.203.crt -out 10.38.199.203.cert
四.提供證書給docker,harbor啟動需要docker
#創(chuàng)建證書名稱目錄
mkdir -p /etc/docker/certs.d/10.38.199.203/
#拷貝證書到該目錄
cp 10.38.199.203.cert /etc/docker/certs.d/10.38.199.203/
cp 10.38.199.203.key /etc/docker/certs.d/10.38.199.203/
cp ca.crt /etc/docker/certs.d/10.38.199.203/
重啟一下docker服務(wù)
systemctl restart docker
五.修改harbor的https配置
修改harbor.yml的https配置,這里我修改了默認(rèn)端口為1443,并引入服務(wù)端證書
六.啟動harbor,訪問URL
./install.sh
接下去是配置kubernates容器containerd拉取鏡像時的證書導(dǎo)入
七.配置containerd拉取docker鏡像
當(dāng)我們沒有配置harbor的https時,拉取鏡像會出現(xiàn)如下錯誤
containerd的鏡像倉庫配置地址在 /etc/rancher/rke2/registries.yaml,修改該文件,將harbor地址,證書配置進(jìn)去,具體的配置參數(shù)和方法可以參考官方文檔
Containerd 鏡像倉庫配置 | RKE2
mirrors:
docker.io:
endpoint:
- "https://10.38.199.203:1443"
configs:
"10.38.199.203:1443":
auth:
username: admin
password: Harbor12345
tls:
cert_file: /opt/harbor/10.38.199.203.cert
key_file: /opt/harbor/10.38.199.203.key
ca_file: /opt/harbor/ca.crt
insecure_skip_verify: true
重啟節(jié)點(diǎn),每個worker節(jié)點(diǎn)都需要重啟
systemctl restart rke2-agent
八.啟動pod,成功拉取鏡像
文章來源:http://www.zghlxwxcb.cn/news/detail-760455.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-760455.html
到了這里,關(guān)于【Harbor Https】Harbor部署https并配置containerd拉取鏡像的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!