apiVersion: v1 kind: Namespace metadata: name: registry --- apiVersion: v1 kind: Secret metadata: name: registry-auth namespace: registry type: Opaque data: # 注意:这里要填 base64 编码后的 htpasswd 内容 htpasswd: YWRtaW46JDJ5JDEwJEs4NlE4NnkycU5VUWdCM3lEMlEuN1k5N2w4cW9hRTlGcWp3bXlLaQ== --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: registry-pvc namespace: registry spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: registry namespace: registry spec: replicas: 1 selector: matchLabels: app: registry template: metadata: labels: app: registry spec: containers: - name: registry image: registry.cn-hangzhou.aliyuncs.com/zhongpengqun/wanderer:amd64-linux-docker-registry-v2 ports: - containerPort: 5000 env: - name: REGISTRY_AUTH value: "htpasswd" - name: REGISTRY_AUTH_HTPASSWD_REALM value: "Registry Realm" - name: REGISTRY_AUTH_HTPASSWD_PATH value: "/auth/htpasswd" - name: REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY value: "/var/lib/registry" volumeMounts: - name: auth mountPath: /auth - name: data mountPath: /var/lib/registry volumes: - name: auth secret: secretName: registry-auth - name: data persistentVolumeClaim: claimName: registry-pvc --- apiVersion: v1 kind: Service metadata: name: registry namespace: registry spec: type: NodePort selector: app: registry ports: - port: 5000 targetPort: 5000 nodePort: 30500 --- apiVersion: apps/v1 kind: Deployment metadata: name: registry-ui namespace: registry spec: replicas: 1 selector: matchLabels: app: registry-ui template: metadata: labels: app: registry-ui spec: containers: - name: registry-ui image: registry.cn-hangzhou.aliyuncs.com/zhongpengqun/wanderer:linux-amd64-docker-registry-frontend-v2 ports: - containerPort: 80 env: - name: REGISTRY_URL value: "http://registry:5000" - name: REGISTRY_TITLE value: "K3s Private Registry" - name: SINGLE_REGISTRY value: "true" --- apiVersion: v1 kind: Service metadata: name: registry-ui namespace: registry spec: type: NodePort selector: app: registry-ui ports: - port: 80 targetPort: 80 nodePort: 30501