Ubuntu 24.04
Sponsored Link

Kubernetes : निजी रजिस्ट्री का उपयोग करें2024/06/07

 

स्वयं निजी रजिस्ट्री से कंटेनर छवियाँ खींचने के लिए निजी रजिस्ट्री को कॉन्फ़िगर करें।

यह उदाहरण निम्न प्रकार के वातावरण पर आधारित है।

+----------------------+   +----------------------+
|  [ ctrl.srv.world ]  |   |   [ dlp.srv.world ]  |
|     Manager Node     |   |     Control Plane    |
+-----------+----------+   +-----------+----------+
        eth0|10.0.0.25             eth0|10.0.0.30
            |                          |
------------+--------------------------+-----------
            |                          |
        eth0|10.0.0.51             eth0|10.0.0.52
+-----------+----------+   +-----------+----------+
| [ node01.srv.world ] |   | [ node02.srv.world ] |
|     Worker Node#1    |   |     Worker Node#2    |
+----------------------+   +----------------------+

[1]

किसी नोड पर आप निजी रजिस्ट्री पॉड चलाना चाहते हैं,
मूल प्रमाणीकरण और HTTPS कनेक्शन (वैध प्रमाणपत्र के साथ) के साथ रजिस्ट्री को कॉन्फ़िगर करें, यहां देखें।
इस उदाहरण में, रजिस्ट्री पॉड प्रबंधक नोड पर चल रहा है।

[2] Kubernetes में Secret जोड़ें।
# एक उपयोगकर्ता के साथ एक बार रजिस्ट्री में लॉगिन करें

root@ctrl:~#
podman login ctrl.srv.world:5000

Username:
serverworld

Password:
Login Succeeded!
# निम्न फ़ाइल उत्पन्न होती है

root@ctrl:~#
ll /run/user/0/containers/auth.json

-rw------- 1 root root 91 Jun 7 04:06 /run/user/0/containers/auth.json
# फ़ाइल का BASE64 एनकोड

root@ctrl:~#
cat /run/user/0/containers/auth.json | base64

ewoJImF1dGhzIjogewoJCSJjdHJsLnN.....
root@ctrl:~#
vi regcred.yml
# नया निर्माण

# [.dockerconfigjson] अनुभाग के लिए एक पंक्ति के साथ ऊपर BASE64 एन्कोडिंग की सामग्री निर्दिष्ट करें

apiVersion: v1
kind: Secret
data:
  .dockerconfigjson: ewoJImF1dGhzIjogewoJCSJjdHJsLnNy.....
metadata:
  name: regcred
type: kubernetes.io/dockerconfigjson

root@ctrl:~#
kubectl create -f regcred.yml

secret "regcred" created
root@ctrl:~#
kubectl get secrets

NAME      TYPE                             DATA   AGE
regcred   kubernetes.io/dockerconfigjson   1      4s
[3] स्वयं निजी रजिस्ट्री से छवियाँ खींचने के लिए, पॉड्स को तैनात करते समय निजी छवि और गुप्त को निम्नानुसार निर्दिष्ट करें।
root@ctrl:~#
podman images

REPOSITORY                 TAG          IMAGE ID      CREATED             SIZE
ctrl.srv.world:5000/nginx  my-registry  8cc89f55a4af  About a minute ago  126 MB
srv.world/ubuntu-nginx     latest       8cc89f55a4af  About a minute ago  126 MB
docker.io/library/ubuntu   latest       17c0145030df  7 days ago          78.7 MB

root@ctrl:~#
vi private-nginx.yml
apiVersion: v1
kind: Pod
metadata:
  name: private-nginx
spec:
  containers:
  - name: private-nginx
    # निजी रजिस्ट्री पर छवि
    image: ctrl.srv.world:5000/nginx:my-registry
  imagePullSecrets:
  # आपके द्वारा जोड़ा गया गुप्त नाम
  - name: regcred

root@ctrl:~#
kubectl create -f private-nginx.yml

pod "private-nginx" created
root@ctrl:~#
kubectl get pods

NAME            READY   STATUS    RESTARTS   AGE
private-nginx   1/1     Running   0          11s

root@ctrl:~#
kubectl describe pods private-nginx

Name:             private-nginx
Namespace:        default
Priority:         0
Service Account:  default
Node:             node02.srv.world/10.0.0.52
Start Time:       Fri, 07 Jun 2024 04:15:31 +0000
Labels:           <none>
Annotations:      cni.projectcalico.org/containerID: cd962c8ef7bba34ef95bfe6b1cdb8c2b16ee1e65450f92fbf6ff35022b404171
                  cni.projectcalico.org/podIP: 192.168.241.133/32
                  cni.projectcalico.org/podIPs: 192.168.241.133/32
Status:           Running
IP:               192.168.241.133
IPs:
  IP:  192.168.241.133
Containers:
  private-nginx:
    Container ID:   containerd://8ac1b511600858b55a6d059592efcd8e30d4cf7e3ec62294c57c0cb35a151fd8
    Image:          ctrl.srv.world:5000/nginx:my-registry
    Image ID:       ctrl.srv.world:5000/nginx@sha256:b790f6375b967d44c7991183af48faa86cb321e478476a5b80791559dd2d0246
    Port:           <none>
    Host Port:      <none>
    State:          Running
      Started:      Fri, 07 Jun 2024 04:15:34 +0000
    Ready:          True
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-xgq42 (ro)
.....
.....
मिलान सामग्री