Kubernetes-secret配置及harbor安裝/連接
若有創建私有docker 倉庫時 可以使用 secret 來進行配置 , 主要yaml配置 可參考文章最後一段 , 就不用在一台一台進去node節點 登入容器 或者修改 Docker配置
subPath
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"]