Atualização de hosts designados como nós de trabalho
Atualize os hosts dos nós de trabalho atribuídos aos serviços com o recurso “ Satellite ” ativado para obter as versões mais recentes do OpenShift Container Platform, do sistema operacional e dos patches de segurança.
Os clusters de serviços, que constituem a plataforma subjacente a todos os serviços do IBM Cloud, são criados por serviços como o Code Engine ou o IBM Cloud Object Storage e são mantidos pelo IBM.
- O que acontece com meus aplicativos durante uma atualização?
- Se executar apps como parte de uma implementação em nós do trabalhador que você atualizar, os apps serão reprogramados em outros nós do trabalhador no cluster. Esses nós de trabalho podem estar em um pool de trabalho diferente ou, caso você tenha nós de trabalho autônomos, os aplicativos podem ser agendados para esses nós autônomos. Para evitar tempo de inatividade para seu app, deve-se assegurar que você tenha capacidade suficiente no cluster para transportar a carga de trabalho.
- Como posso controlar quantos nós de trabalho são desativados de cada vez durante uma atualização ou recarga?
- Se você precisa de todos os nós do trabalhador para estar em funcionamento, considere anexando e designando hosts adicionais para o seu serviço. Você pode adicionar hosts adicionais em sua localização temporariamente e, em seguida, removê-los quando a atualização estiver concluída.
- Além disso, é possível criar um arquivo
Kubernetes( ConfigMap ) que especifique o número máximo de nós de trabalho que podem ficar indisponíveis ao mesmo tempo, por exemplo, durante uma atualização. Os nós do trabalhador são identificados pelos rótulos de nó do trabalhador. É possível usar rótulos fornecidos pela IBM ou rótulos customizados que você incluiu no nó do trabalhador.
Verificar se uma atualização de versão está disponível para hosts de nós do trabalhador
Verifique se há atualizações de versão disponíveis para os hosts dos nós de trabalho atribuídos a um serviço IBM Cloud habilitado para o Satellite, usando a CLI ou o console.
Para revisar as mudanças que estão incluídas em cada atualização de versão, consulte o Log de mudanças de versão para o Red Hat OpenShift on IBM Cloud.
Verificando se uma atualização de versão está disponível com a CLI do IBM Cloud
- Efetue login no IBM Cloud. Inclua a opção
--ssose tiver uma conta federada.ibmcloud login [--sso] - Liste os clusters do Satellite em sua conta.
ibmcloud ks cluster ls --provider satellite - Liste os nós do trabalhador no cluster para o qual você deseja atualizar a versão. Na saída, verifique se há um asterisco
*com uma mensagem que indica que uma atualização de versão está disponível.
Saída de exemploibmcloud ks worker ls -c CLUSTER_NAME_OR_IDID Primary IP Flavor State Status Zone Version sat-worker-<ID> <IP_address> upi normal Ready zone-1 4.5.35_1534_openshift* * To update to 4.5.37_1537_openshift version, run 'ibmcloud ks worker replace'. Review and make any required version changes before you update: 'https://ibm.biz/upworker'
Verificando se uma atualização de versão está disponível no console do IBM Cloud
- Faça login no Satellite console.
- Clique no local com os hosts que deseja atualizar.
- Clique na guia Hosts.
- Na lista de hosts, clique no link para o Cluster para o host que você deseja atualizar. Uma nova guia se abre para os detalhes do cluster do Red Hat OpenShift on IBM Cloud.
- Clique na guia Nós do trabalhador.
- Na coluna “Versão ”, procure um ícone de informação que, ao clicar nele, exiba a mensagem “
Update available”. Se nenhuma atualização estiver disponível, nenhum ícone estará presente. - Determine se a atualização da versão é uma atualização principal, menor ou de correção.
Identificando os hosts do nó
Determine se seus hosts fazem parte do plano de controle, atribuído a um serviço gerenciado ou anexado ao local.
-
Liste os hosts de localização e anote os IDs deles. Os hosts do nó do trabalhador não possuem
infrastructurelistado na colunaClusterda saída.ibmcloud sat host ls --location <location>Revise a saída de exemplo.
Name ID State Status Zone Cluster Worker ID Worker IP satdemo-cp1 0bc3b92f55968a230985 assigned Ready zone-1 infrastructure sat-satdemocp1-2bda578e901b4047c6e48d766cd99bc11a45fddd 169.62.42.178 satdemo-cp2 999cd38c39ddffe4b672 assigned Ready zone-2 infrastructure sat-satdemocp2-940134e69c2609c5421b2426a7640fa80569668d 169.62.42.183 satdemo-cp5 6ca4fd8fcad1fa622aa4 assigned Ready zone-3 infrastructure sat-satdemocp5-d46581b509357ea4b429fddc38a18b155463bf1c 169.62.42.181 satdemo-cp4 1ac2b92f55968a333335 assigned Ready zone-1 satdemo-cluster sat-satdemocp4-2bda578e901b4047c6e48d766cd99bc11a45fddd 169.62.42.180 satdemo-cp6 234cd56c78ddffe4b672 assigned Ready zone-2 satdemo-cluster sat-satdemocp6-940134e69c2609c5421b2426a7640fa80569668d 169.62.42.179 satdemo-cp3 8fg4ff8faaa1fa622bb5 assigned Ready zone-3 satdemo-cluster sat-satdemocp3-d46581b509357ea4b429fddc38a18b155463bf1c 169.62.42.182 -
Liste seus hosts atuais que estão designados como nós do trabalhador ao seu serviço IBM Cloud ativado para o Satellite e anote seus IDs.
ibmcloud ks worker ls -c <cluster_name_or_ID>Revise a saída de exemplo.
ID Primary IP Flavor State Status Zone Version sat-satellitei-5bd83963cdfedc7668c9040879c88113a134c4e7 10.241.0.4 upi normal Ready us-east-2 4.7.55_1575_openshift sat-satellitei-854beae4556401b5761e34ed849ba64c4b0a674c 10.241.128.4 upi normal Ready us-east-1 4.7.55_1575_openshift sat-satellitei-bf1fc9b135011d5c0d9d500855db6e489d15610b 10.241.64.4 upi normal Ready us-east-3 4.7.55_1575_openshift
Aplicar atualizações de versão em hosts do nó do trabalhador sem descolá-los
Atualize os hosts dos nós de trabalho sem desconectá-los do local, utilizando uma atualização gradual com um ConfigMap.
Antes de Iniciar
- Verifique se todos os seus nós do trabalhador estão em um estado saudável.
- Se você estiver usando volumes persistentes de armazenamento de blocos, você deve detetar esses volumes do nó antes de iniciar suas atualizações. Mova os volumes persistentes para um nó do trabalhador diferente que não requer atualizações.
Em seguida, cordão e drenem a carga de trabalho do nó do trabalhador para atualizar com o comando
kubectl drain NODENAME. Se você não puder mover os volumes de armazenamento de blocos, use as Aplicando atualizações de versão para nós do trabalhador, substituindo hosts.
A aplicação de atualizações nos nós de trabalho pode causar tempo de inatividade para seus aplicativos e serviços. Não execute nenhuma ação no host enquanto o processo de atualização estiver em execução. No máximo 20% de todos os seus nós de trabalho podem ficar indisponíveis durante o processo de atualização.
Aplicar atualizações de versão no nó do trabalhador hospeda um de cada vez
-
Opcional: Anexar e atribuir hospedeiros extras no cluster de serviços para manipular a capacidade de cálculo enquanto seus hosts existentes estão se atualizando.
-
Identificar os hosts de nós do trabalhador. Os hosts do nó do trabalhador não possuem
infrastructurelistados na colunaClusterda saída, mas em vez disso têm o nome do cluster. -
Atualize os nós do trabalhador individualmente executando o comando
ibmcloud ks worker update.ibmcloud ks worker update -c CLUSTER_NAME_OR_ID --worker WORKER_ID -
Confirme se a atualização está concluída, revisando a versão do Kubernetes de seus nós do trabalhador.
kubectl get nodesSe a atualização falhou, você deve aplicar atualizações de versão por meio da substituição de hosts.
Aplique as atualizações de versão aos hosts do nó do trabalhador com um ConfigMap
É possível apresentar as atualizações para todos os hosts do nó do trabalhador com um ConfigMap Especifique quais nós atualizam usando etiquetas. Você também pode especificar
-
Opcional: Anexar e atribuir hospedeiros extras no cluster de serviços para manipular a capacidade de cálculo enquanto seus hosts existentes estão se atualizando.
-
Identificar os hosts de nós do trabalhador. Seus hosts do nó do trabalhador não são listados como
Infrastructure. -
Visualizar os rótulos de um nó do trabalhador. É possível localizar os rótulos de nó do trabalhador na seção Rótulos de sua saída da CLI. Cada rótulo consiste em um
NodeSelectorKeye umNodeSelectorValue. Você pode usar os rótulos para especificar quais nós do trabalhador atualizam.kubectl get nodes -o yamlSaída de exemplo
labels: arch: amd64 beta.kubernetes.io/arch: amd64 beta.kubernetes.io/instance-type: upi beta.kubernetes.io/os: linux failure-domain.beta.kubernetes.io/region: us-east failure-domain.beta.kubernetes.io/zone: us-east-2 ibm-cloud.kubernetes.io/iaas-provider: upi ibm-cloud.kubernetes.io/internal-ip: 10.241.0.4 ibm-cloud.kubernetes.io/machine-type: upi ibm-cloud.kubernetes.io/os: REDHAT_8_64 ibm-cloud.kubernetes.io/region: us-east ibm-cloud.kubernetes.io/worker-id: sat-satellitei-5bd83963cdfedc7668c9040879c88113a134c4e7 ibm-cloud.kubernetes.io/worker-pool-id: cbtljodw089nltg8k210-9a3f763 ibm-cloud.kubernetes.io/worker-pool-name: default ibm-cloud.kubernetes.io/worker-version: 4.7.59_1583_openshift ibm-cloud.kubernetes.io/zone: us-east-2 kubernetes.io/arch: amd64 kubernetes.io/hostname: satellite-ibm-host-3 kubernetes.io/os: linux node-role.kubernetes.io/master: "" node-role.kubernetes.io/worker: "" node.kubernetes.io/instance-type: upi node.openshift.io/os_id: rhel privateVLAN: "1" topology.kubernetes.io/region: us-east topology.kubernetes.io/zone: us-east-2 -
Crie um
ConfigMape defina as regras de indisponibilidade para seus nós de trabalho. O exemplo a seguir mostra dois cheques: o “defaultcheck.json” e um modelo de cheque. É possível usar essa verificação de exemplo para definir regras para todos os nós do trabalhador que não correspondem a nenhuma das verificações definidas no ConfigMap (defaultcheck.json). Use o modelo de verificação para criar a sua própria verificação Para cada verificação, para identificar um nó do trabalhador, deve-se escolher um dos rótulos de nó do trabalhador que você recuperou na etapa anterior.Para cada verificação, é possível configurar somente um valor para
NodeSelectorKeyeNodeSelectorValue. Defina até 10 verificações em um “ ConfigMap ”. Se você incluir mais verificações, elas serão ignoradas.Exemplo
apiVersion: v1 kind: ConfigMap metadata: name: ibm-cluster-update-configuration namespace: kube-system data: drain_timeout_seconds: "120" defaultcheck.json: | { "MaxUnavailablePercentage": 20 } <check_name>: | { "MaxUnavailablePercentage": <value_in_percentage>, "NodeSelectorKey": "<node_selector_key>", "NodeSelectorValue": "<node_selector_value>" }drain_timeout_seconds- Opcional: o tempo limite em segundos para esperar a conclusão do dreno. A drenagem de um nó do trabalhador remove com segurança todos os pods existentes do nó do trabalhador e reagenda os pods em outros nós do trabalhador no cluster. Os valores aceitos são números inteiros no intervalo de 1 a 180. O valor padrão é 30.
defaultcheck.json- Quando você atualiza nós do trabalhador em hosts Satellite, apenas 20% dos nós do trabalhador no cluster podem ficar indisponíveis por vez.
MaxUnavailablePercentage- O número máximo de nós que podem ficar indisponíveis para uma chave e um valor de rótulo especificados, que são especificados como uma porcentagem. Um nó do trabalhador está indisponível durante o processo de implementação, recarregamento ou provisionamento. Os nós do trabalhador enfileirados são bloqueados de atualização se excedem qualquer porcentagem máxima indisponível definida.
NodeSelectorKey- A chave de rótulo do nó do trabalhador para o qual você deseja configurar uma regra. É possível configurar regras para os rótulos padrão que são fornecidos pela IBM, bem como nos rótulos de nó do trabalhador que você criou.
NodeSelectorValue- O valor do rótulo que o nó do trabalhador deve ter para ser considerado para a regra que você define.
-
Crie o configmap em seu cluster.
kubectl apply -f <filepath/configmap.yaml> -
Verifique se o arquivo
ConfigMapfoi criado.kubectl get configmap --namespace kube-system -
Atualize os nós do trabalhador ao listá-los por ID.
ibmcloud ks worker update --cluster <cluster_name_or_ID> --worker <worker_node1_ID> --worker <worker_node2_ID> -
Opcional: Verifique os eventos acionados pelo método
ConfigMape quaisquer erros de validação que ocorram. Os eventos podem ser revisados na seção Eventos de sua saída da CLI.kubectl describe -n kube-system cm ibm-cluster-update-configuration -
Confirme se a atualização está concluída, revisando a versão do Kubernetes de seus nós do trabalhador.
kubectl get nodesSe a atualização falhou, você deve aplicar atualizações de versão por meio da substituição de hosts.
-
Verifique se você não tem nós de trabalhador duplicados. Clusters mais antigos podem listar nós de trabalho duplicados com um
NotReadystatus após uma atualização. Para remover duplicatas, consulte Resolução de problemas.
Aplicando atualizações de versão em nós do trabalhador por meio da substituição de hosts
Os hosts não são atualizados automaticamente. Adicione novos hosts e remova os antigos, ou aplique atualizações menores e correções diretamente no sistema.
-
Liste seus hosts atuais e anote seus IDs. Estes são os hosts para remover depois de anexar hosts atualizados.
ibmcloud ks worker ls -c <cluster_name_or_ID>Revise a saída de exemplo.
ID Primary IP Flavor State Status Zone Version sat-satliberty-5b4c7f3a7bfc14cf58cbb14ad5c08429475274fe 208.43.36.202 upi normal Ready zone-1 4.7.19_1525_openshift* -
Anexar novos hosts ao seu local do Satellite. O número de hosts que você anexa deve corresponder ao número de hosts que você deseja atualizar.
-
Atribua os hosts recém-anexados ao seu recurso do Satellite. Esses hosts recebem automaticamente a atualização ao atribuí-los.
-
Depois que os novos hosts são atribuídos com sucesso ao seu recurso do Satellite, remova e exclua os hosts antigos que você anotou anteriormente.
Atualizando os hosts do nó do trabalhador no console do Red Hat OpenShift on IBM Cloud
É possível atualizar os hosts do nó do trabalhador usando o console do Red Hat OpenShift on IBM Cloud.
- Efetue login no console do IBM Cloud e clique em OpenShift > Clusters.
- Clique no cluster em que os hosts que você deseja atualizar são atribuídos e navegue até a página Nós do trabalhador.
- Selecione cada host que você deseja atualizar. Depois de selecionar os hosts, aparece uma opção Atualização.
- Clique em Atualizar. Na caixa de diálogo que aparece, clique em Atualização novamente. Uma mensagem aparece indicando que a atualização começou com sucesso.
- Aguarde enquanto os hosts são atualizados. O processo de atualização para cada host é concluído quando o Status do host retorna para Normal e a nova versão é listada na coluna Versão.
Determinando se a atualização de versão do nó do trabalhador é uma atualização principal, menor ou de correção
O processo de atualização do nó de trabalho é o mesmo para todos os tipos de atualização. Identifique se a atualização é principal, secundária ou um patch.
Para determinar o tipo de atualização que está disponível, compare suas versões atuais do nó do trabalhador com a versão mais recente do worker node fix pack no log de mudanças de versão do Red Hat OpenShift.
As principais atualizações são indicadas pelo primeiro dígito no rótulo da versão (4.x.x), atualizações menores são indicadas pelo segundo dígito (x.7.x) e as atualizações de correção são indicadas pelos dígitos finais (x.x.23_1528_openshift).
Para obter mais informações sobre atualizações da versão, consulte Informações de versão e ações de atualização.