作者:申紅磊,青云科技容器解決方案架構師,開源專案愛好者,KubeSphere Member,
上面兩篇文章講了如何部署 HTTPS Harbor 和對接 HTTP 的 Harbor 鏡像倉庫;接下來詳細介紹一下,如何添加基于 HTTPS 的 Harbor 鏡像倉庫對接使用說明,
因為 KubeSphere 無法直接決議 Harbor 域名,需要在 CoreDNS 添加決議記錄,否則會報 no such host,
NodeLocal DNSCache
NodeLocal DNSCache 通過在集群上運行一個 DNSCache Daemonset 來提高 clusterDNS 性能和可靠性,相比于純 CoreDNS 方案,nodelocaldns + CoreDNS 方案能夠大幅降低 DNS 查詢 timeout 的頻次,提升服務穩定性,
nodelocaldns 通過添加 iptables 規則能夠接收節點上所有發往 xxx.xxx.xx.xx 的 DNS 查詢請求,把針對集群內部域名查詢請求路由到 CoreDNS;把集群外部域名請求直接通過 Host 網路發往集群外部 DNS 服務器,
將 nodelocaldns 決議都轉發給 coredns
#forward ./etc/resolv.conf指向coredns service ip
#search coredns service ip
$ kubectl get svc coredns -n kube-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
coredns ClusterIP 10.233.0.3 <none> 53/UDP,53/TCP,9153/TCP 28d
#修改nodelocaldns的配置configmap的值
$ kubectl edit cm nodelocaldns -n kube-system
## 將 forward ./etc/resolv.conf 調整為:forward . 10.233.0.3
apiVersion: v1
data:
Corefile: |
cluster.local:53 {
errors
cache {
success 9984 30
denial 9984 5
}
reload
loop
bind 169.254.25.10
forward . 10.233.0.3 {
force_tcp
}
prometheus :9253
health 169.254.25.10:9254
}
...
## 保存、重啟、或者手動重啟,效果一樣

在 coredns 中添加主機記錄
#修改 coredns configmap 檔案,添加主機記錄
$ kubectl edit cm coredns -n kube-system
....
}
kubernetes cluster.local in-addr.arpa ip6.arpa {
pods insecure
fallthrough in-addr.arpa ip6.arpa
ttl 30
}
hosts {
192.168.100.2 dockerhub.kubekey.local
fallthrough
}
prometheus :9153
....
## 保存或者重啟coredns一下進行驗證

如果此時添加 harbor 對接資訊,會提示 證書問題, x509 的錯誤提示
Get"https://dockerhub.kubekey.local/v2/":x509:certificate signed by unknown authority
x509
在 KubepShere 中的 ks-apiserver 中添加鏡像倉庫 CA 證書,
通過 configmap 加載 CA 證書
查看 CA 證書的位置,在 Harbor 部署時,查看證書生成的位置及值:
#目錄位置: ls /etc/docker/certs.d/
$ cat /etc/docker/certs.d/dockerhub.kubekey.local/ca.crt
-----BEGIN CERTIFICATE-----
MIIDATCCAemgAwIBAgIBADANBgkqhkiG9w0BAQsFADAWMRQwEgYDVQQDEwtyZWdp
c3RyeS1jYTAeFw0yMjA0MjExNjUzNTJaFw0zMjA0MTgxNjUzNTJaMBYxFDASBgNV
BAMTC3JlZ2lzdHJ5LWNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
vs0k1cS3S4L9tvTvJomlMwNN8eGSk8hujGKm6SQHAYicFsNmfYevfthJsufuikIq
ggxwyL9nExr470l4hN31PN/ztIKZh/57IKF6XZrF5Ld3fBxOvVGSTarZraIkxkPe
/N5HfJdAWh5CTKtdsOpal3CmP+6tbRQ6qQN5D9lO97Tid79W8a58jI7FHyeYS08D
VlBjDCip81mI4YsgMaXmatS0HjtLtCvQNsL5Py2KKAhHb+Rd0iepICUT2uUwR1Cu
RpO+FkiAxM8WXF/6IndiIsoC2XCh6pELadcKCNNy5IREC/+JbjveNZOuYU4KPJn5
TYZxzalJ8nWRHpi6neFHAQIDAQABo1owWDAOBgNVHQ8BAf8EBAMCAqQwDwYDVR0T
AQH/BAUwAwEB/zAdBgNVHQ4EFgQUtcd+vBgIbcmB8O7ZeSBwFOCPj/QwFgYDVR0R
BA8wDYILcmVnaXN0cnktY2EwDQYJKoZIhvcNAQELBQADggEBABxAVx3Wkfic/SWY
Z1T0kv+zq8NW1YyHDw13mRwcjV+lRI0/WtANEBAbAejmZJkhhz7uc/N9egXF6cOY
PLoxvLXQJGxQKfBqrGkFhAlFt4FWJm0g7fXq/a6Fo/EStRmW9Oio0dFJHQ/F6Lon
DK/1bx0s27JJqBmU4WnmGF1U2prYuJ3/C8mwxWb49K+z1s1sDQQOCp/jt8gabc2R
GAZgcYhIj+HUXAEl14+GhpoLqJbJ5ngVLxz08YDMTGp1pQ8uYeE1m29yTOThMGrC
owVM1fSSHs5UtKQ2/tVcxi5Mf+WUWZr2D2km0dI9BJyXwtQwGKhp3lwJX5e0NTZi
+6a/23U=
-----END CERTIFICATE-----
#界面創建configmap:作業臺>企業空間>System-workspace>專案>kubesphere-system>配置>配置字典,新建harbor4shl-ca

編輯 ks-apiserver deployment 檔案,進行 configmap 的掛載:


保存更新,
驗證



本文由博客一文多發平臺 OpenWrite 發布!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/531497.html
標籤:其他
下一篇:Nginx的概述和配置
