From 0949c28248aa2c9f2864587118f21bca511fe987 Mon Sep 17 00:00:00 2001 From: Celestino Rey Date: Sat, 28 Jan 2023 15:44:18 +0100 Subject: [PATCH] Instrucciones en formato legible --- ...ivateDockerRegistryasaPodinKubernetes.docx | Bin 0 -> 106653 bytes ...ivateDockerRegistryasaPodinKubernetes.html | 3455 ----------------- ...PrivateDockerRegistryasaPodinKubernetes.md | 269 ++ 3 files changed, 269 insertions(+), 3455 deletions(-) create mode 100755 MiRegistry/DeployYourPrivateDockerRegistryasaPodinKubernetes.docx delete mode 100755 MiRegistry/DeployYourPrivateDockerRegistryasaPodinKubernetes.html create mode 100755 MiRegistry/DeployYourPrivateDockerRegistryasaPodinKubernetes.md diff --git a/MiRegistry/DeployYourPrivateDockerRegistryasaPodinKubernetes.docx b/MiRegistry/DeployYourPrivateDockerRegistryasaPodinKubernetes.docx new file mode 100755 index 0000000000000000000000000000000000000000..cd2b09368d0755968c89fcb3580082f4e0388d99 GIT binary patch literal 106653 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 K_*@`{bpHiSA7Kvw literal 0 HcmV?d00001 diff --git a/MiRegistry/DeployYourPrivateDockerRegistryasaPodinKubernetes.html b/MiRegistry/DeployYourPrivateDockerRegistryasaPodinKubernetes.html deleted file mode 100755 index ff3d3b5b..00000000 --- a/MiRegistry/DeployYourPrivateDockerRegistryasaPodinKubernetes.html +++ /dev/null @@ -1,3455 +0,0 @@ - - - - - Deploy Your Private Docker Registry as a Pod in Kubernetes | by Varun Kumar G | The Startup | - Medium - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

-
-
- -
-
-
-
-
- - - - - - - -
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
Published in
-
-

The Startup

-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-

- Deploy Your Private Docker Registry as a Pod - in Kubernetes

-
-
-
-
- - - - - -
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - - - - -
-
-
-
-

--

-
-
-
-
-
-
-
- - - - - -
-
-
-
-

--

-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-

Get smarter at building your thing. - Follow to join The Startup’s +8 million monthly readers - & +760K followers.

-
-
-
-
-
- - -
-
-
-
-
-
- - - - -
- -

Get the Medium app

-
-
A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
- A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store -
-
-
-
-
-
-
-
- -
-
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/MiRegistry/DeployYourPrivateDockerRegistryasaPodinKubernetes.md b/MiRegistry/DeployYourPrivateDockerRegistryasaPodinKubernetes.md new file mode 100755 index 00000000..30d6cd0e --- /dev/null +++ b/MiRegistry/DeployYourPrivateDockerRegistryasaPodinKubernetes.md @@ -0,0 +1,269 @@ +##Deploy Your Private Docker Registry as a Pod in Kubernetes + +Docker Registry is an application that helps you in storing and distributing container images. The most popular container registry is DockerHub, which is the standard public registry for Docker and Kubernetes. But you might face a situation where you will not want your image to be publicly available over the internet. In that case, setting up a Private Docker Registry provides you with multiple storage and authentication options which can be customized as per your requirement. +In this tutorial, we shall look at deploying a TLS-enabled Private Docker Registry as a Pod in a Kubernetes environment. This will help us to push our custom built images to the registry, which later can be pulled by any of the worker nodes and run as containers in Pods. My k8s cluster here consists of 4 Ubuntu 18.04.4 (Bionic Beaver) VMs with 1 master and 3 worker nodes. +root@master1:~# docker -v +Docker version 19.03.12, build 48a66213fe +root@master1:~# kubectl version --short +Client Version: v1.18.5 +Server Version: v1.18.5 +root@master1:~# kubectl get nodes +NAME STATUS ROLES AGE VERSION +master1 Ready master 65d v1.18.5 +worker1 Ready 65d v1.18.5 +worker2 Ready 65d v1.18.5 +worker3 Ready 65d v1.18.5 +root@master1:~# +Step 1: Creating files for authentication +Let us start by creating self-signed certificates and user authentication to boost the security for our private Docker registry. The TLS certificates are created using openssl where we need to specify the name, with which we want to access our registry, in the Common Name “/CN=” field. Here, I wish to access my registry using the name docker-registry. +root@master1:~# mkdir -p /registry && cd "$_" +root@master1:/registry# mkdir certs +root@master1:/registry# openssl req -x509 -newkey rsa:4096 -days 365 -nodes -sha256 -keyout certs/tls.key -out certs/tls.crt -subj "/CN=docker-registry" -addext "subjectAltName = DNS:docker-registry" +Generating a RSA private key +...........................................................................................................................................++++ +.............................................................++++ +writing new private key to 'certs/tls.key' +----- +root@master1:/registry# +Let’s use htpasswd to add user authentication for registry access. My credentials for the private registry would be myuser/mypasswd. +root@master1:/registry# mkdir auth +root@master1:/registry# docker run --rm --entrypoint htpasswd registry:2.6.2 -Bbn myuser mypasswd > auth/htpasswd +Unable to find image 'registry:2.6.2' locally +2.6.2: Pulling from library/registry +486039affc0a: Pulling fs layer +ba51a3b098e6: Pulling fs layer +470e22cd431a: Pulling fs layer +1048a0cdabb0: Pulling fs layer +ca5aa9d06321: Pulling fs layer +1048a0cdabb0: Waiting +ca5aa9d06321: Waiting +ba51a3b098e6: Verifying Checksum +ba51a3b098e6: Download complete +486039affc0a: Verifying Checksum +486039affc0a: Pull complete +470e22cd431a: Verifying Checksum +470e22cd431a: Download complete +ba51a3b098e6: Pull complete +1048a0cdabb0: Verifying Checksum +1048a0cdabb0: Download complete +ca5aa9d06321: Verifying Checksum +ca5aa9d06321: Download complete +470e22cd431a: Pull complete +1048a0cdabb0: Pull complete +ca5aa9d06321: Pull complete +Digest: sha256:c4bdca23bab136d5b9ce7c06895ba54892ae6db0ebfc3a2f1ac413a470b17e47 +Status: Downloaded newer image for registry:2.6.2 +root@master1:/registry# +At this point, our /registry directory looks like this: +root@master1:/# ls -R /registry/ +/registry/: +auth certs +/registry/auth: +htpasswd +/registry/certs: +tls.crt tls.key +root@master1:/# +Step 2: Using Secrets to mount the certificates +In Kubernetes, a Secret is a resource that will enable you to inject sensitive data into a container when it starts up. This data can be anything like password, OAuth tokens or ssh keys. They can be exposed inside a container as mounted files or volumes or environment variables. +The below command creates a Secret of type tls named certs-secret in the default namespace from the pair of public/private keys we just created. +root@master1:/# kubectl create secret tls certs-secret --cert=/registry/certs/tls.crt --key=/registry/certs/tls.key +secret/certs-secret created +root@master1:/# +The Secret auth-secret that we create from the htpasswd file is of type generic which means the Secret was created from a local file. +root@master1:/# kubectl create secret generic auth-secret --from-file=/registry/auth/htpasswd +secret/auth-secret created +root@master1:/# +Step 3: Creating Persistent Volume and Claim for repository storage +The images that are pushed to our registry should be placed in a consistent storage location. Hence, we will be using a Persistent Volume of 1 GB hosted at a temporary location in the node where our registry Pod will be running. The Pod uses a Persistent Volume Claim which will be bound to the newly created volume as a one-to-one mapping. +apiVersion: v1 +kind: PersistentVolume +metadata: + name: docker-repo-pv +spec: + capacity: + storage: 1Gi + accessModes: + - ReadWriteOnce + hostPath: + path: /tmp/repository +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: docker-repo-pvc +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi +Copy the above content into a yaml file, say repository-volume.yaml and execute the below command: +root@master1:/# kubectl create -f repository-volume.yaml +persistentvolume/docker-repo-pv created +persistentvolumeclaim/docker-repo-pvc created +root@master1:/# +Step 4: Creating the Registry Pod +Next, let us create the actual Pod and a corresponding Service to access it. In the yaml file docker-registry-pod.yaml below, the image that we use for our registry is called registry which is downloaded from DockerHub. The images pushed to this registry will be saved in /var/lib/registry directory internally, hence we mount our Persistent Volume using the Claim docker-repo-pvc to persist the images permanently. The environment variables which are required by the registry container are taken care by the Secrets that we mount as volumes. +The Service is named docker-registry, with which we want to access our docker private registry. Note that this was the exact name that was given in the Common Name “/CN=” field while generating the TLS certificates. The registry container by default is exposed at port 5000 and we bind our Service to this port accordingly. +apiVersion: v1 +kind: Pod +metadata: + name: docker-registry-pod + labels: + app: registry +spec: + containers: + - name: registry + image: registry:2.6.2 + volumeMounts: + - name: repo-vol + mountPath: "/var/lib/registry" + - name: certs-vol + mountPath: "/certs" + readOnly: true + - name: auth-vol + mountPath: "/auth" + readOnly: true + env: + - name: REGISTRY_AUTH + value: "htpasswd" + - name: REGISTRY_AUTH_HTPASSWD_REALM + value: "Registry Realm" + - name: REGISTRY_AUTH_HTPASSWD_PATH + value: "/auth/htpasswd" + - name: REGISTRY_HTTP_TLS_CERTIFICATE + value: "/certs/tls.crt" + - name: REGISTRY_HTTP_TLS_KEY + value: "/certs/tls.key" + volumes: + - name: repo-vol + persistentVolumeClaim: + claimName: docker-repo-pvc + - name: certs-vol + secret: + secretName: certs-secret + - name: auth-vol + secret: + secretName: auth-secret +--- +apiVersion: v1 +kind: Service +metadata: + name: docker-registry +spec: + selector: + app: registry + ports: + - port: 5000 + targetPort: 5000 +Create the Registry Pod and the Service using the following command: +root@master1:/# kubectl create -f docker-registry-pod.yaml +pod/docker-registry-pod created +service/docker-registry created +root@master1:/# kubectl get all +NAME READY STATUS RESTARTS AGE +pod/docker-registry-pod 1/1 Running 0 36s +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +service/docker-registry ClusterIP 10.107.59.73 5000/TCP 36s +service/kubernetes ClusterIP 10.96.0.1 443/TCP 65d +root@master1:/# +Step 5: Allowing access to the registry from all the nodes in the cluster +We observe from the above step that our registry can be accessed at 10.107.59.73:5000, since the ip-address of our Service turned out to be 10.107.59.73. Note that this value will be different in your case. +Let’s make a note of the registry name and its ip-address as environment variables. +root@master1:/# export REGISTRY_NAME="docker-registry" +root@master1:/# export REGISTRY_IP="10.107.59.73" +root@master1:/# +Now, we shall append the entry “10.107.59.73 docker-registry” to the /etc/hosts file of all the nodes in our cluster so that this ip-address is resolved to the name docker-registry. +The above step can also be done using a single command from the master node (Enter password, if prompted): +root@master1:/# for x in $(kubectl get nodes -o jsonpath='{ $.items[*].status.addresses[?(@.type=="InternalIP")].address }'); do ssh root@$x "echo '$REGISTRY_IP $REGISTRY_NAME' >> /etc/hosts"; done +root@master1:/# +Next, we must copy the tls.crt that we created earlier as “ca.crt” into a custom /etc/docker/certs.d/docker-registry:5000 directory in all the nodes in our cluster to make sure that our self-signed certificate is trusted by Docker. Note that the directory that is created inside /etc/docker/certs.d should be having the name of the format:. +This step can be done manually or with the help of a single command from the master node as follows: +root@master1:/# for x in $(kubectl get nodes -o jsonpath='{ $.items[*].status.addresses[?(@.type=="InternalIP")].address }'); do ssh root@$x "rm -rf /etc/docker/certs.d/$REGISTRY_NAME:5000;mkdir -p /etc/docker/certs.d/$REGISTRY_NAME:5000"; done +root@master1:/# +root@master1:/# for x in $(kubectl get nodes -o jsonpath='{ $.items[*].status.addresses[?(@.type=="InternalIP")].address }'); do scp /registry/certs/tls.crt root@$x:/etc/docker/certs.d/$REGISTRY_NAME:5000/ca.crt; done +tls.crt 100% 1822 2.7MB/s 00:00 +tls.crt 100% 1822 2.4MB/s 00:00 +tls.crt 100% 1822 1.6MB/s 00:00 +tls.crt 100% 1822 2.1MB/s 00:00 +root@master1:/# +The above step forces Docker to verify our self-signed certificate even though it is not signed by a known authority. +Step 6: Testing our Private Docker Registry +Now, let us try to login to the registry from the master node, using the same credentials we created earlier: +root@master1:/# docker login docker-registry:5000 -u myuser -p mypasswd +WARNING! Using --password via the CLI is insecure. Use --password-stdin. +WARNING! Your password will be stored unencrypted in /root/.docker/config.json. +Configure a credential helper to remove this warning. See +https://docs.docker.com/engine/reference/commandline/login/#credentials-store +Login Succeeded +root@master1:/# +Hurray! This worked!! +Before we start using our registry, let us create a Secret of type docker-registry which uses the credentials myuser/mypasswd for enabling all the nodes in our cluster to authenticate with our private Docker registry. +root@master1:/# kubectl create secret docker-registry reg-cred-secret --docker-server=$REGISTRY_NAME:5000 --docker-username=myuser --docker-password=mypasswd +secret/reg-cred-secret created +root@master1:/# +Let us try to push a custom image to our private Docker registry. +root@master1:/# docker pull nginx +Using default tag: latest +latest: Pulling from library/nginx +bf5952930446: Pull complete +cb9a6de05e5a: Pull complete +9513ea0afb93: Pull complete +b49ea07d2e93: Pull complete +a5e4a503d449: Pull complete +Digest: sha256:b0ad43f7ee5edbc0effbc14645ae7055e21bc1973aee5150745632a24a752661 +Status: Downloaded newer image for nginx:latest +docker.io/library/nginx:latest +root@master1:/# +root@master1:/# docker tag nginx:latest docker-registry:5000/mynginx:v1 +root@master1:/# +root@master1:/# docker push docker-registry:5000/mynginx:v1 +The push refers to repository [docker-registry:5000/mynginx] +550333325e31: Layer already exists +22ea89b1a816: Layer already exists +a4d893caa5c9: Layer already exists +0338db614b95: Layer already exists +d0f104dc0a1f: Layer already exists +v1: digest: sha256:179412c42fe3336e7cdc253ad4a2e03d32f50e3037a860cf5edbeb1aaddb915c size: 1362 +root@master1:/# +We can actually verify that our custom image mynginx:v1 was indeed saved into our registry. +root@master1:/# kubectl exec docker-registry-pod -it -- sh +/ # ls /var/lib/registry/docker/registry/v2/repositories/ +mynginx +/ # +Finally, let us create a new Pod that uses the image mynginx:v1 that we just pushed to our registry. +root@master1:/# kubectl run nginx-pod --image=docker-registry:5000/mynginx:v1 --overrides='{ "apiVersion": "v1", "spec": { "imagePullSecrets": [{"name": "reg-cred-secret"}] } }' +pod/nginx-pod created +root@master1:/# +root@master1:/# kubectl get pods -o wide +NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES +docker-registry-pod 1/1 Running 0 46m 10.38.0.1 worker2 +nginx-pod 1/1 Running 0 38s 10.38.0.2 worker2 +root@master1:/# +root@master1:/# curl 10.38.0.2:80 + + + +Welcome to nginx! + + + +

Welcome to nginx!

+

If you see this page, the nginx web server is successfully installed and +working. Further configuration is required.

+

For online documentation and support please refer to +nginx.org.
+Commercial support is available at +nginx.com.

+

Thank you for using nginx.

+ + +root@master1:/# +Congratulations on making it this far!! We just created a Private Docker Registry running as a Pod where our images will be stored in a Persistent Volume and can be pulled by any of the worker nodes to run your application. +Happy learning!!