¿SSH en el clúster de GKE Kubernetes?

¿SSH en el clúster de GKE Kubernetes?

Tengo un clúster de GKE Kubernetes que me gustaría depurar.

¿Es posible iniciar un contenedor dentro del clúster usando, por ejemplo, ubuntuuna imagen y SSH con privilegios completos, de modo que pueda instalar software dentro apty ejecutar varios comandos de depuración?

Respuesta1

En primer lugar, es posible implementar un podcon un único contenedor que consista en ubuntuapuntar a un espacio de nombres o incluso a un nodo.

En lugar de usar SSH para conectarse (lo cual es posible usando una combinación extensa de usar a LoadBalancero exponer a NodePort), es más fácil usar la kubectlherramienta.

Si lo está usando Cloud Shell, ya está instalado o si usa una computadora portátil local, debe instalarlo usando la gcloudherramienta.

Sugeriría conectarse al contenedor directamente usando la siguiente sintaxis:

# Run bash on Ubuntu container
kubectl exec -it ubuntu -- bash

# General syntax
kubectl -n {namespace} exec -it {pod-name} -- {command}

El primer comando supone que el nombre del contenedor está ubuntuen el espacio de nombres actual. El segundo comando da el formato general.

Ejemplo ubuntude definición de grupo:

apiVersion: v1
kind: Pod
metadata:
  name: ubuntu
  labels:
    app: ubuntu
spec:
  containers:
  - image: ubuntu
    command:
      - "sleep"
      - "604800"
    imagePullPolicy: IfNotPresent
    name: ubuntu
  restartPolicy: Always

Puede agregarle un namespaceo asegurarse de tener el contexto correcto antes de presentar la solicitud. Algo como:

kubectl apply -f path/to/yaml/file

información relacionada