Home | José Ramón López | AutoSys | Webs de interés | perl | kubernetes | azure | machine learning


  1. Application lifecycle management
    1. Rolling Updates and Rollbacks
    2. Configure applications
    3. Commands
    4. Command and arguments in Kubernetes
    5. Configure Environment Variables in Applications
    6. Configuring ConfigMaps in Applications
    7. Configure Secrets in Applications
    8. Encrypting Secret Data at Rest
    9. Multi Container Pods
    10. Multi-container Pods Design Patterns
    11. InitContainers
    12. Self Healing Applications


1 Application lifecycle management

1.1 Rolling Updates and Rollbacks

Kubectl rollout status deploymentName Kubectl rollout history deploymentName Roll outs • Recreate. Destruyo y creo • Rolling update: Uno por uno Kubectl set image image Deployment – nuevo replicaset Kubectl rollout undo deploymentName

1.2 Configure applications

Commands arguments Environment variables secrets

1.3 Commands

Docker Cmd: define el programa que se ejecuta Se pone en 2 formas .- Sleep 5 .- ["sleep","5"] Docker run Ubuntu sleep 5, sobreescribe cmd Entrypoint es como cmd pero se añade al comando de Docker Entrypoint: ["sleep"] Docker run Ubuntu 10 Cmd ["5"] Entripoint ["sleep"] Commands and Arguments

1.4 Command and arguments in Kubernetes

Command en Kubernetes sobreescribe entrypoint en Docker Args en kubernetes sobreescribe cmd en Docker Spec: Cointainers: - Name: containerName1 Image: imageName Args: ["10"] Command: ["sleep"] - Name: containerName2 Image: imageName command: ["sleep","1"] - Name: containerName3 Image: imageName command: - "sleep" - "12"

1.5 Configure Environment Variables in Applications

Env: - Name: varName Value: value configMaps env: - Name: varName valueFrom: configMapKeyRef: secrets - Name: varName valueFrom: secretKeyRef:

1.6 Configuring ConfigMaps in Applications

Kubectl create configmap configName –from-literal=Key=value –from-literal=Key=value

1.7 Configure Secrets in Applications

Kubectl create secret generic secretName –from-literal=key=value Kubectl create secret generic secretName --from-file apiVersion: v1 kind: Secret metadata: name: secret-sa-sample annotations: kubernetes.io/service-account.name: "sa-name" type: kubernetes.io/service-account-token data: extra: YmFyCg== Hay que codificar la información Echo -n "texto" | base64 Para decodificar Echo -n "secreto!" | base64 -decode Se puede crear un secreto como file en el pod Enel directorio /opt/secretName/ Secrets no están encriptados en etcd por defecto

1.8 Encrypting Secret Data at Rest

Kube-api con Elias parametron –encryption-provider-config

1.9 Multi Container Pods

Los containers hablan por localhost

1.10 Multi-container Pods Design Patterns

Patrones .- Logging, sidecar .- Adapter .- Embassador

1.11 InitContainers

Para containers que hacen una cosa y mueren Primer se ejecuta el initContainer y cuando acaba el container Se pueden poner varios initContainers que se ejecutan secuencialmente

1.12 Self Healing Applications

Replicasets y replicacontrolers