Kubernetes-secret配置及harbor安裝/連接

若有創建私有docker 倉庫時 可以使用 secret 來進行配置 , 主要yaml配置 可參考文章最後一段 , 就不用在一台一台進去node節點 登入容器 或者修改 Docker配置

subPath
  1. harbor

step 1.
可以直接到Releases 下載最新版即可 , 但僅限於 amd架構

step 2.

下載後 vi harbor.yml.tmpl , 修改完後改名為 harbor.yml

修改完運行 ./install.sh進行安裝

harbor.yml  
 
1. 可先將 443 配置先註解掉 
2. hostname 進行配置 ,之後回由 harbor 創建的docker-compose中的nginx 進行配置安裝 
 
 
# 若安裝過程中遇到問題 , 可以檢視當前目錄的docker-compose.yml  
# 容器名衝突 ex:nginx ,redis ..等 可以修改container_name 來避免報錯

2. k8s 將預設docker倉庫 修改為私有harbor

可透過 kubectl create secret -h 查詢相關配置說明

kubectl create secret docker-registry harbor-docker --docker-username=admin --docker-password=Harbor12345 [email protected] --docker-server=http://10.1.1.2:8891 
 
 
# harbor-docker  -> 所創建的secret 名稱 
# --docker-username -> harbor 帳號 
# --docker-password -> harbor 密碼 
# --docker-server -> harbor 位置

查詢 kubectl get secret

若要查看內容 , 因為是密碼已經被base64加密 可以透過 解密的方式還原 kubectl edit secret xxxx 會看到類似下面的內容 , 可將.dockerconfigjson 在command line中運行 echo eyxxxxxxxxx|base64 --decode 即可還原該參數內容

edit secret harbor-docker 
 
 
# Please edit the object below. Lines beginning with a '#' will be ignored, 
# and an empty file will abort the edit. If an error occurs while saving this file will be 
# reopened with the relevant failures. 
# 
apiVersion: v1 
data: 
  .dockerconfigjson: eyJhdXRocyI6eyJodHRwOi8vMTAuMS4xLjI6ODg5MSI6eyJ1c2VybmFtZSI6ImFkbWluIiwicGFzc3dvcmQiOiJIYXJib3IxMjM0NSIsImVtYWlsIjoidGVzdEBnbWFpbC5jb20iLCJhdXRoIjoiWVdSdGFXNDZTR0Z5WW05eU1USXpORFU9In19fQ== 
kind: Secret 
metadata: 
  creationTimestamp: "2023-12-07T03:05:45Z" 
  name: harbor-docker 
  namespace: default 
  resourceVersion: "12145471" 
  uid: 1f920d02-e1d1-42d8-9a16-7e74cb56e0a9 
type: kubernetes.io/dockerconfigjson

使用secret可參考以下內容

apiVersion: v1 
kind: Pod 
metadata: 
  name: private-test-env-pod 
spec: 
  imagePullSecrets: 
    - name: harbor-docker  # 使用上方創建的secret,需填入key  
  containers: 
    - name: private-env-test  
      imagePullPolicy: IfNotPresent  
      image: 10.1.1.2:8891/opensource/nginx:1.25.2 # 遠程倉庫 
      command: ["/bin/sh","-c","env;sleep 3600"]