
Tengo un clúster de GKE Kubernetes que me gustaría depurar.
¿Es posible iniciar un contenedor dentro del clúster usando, por ejemplo, ubuntu
una imagen y SSH con privilegios completos, de modo que pueda instalar software dentro apt
y ejecutar varios comandos de depuración?
Respuesta1
En primer lugar, es posible implementar un pod
con un único contenedor que consista en ubuntu
apuntar 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 LoadBalancer
o exponer a NodePort
), es más fácil usar la kubectl
herramienta.
Si lo está usando Cloud Shell
, ya está instalado o si usa una computadora portátil local, debe instalarlo usando la gcloud
herramienta.
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á ubuntu
en el espacio de nombres actual. El segundo comando da el formato general.
Ejemplo ubuntu
de 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 namespace
o asegurarse de tener el contexto correcto antes de presentar la solicitud. Algo como:
kubectl apply -f path/to/yaml/file