ssl: Kubernetes no puede extraer la imagen del registro privado de Docker

CorePress2024-01-25  10

Intenté implementar 'implementaciones' en Kubernetes, que consisten en extraer la imagen de la ventana acoplable del registro privado (no sé quién hizo esta configuración), pero durante la operación de "extracción de imágenes de la ventana acoplable" A través de Kubernetes aparece el siguiente error

node.kubernetes.io/unreachable:NoExecute for 300s
Events:
  Type     Reason     Age                From               Message
  ----     ------     ----               ----               -------
  Normal   Scheduled  85s                default-scheduler  Successfully assigned default/trusted-enc-assettag1-deployment-8467b74958-6fbp7 to k8s-node
  Normal   BackOff    24s (x2 over 61s)  kubelet, k8s-node  Back-off pulling image "10.105.168.81:5000/simplehttpserverenc:enc_v1"
  Warning  Failed     24s (x2 over 61s)  kubelet, k8s-node  Error: ImagePullBackOff
  Normal   Pulling    12s (x3 over 82s)  kubelet, k8s-node  Pulling image "10.105.168.81:5000/simplehttpserverenc:enc_v1"
  Warning  Failed     0s (x3 over 62s)   kubelet, k8s-node  Failed to pull image "10.105.168.81:5000/simplehttpserverenc:enc_v1": rpc error: code = Unknown desc = Error response from daemon: Get https://10.105.168.81:5000/v2/: net/http: TLS handshake timeout
  Warning  Failed     0s (x3 over 62s)   kubelet, k8s-node  Error: ErrImagePull
[root@k8s-master ~]# docker pull 10.105.168.81:5000/simplehttpserverenc:enc_v1

ImagePullBackOff y net/http: error de tiempo de espera del protocolo de enlace TLS.

Inicialmente este mensaje "net/http: tiempo de espera del protocolo de enlace TLS" También se observa un error en la extracción de la ventana acoplable. Remití algunas respuestas y

