Actualización del paquete de Docker de IBM Cloud Private

Actualice los motores de Docker que se instalaron utilizando el paquete de Docker de IBM Cloud Private.

Nota: Al actualizar Docker se ven afectados los componentes siguientes:

Preparación del clúster para un parche

Antes de actualizar, asegúrese de que el clúster cumple los requisitos siguientes:

Actualización del paquete de Docker de IBM Cloud Private (nodo de arranque)

Actualice un nodo de arranque que se ha instalado utilizando el paquete de Docker de IBM Cloud Private.

  1. Descargue el paquete de Docker para la plataforma. Consulte Paquetes de Docker de IBM Cloud Private.
  2. Si el nodo de arranque es uno de los nodos de clúster, consulte Actualización del paquete de Docker de IBM Cloud Private (nodos de clúster).
  3. Actualice Docker en su nodo de arranque.

  4. Asegúrese de que el motor de Docker se haya iniciado. Ejecute el siguiente mandato:

    sudo systemctl start docker
    

Actualización del paquete de Docker de IBM Cloud Private (nodos de clúster)

Actualice los nodos de clúster que se han instalado mediante el paquete de Docker de IBM Cloud Private.

  1. Vaya al directorio /<installation_directory>/cluster/.

     cd /<installation_directory>/cluster/
    
  2. Edite el archivo config.yaml para establecer el valor de Docker_version en 18.09.7:

     docker_version: 18.09.7
    
  3. Realice una copia de seguridad y elimine el recurso PodDisruptionBudget.

    1. Compruebe si PodDisruptionBudget está disponible en el clúster:
      kubectl get PodDisruptionBudget --all-namespaces
      
    2. Si PodDisruptionBudget está disponible en el clúster, realice una copia de seguridad y elimine PodDisruptionBudget antes de actualizar Docker.
      kubectl get PodDisruptionBudget --all-namespaces -oyaml > PodDisruptionBudget.yaml
      kubectl delete -f PodDisruptionBudget.yaml
      
  4. Actualice Docker.

     sudo docker run --net=host -t -e LICENSE=accept -v "$(pwd)":/installer/cluster ibmcom/icp-inception-$(uname -m | sed 's/x86_64/amd64/g'):3.2.1-ee upgrade-docker
    

    También puede utilizar la opción -l para actualizar nodos de clúster específicos.

     sudo docker run --net=host -t -e LICENSE=accept -v "$(pwd)":/installer/cluster ibmcom/icp-inception-$(uname -m | sed 's/x86_64/amd64/g'):3.2.1-ee upgrade-docker -l <node_IP_address>
    
  5. Vuelva a añadir PodDisruptionBudget al clúster.

    1. Edite el archivo de copia de seguridad PodDisruptionBudget.yaml para eliminar la sección status siguiente:
      status:
        currentHealthy: 1
        desiredHealthy: 2
        disruptedPods: null
        disruptionsAllowed: 0
        expectedPods: 1
        observedGeneration: 1
      
    2. Vuelva a crear el recurso PodDisruptionBudget.
      kubectl apply -f PodDisruptionBudget.yaml
      
  6. En todos los nodos, asegúrese de que se inicia el motor de Docker ejecutando el mandato siguiente:

    sudo systemctl start docker
    
  7. Compruebe la versión de Docker ejecutando el mandato siguiente:

    kubectl get nodes -oyaml | grep containerRuntimeVersion
    

    La versión de Docker debe ser 18.09.7.

    containerRuntimeVersion: docker://18.09.7
    

    También puede comprobar la versión de Docker ejecutando los mandatos siguientes en los nodos de clúster:

    docker version
    docker info
    
  8. Compruebe el estado del pod. Todos los pods deben estar en ejecución después de actualizar Docker.

    kubectl get pods --all-namespaces
    

    El estado del pod debe mostrar que está en ejecución.

Resolución de problemas

Si encuentra algún problema durante la actualización, revise los problemas siguientes y los errores comunes que se pueden producir para la actualización de Docker.