Como parte do procedimento de atualização, certifique-se de que a sua instalação do Kf usa a versão mais recente do operador do Kf:
- Confirme se a sua versão atual do Kf pode ser atualizada para o Kf v2.4.1.
- Atualize para o Kf v2.4.1.
- Atualize as dependências (se necessário).
Antes de começar
Vai precisar de:
- Um cluster existente com o Kf instalado.
- Acesso a um computador com o
gcloud
, okf
e okubectl
instalados.
Preparação para a atualização
Ligue-se ao cluster de destino
gcloud container clusters get-credentials CLUSTER_NAME \
--zone CLUSTER_ZONE \
--project CLUSTER_PROJECT_ID
Confirme se as versões atuais da CLI Kf e do servidor correspondem
Execute kf debug
e valide se as versões da CLI Kf e do servidor Kf correspondem.
- A versão da CLI é apresentada em
Kf Client
. - A versão do servidor Kf é apresentada em
kf["app.kubernetes.io/version"]
.
$ kf debug
...
Version:
Kf Client: v2.3.2
Server version: v1.20.6-gke.1000
kf["app.kubernetes.io/version"]: v2.3.2
...
Se os valores do cliente Kf e do servidor Kf não corresponderem, mas a versão do servidor for v2.3.x, instale a CLI Kf v2.4.1 antes de continuar.
Se o valor do servidor Kf for anterior à versão v2.3.x, tem de atualizar primeiro de forma incremental para o Kf v2.3.x para continuar.
Confirme se o Kf está em bom estado antes de atualizar
Execute kf doctor
para verificar o estado do cluster. Certifique-se de que todos os testes são aprovados
antes de continuar.
$ kf doctor
...
=== RUN doctor/user
=== RUN doctor/user/ContainerRegistry
--- PASS: doctor/user
--- PASS: doctor/user/ContainerRegistry
...
Se vir mensagens FAIL
ou Error: environment failed checks
, siga as
orientações na saída kf doctor
ou consulte o guia de resolução de problemas para resolver o problema e tente novamente o comando
até ter êxito.
Opcionalmente, faça uma cópia de segurança dos mapas de configuração do Kf se tiver feito personalizações
Faça uma cópia de segurança do configmap
config-defaults
executando:kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yaml
Faça uma cópia de segurança do configmap
config-secrets
executando:kubectl get configmap config-secrets -o yaml -n kf > config-secrets-backup.yaml
Atualize o operador Kf
O operador Kf foi lançado pela primeira vez como parte das versões 2.4.0:
Se já tiver instalado o operador Kf como parte da instalação da versão 2.4.0, só tem de o atualizar como parte da atualização para a versão 2.4.1.
Consulte o artigo Atualize o operador Kf.
Se estiver a fazer a atualização a partir da versão 2.3.2, tem de instalar a versão 2.4.1 do operador Kf para atualizar para o Kf gerido pelo operador.
Consulte o artigo Instale o operador Kf.
Atualize o operador Kf atual
O operador Kf faz as atualizações por si.
Aplique o YAML do operador:
kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.4.1/operator.yaml"
Instale o operador Kf pela primeira vez
Siga estes passos para atualizar para um Kf gerido pelo operador.
Aplique o YAML do operador:
kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.4.1/operator.yaml"
Escolha entre usar as predefinições ou manter as personalizações:
Prepare
kfsystem.yaml
para a atualização com as predefinições:Transfira o ficheiro
kfsystem.yaml
, preencha as variáveis abaixo e, em seguida, execute os comandos no mesmo diretório que o ficheiro para preparar automaticamente okfsystem.yaml
para a atualização.export CLUSTER_PROJECT_ID=YOUR_PROJECT_ID export CLUSTER_NAME=YOUR_CLUSTER_NAME export CONTAINER_REGISTRY=YOUR_CLUSTER_COMPUTE_REGION-docker.pkg.dev/${CLUSTER_PROJECT_ID}/${CLUSTER_NAME} kubectl apply -f kfsystem.yaml kubectl patch \ kfsystem kfsystem \ --type='json' \ -p="[{'op': 'replace', 'path': '/spec/kf', 'value': {'enabled': true, 'config': {'spaceContainerRegistry': '${CONTAINER_REGISTRY}', 'secrets':{'workloadidentity':{'googleserviceaccount':'${CLUSTER_NAME}-sa', 'googleprojectid':'${CLUSTER_PROJECT_ID}'}}}}}]"
Prepare-se
kfsystem.yaml
para a atualização preservando as personalizações:Transfira o ficheiro
kfsystem.yaml
.Faça uma cópia de segurança do configmap
config-defaults
executando:kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yaml
Faça uma cópia de segurança do configmap
config-secrets
executando:kubectl get configmap config-secrets -o yaml -n kf > config-secrets-backup.yaml
Inspeccione os configmaps config-defaults e config-secrets atuais e encontre as definições correspondentes em
kfsystem.yaml
.Copie as definições existentes de
config-secrets
econfig-defaults
. Pode encontrar todas as definições emconfig-secrets
econfig-defaults
emkfsystem.yaml
. O campogoogleProjectId
é agora obrigatório.O campo
wi.googleServiceAccount
é a conta de serviço completa emconfig-secrets
, mas parakfsystem
, o sufixo tem de ser removido. Por exemplo,${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com
passa a ser${CLUSTER_NAME}-sa
emkfsystem.yaml
.Depois de as definições serem copiadas, altere o campo
enabled
emkfsystem
paratrue
.Guarde as alterações a
kfsystem.yaml
.Configure o operador para o Kf:
kubectl apply -f kfsystem.yaml
Atualize as dependências do Kf
Atualize o Tekton:
kubectl apply -f "https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.23.0/release.yaml"
Atualize o Cloud Service Mesh:
- Siga os passos no guia de atualização do Cloud Service Mesh 1.9.
Atualize o Config Connector.
Transfira o ficheiro tar do operador do Config Connector necessário.
Extraia o ficheiro TAR.
tar zxvf release-bundle.tar.gz
Instale o operador do Config Connector no seu cluster.
kubectl apply -f operator-system/configconnector-operator.yaml
Configure o operador do Config Connector se estiver a instalar o Config Connector pela primeira vez.
Copie o seguinte YAML para um ficheiro com o nome
configconnector.yaml
:# configconnector.yaml apiVersion: core.cnrm.cloud.google.com/v1beta1 kind: ConfigConnector metadata: # the name is restricted to ensure that there is only one # ConfigConnector resource installed in your cluster name: configconnector.core.cnrm.cloud.google.com spec: mode: cluster googleServiceAccount: "KF_SERVICE_ACCOUNT_NAME" # Replace with the full service account resolved from ${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com
Aplique a configuração ao cluster.
kubectl apply -f configconnector.yaml
Verifique se o Config Connector está totalmente instalado antes de continuar.
O Config Connector executa todos os respetivos componentes num espaço de nomes denominado
cnrm-system
. Verifique se os pods estão prontos executando o seguinte comando:kubectl wait -n cnrm-system --for=condition=Ready pod --all
Se o Config Connector estiver instalado corretamente, o resultado é semelhante ao seguinte:
pod/cnrm-controller-manager-0 condition met
Configure a identidade de carga de trabalho se estiver a instalar o Config Connector pela primeira vez.
kubectl annotate serviceaccount \ --namespace cnrm-system \ --overwrite \ cnrm-controller-manager \ iam.gke.io/gcp-service-account=${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com
Atualize para a CLI Kf v2.4.1
Instale a CLI:
Linux
Este comando instala a CLI do Kf para todos os utilizadores no sistema. Siga as instruções no separador do Cloud Shell para o instalar apenas para si.
gcloud storage cp gs://kf-releases/v2.4.1/kf-linux /tmp/kf
chmod a+x /tmp/kf
sudo mv /tmp/kf /usr/local/bin/kf
Mac
Este comando instala o
kf
para todos os utilizadores no sistema.gcloud storage cp gs://kf-releases/v2.4.1/kf-darwin /tmp/kf
chmod a+x /tmp/kf
sudo mv /tmp/kf /usr/local/bin/kf
Cloud Shell
Este comando instala o
kf
na sua instância do Cloud Shell se usar obash
. Caso contrário, pode ter de modificar as instruções para outras shells.mkdir -p ~/bin
gcloud storage cp gs://kf-releases/v2.4.1/kf-linux ~/bin/kf
chmod a+x ~/bin/kf
echo "export PATH=$HOME/bin:$PATH" >> ~/.bashrc
source ~/.bashrc
Windows
Esta ação transfere
kf
para o diretório atual. Adicione-o ao caminho se quiser chamá-lo a partir de qualquer outro local que não seja o diretório atual.gcloud storage cp gs://kf-releases/v2.4.1/kf-windows.exe kf.exe
Valide se as versões da CLI Kf e do servidor Kf correspondem:
- A versão da CLI é apresentada em
Kf Client
. - A versão do servidor Kf é apresentada em
kf["app.kubernetes.io/version"]
.
$ kf debug ... Version: Kf Client: v2.4.1 Server version: v1.20.6-gke.1000 kf["app.kubernetes.io/version"]: v2.4.1 ...
- A versão da CLI é apresentada em
Verifique se a atualização do Kf foi bem-sucedida
Se estiver a instalar o operador Kf pela primeira vez, confirme se o operador foi instalado:
kubectl get deployment -n appdevexperience appdevexperience-operator
Se não vir o operador como no exemplo de saída abaixo, reveja os passos de Instale o operador Kf pela primeira vez.
NAME READY UP-TO-DATE AVAILABLE AGE appdevexperience-operator 1/1 1 1 1h
Execute
doctor
para garantir que a versão recém-instalada está em bom estado:kf doctor --retries=20
O comando executa verificações de clusters várias vezes. É normal que algumas das tentativas falhem enquanto os novos controladores estão a ser iniciados.
Se o comando falhar com a mensagem
Error: environment failed checks
, siga as orientações na saídadoctor
para resolver o problema e tente novamente o comando até ter êxito.Se fez personalizações a
config-defaults
ouconfig-secrets
, verifique se foram transferidas:Compare o ficheiro
config-defaults-backup.yaml
comkubectl diff -f config-defaults-backup.yaml
para garantir que o cluster continua configurado corretamente.Por exemplo, se manteve todas as alterações da sua versão antiga do Kf e aprovou a utilização de um novo buildpack incluído na versão seguinte do Kf:
$ kubectl diff -f config-defaults-backup.yaml diff -u -N /tmp/LIVE/v1.ConfigMap.kf.config-defaults /tmp/MERGED/v1.ConfigMap.kf.config-defaults --- /tmp/LIVE/v1.ConfigMap.kf.config-defaults +++ /tmp/MERGED/v1.ConfigMap.kf.config-defaults @@ -131,6 +131,8 @@ enable_route_services: false spaceBuildpacksV2: | - - name: new_buildpack - url: https://github.com/cloudfoundry/new-buildpack - name: staticfile_buildpack url: https://github.com/cloudfoundry/staticfile-buildpack - name: java_buildpack exit status 1
Se os passos de validação forem bem-sucedidos, o cluster foi atualizado com êxito! Se tiver problemas, reveja a página de apoio técnico para obter orientações.