certificado configurado (/etc/docker/certs.d//ca.crt) y proxy (/etc/systemd/system/docker.service.d/proxy.conf)

después de eso, podremos realizar la extracción de la ventana acoplable desde una imagen privada.

[root@k8s-master ~]# docker pull 10.105.168.81:5000/simplehttpserverenc:enc_v1
enc_v1: Pulling from simplehttpserverenc
54fec2fa59d0: Pull complete
cd3f35d84cab: Pull complete
a0afc8e92ef0: Pull complete
9691f23efdb7: Pull complete
6512e60b314b: Pull complete
a8ac6632d329: Pull complete
68f4c4e0aa8c: Pull complete
Digest: sha256:0358708cd11e96f6cf6f22b29d46a8eec50d7107597b866e1616a73a198fe797
Status: Downloaded newer image for 10.105.168.81:5000/simplehttpserverenc:enc_v1
10.105.168.81:5000/simplehttpserverenc:enc_v1
[root@k8s-master ~]#

Pero aún no puedo realizar esta extracción de la ventana acoplable a través de Kubernetes. ¿Cómo solucionar esto?

2

Debes configurar lo mismo en los hosts del nodo trabajador de Kubernetes.

Parque Daein

28 de marzo de 2021 a las 3:11

¿Creó un secreto de registro de Docker y lo utilizó en su manifiesto de implementación? kubernetes.io/docs/concepts/configuration/secret

- Sachith Muhandiram

28 de marzo de 2021 a las 3:14

1

He configurado, "kubernetes.io/dockerconfigjson" --> my-secret kubernetes.io/dockerconfigjson 1 39 h usando el inicio de sesión de Docker <regi IP> y luego creó un secreto.

-imaheshwaran s

28 de marzo de 2021 a las 3:21

@Daein Park Lo hice ahora, pero aún así, Trusted-enc-assettag1-deployment-8467b74958-5qfwx 0/1 ImagePullBackOff 0 38strusted-enc-assettag1-deployment-8467b74958-zmlzl 0/1 ImagePullBackOff

-imaheshwaran s

28 de marzo de 2021 a las 3:33

1

@thomas estado actual del problema: resuelto. Configuré proxy.conf y NO_PROXY solo en kuberenetes master. Después de realizar las mismas configuraciones en el nodo trabajador de Kubernetes y realizar el reinicio de la ventana acoplable, se resuelve el problema. capaz de extraer una imagen de registro privada.

-imaheshwaran s

30 de marzo de 2021 a las 3:10



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

Si usa Docker como motor de contenedor en su k8, AFAIK es lo mismo con Comprender la configuración. Porque la extracción de imágenes la realiza el motor del contenedor y depende de la configuración propietaria de cada uno de los certificados. ¿Qué tal si colocamos la misma imagen en el nodo trabajador de su k8? ¿Es posible extraer el que no tiene errores?

4

La misma imagen extraída del trabajador node da el mismo error [root@k8s-node ~]# docker pull 10.105.168.81:5000/simplehttpserverenc:enc_v1 Respuesta de error del demonio: Obtener https://10.105.168.81:5000/ ;v2/: net/http: tiempo de espera del protocolo de enlace TLS

-imaheshwaran s

28 de marzo de 2021 a las 9:44

Hmm, deberías comprobar los registros del registro 10.105.168.81 para realizar más investigaciones. Si el archivo ca.crt se debe al problema, el mensaje de error sería "autoridad desconocida...". Por favor verifique si la solicitud llegó al registro. Además, si el proxy se coloca entre el registro ynodo, debes comprobar si el proxy afecta la accesibilidad.

Parque Daein

28/03/2021 a las 13:42

Cómo verificar los registros. Probé el registro de Docker. Muestra el comando no encontrado y Docker registra {opciones} <ID de contenedor> se muestra diferente. No puedo ver los registros relacionados con este problema.

-imaheshwaran s

29 de marzo de 2021 a las 4:48

Si no tienes autordel registro para verificar los mensajes de registro, entonces debe verificar si el certificado se puede obtener usando "openssl s_client 10.105.168.81:5000". Es para la verificación de accesibilidad a través del protocolo de enlace TLS; si falla en esto, no sería un problema de k8. Debes contactar con tu administrador de red.

Parque Daein

29 de marzo de 2021 a las 5:24



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

Como su dockerconfigjson no funciona correctamente. Prueba este método:

kubectl crea un registro secreto de Docker regcred --docker-server=10.105.168.81:5000 --docker-username=<tu-nombre> --docker-password=<tu-contraseña>

Y en Kubmanifiesto de ernetes:

apiVersion: v1
kind: Pod
metadata:
  name: private-reg
spec:
  containers:
  - name: private-reg-container
    image: 10.105.168.81:5000/simplehttpserverenc:enc_v1
  imagePullSecrets:
  - name: regcred

Me había pasado esto muchas veces, cuando olvidé configurar estos secretos. Además, si tiene otro espacio de nombres, deberá generar secretos para cada uno de estos espacios de nombres por separado pasando -n <your-ns> arriba kubectl crear secreto

Editar: ya que no se puede extraer la imagen del nodo trabajador.

Asegúrese de haber copiado docker-registry ca.crt en /etc/docker/certs.d/ca.crt

y luego prueba Docker Pull.

4

1

No se puede resolver con este método. privadocomido-reg 0/1 ImagePullBackOff 0 2m

-imaheshwaran s

28/03/2021 a las 9:45

docker pull 10.105.168.81:5000/simplehttpserverenc:enc_v1 prueba esto desde k8s-node, si puedes extraer la imagen

- Sachith Muhandiram

28/03/2021 a las 10:04

1

No del nodo incapaz de pull usando Docker, [root@k8s-node ~]# docker pull 10.105.168.81:5000/simplehttpserverenc:enc_v1 Respuesta de error del demonio: Obtener https://10.105.168.81:5000/ v2/: net/http: tiempo de espera del protocolo de enlace TLS [root@k8s-node ~]#

-imaheshwaran s

29 de marzo de 2021 a las 4:55

@imaheshwarans, consulta la respuesta actualizada.

- Sachith Muhandiram

29/03/2021 a las 12:04

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare