vamos a usar algunos parámetros por defecto que usaremos en los ejemplos, así será más fácil seguir la guía.
Rellenamos algunos datos para orientar más fácilmente los comandos que veremos.
- namespace: develop
- labels.app: hello-k8s
¿No sabes el kind de lo que quieres configurar en tu yaml
? ¿Quizás un nuevo pod?.
Para ello ejecutamos el siguiente comando para tener un listado completo de todos los recursos disponibles:
kubectl api-resources
Si por ejemplo estamos buscando algo concreto, como una configuracin relacionada con un pod, podemos hacer lo siguiente:
kubectl api-resources | grep -i "pod"
Con ese comando nos mostrará todo el texto que contenga "pod" sin distinguir entre mayúsculas o minúsculas.
- spec.spec.serviceAccountName: sample-user
Obtenemos un informe completo del deployment en formato yaml.
Al final de la informacin veremos una key status
que contiene un message
donde aparece el error.
kubectl get deployments cookielicious-staging -o yaml
Ejemplo de output (recortado para exponer solo la parte del status mencionada más arriba:
status:
availableReplicas: 1
conditions:
- lastTransitionTime: "2020-07-28T10:05:47Z"
lastUpdateTime: "2020-07-28T10:05:47Z"
message: Deployment has minimum availability.
reason: MinimumReplicasAvailable
status: "True"
type: Available
- lastTransitionTime: "2020-07-28T09:59:01Z"
lastUpdateTime: "2020-07-28T10:05:47Z"
message: ReplicaSet "<you-pod-name>" has successfully progressed.
reason: NewReplicaSetAvailable
status: "True"
type: Progressing
- lastTransitionTime: "2020-07-28T10:08:25Z"
lastUpdateTime: "2020-07-28T10:08:25Z"
message: 'pods "<you-pod-name>" is forbidden: error looking
up service account develop/sample-user: serviceaccount "sample-user"
not found'
reason: FailedCreate
status: "True"
type: ReplicaFailure
Con el comando para aplicar un yaml. El problema es que si los datos del deployment no han cambiado, no realizará ninguna acción.
kubectl apply -f deployment.yaml
En este caso usamos el comando rollout restart para poder aplicar el deployment o como lo llama kubernetes hacer un "restart".
kubectl rollout restart deployment/hello-k8s
kubectl exec --tty --stdin <pod_name> -- /bin/bash
kubectl exec --tty --stdin <pod_name> -- /bin/ash