Black lives matter.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
We stand in solidarity with the Black community.
Racism is unacceptable.
It conflicts with the core values of the Kubernetes project and our community does not tolerate it.
Ésta página enseña como correr una aplicación stateless usando un deployment
de Kubernetes.
deployment
de nginx.deployment
.deployment
.Debes tener un cluster Kubernetes a tu dispocición, y la herramienta de línea de comandos kubectl
debe estar configurada. Si no tienes un cluster, puedes crear uno utilizando Minikube,
o puedes utilizar una de las siguientes herramientas en línea:
kubectl version
.
Puedes correr una aplicación creando un deployment
de Kubernetes, y puedes describir el deployment
en un fichero YAML. Por ejemplo, el siguiente fichero YAML describe un deployment
que corre la imágen Docker nginx:1.7.9:
application/deployment.yaml
|
---|
|
Crea un deployment
basado en el fichero YAML:
kubectl apply -f https://k8s.io/examples/application/deployment.yaml
Obtén información acerca del deployment
:
kubectl describe deployment nginx-deployment
El resultado es similar a esto:
user@computer:~/website$ kubectl describe deployment nginx-deployment
Name: nginx-deployment
Namespace: default
CreationTimestamp: Tue, 30 Aug 2016 18:11:37 -0700
Labels: app=nginx
Annotations: deployment.kubernetes.io/revision=1
Selector: app=nginx
Replicas: 2 desired | 2 updated | 2 total | 2 available | 0 unavailable
StrategyType: RollingUpdate
MinReadySeconds: 0
RollingUpdateStrategy: 1 max unavailable, 1 max surge
Pod Template:
Labels: app=nginx
Containers:
nginx:
Image: nginx:1.7.9
Port: 80/TCP
Environment: <none>
Mounts: <none>
Volumes: <none>
Conditions:
Type Status Reason
---- ------ ------
Available True MinimumReplicasAvailable
Progressing True NewReplicaSetAvailable
OldReplicaSets: <none>
NewReplicaSet: nginx-deployment-1771418926 (2/2 replicas created)
No events.
Lista los pods creados por el deployment
:
kubectl get pods -l app=nginx
El resultado es similar a esto:
NAME READY STATUS RESTARTS AGE
nginx-deployment-1771418926-7o5ns 1/1 Running 0 16h
nginx-deployment-1771418926-r18az 1/1 Running 0 16h
Muestra información acerca del pod:
kubectl describe pod <pod-name>
donde <pod-name>
es el nombre de uno de los pods.
Puedes actualizar el deployment
aplicando un nuevo fichero YAML. El siguiente fichero YAML
especifica que el deployment
debería ser actualizado para usar nginx 1.8.
application/deployment-update.yaml
|
---|
|
Aplica el nuevo fichero YAML:
kubectl apply -f https://k8s.io/examples/application/deployment-update.yaml
Comprueba como el deployment
crea nuevos pods con la nueva imagen mientras va eliminando los pods con la especificación antigua:
kubectl get pods -l app=nginx
Puedes aumentar el número de pods en tu deployment
aplicando un nuevo fichero YAML.
El siguiente fichero YAML especifica un total de 4 replicas
, lo que significa que el deployment
debería tener cuatro pods:
application/deployment-scale.yaml
|
---|
|
Aplica el nuevo fichero YAML:
kubectl apply -f https://k8s.io/examples/application/deployment-scale.yaml
Verifica que el deployment
tiene cuatro pods:
kubectl get pods -l app=nginx
El resultado es similar a esto:
NAME READY STATUS RESTARTS AGE
nginx-deployment-148880595-4zdqq 1/1 Running 0 25s
nginx-deployment-148880595-6zgi1 1/1 Running 0 25s
nginx-deployment-148880595-fxcez 1/1 Running 0 2m
nginx-deployment-148880595-rwovn 1/1 Running 0 2m
Elimina el deployment
por el nombre:
kubectl delete deployment nginx-deployment
La manera preferida de crear una aplicación con múltiples instancias es usando un Deployment, el cual usa un ReplicaSet. Antes de que Deployment y ReplicaSet fueran introducidos en Kubernetes, aplicaciones con múltiples instancias eran configuradas usando un ReplicationController.