Como parte do procedimento de upgrade, você garante que a instalação do Kf use a versão mais recente do operador Kf:
- Confirme que a versão atual do Kf pode fazer upgrade para o Kf v2.4.1.
- Faça upgrade para o Kf v2.4.1.
- Faça upgrade das dependências (se necessário).
Antes de começar
Você precisará dos seguintes itens:
- Um cluster atual com o Kf instalado.
- Acesso a uma máquina com
gcloud
,kf
ekubectl
instalados.
Como se preparar para o upgrade
Conectar-se ao cluster de destino
gcloud container clusters get-credentials CLUSTER_NAME \
--zone CLUSTER_ZONE \
--project CLUSTER_PROJECT_ID
Confirmar se a CLI atual do Kf e as versões do servidor correspondem
Execute kf debug
e valide a CLI do Kf e
as versões do servidor Kf correspondentes.
- A versão da CLI está listada em
Kf Client
. - A versão do servidor Kf está listada 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 Kf v2.4.1 CLI antes de continuar.
Se o valor do servidor Kf for mais antigo do que v2.3.x, você precisará primeiro fazer upgrade incremental para o Kf v2.3.x para continuar.
Confirmar se o Kf está normal antes de fazer upgrade
Execute kf doctor
para verificar o estado do cluster. Todos os testes devem ser aprovados
antes de continuar.
$ kf doctor
...
=== RUN doctor/user
=== RUN doctor/user/ContainerRegistry
--- PASS: doctor/user
--- PASS: doctor/user/ContainerRegistry
...
Se você encontrar alguma mensagem de erro FAIL
ou Error: environment failed checks
, siga as
orientações na saída kf doctor
ou veja o guia de solução de problemas para tentar o comando novamente
até ele ser bem-sucedido.
Fazer backup opcional dos configmaps do Kf se você tiver feito personalizações
Faça um backup do configmap
config-defaults
executando:kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yaml
Faça um backup do configmap
config-secrets
executando:kubectl get configmap config-secrets -o yaml -n kf > config-secrets-backup.yaml
Fazer upgrade do operador Kf
O operador Kf foi lançado como parte das versões 2.4.0:
Se você já instalou o operador Kf como parte da instalação da versão 2.4.0, somente é necessário fazer upgrade dele como parte da atualização para 2.4.1.
Consulte Fazer upgrade do operador Kf.
Se você estiver fazendo upgrade da versão 2.3.2, é necessário instalar a versão 2.4.1 do operador Kf para fazer upgrade para o Kf gerenciado por operador.
Consulte Instalar o operador Kf.
Atualizar o operador do Kf atual
O operador Kf executa upgrades para você.
Aplique o yaml do operador:
kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.4.1/operator.yaml"
Instalar o operador Kf pela primeira vez
Execute estas etapas para fazer upgrade para o operador gerenciado Kf.
Aplique o yaml do operador:
kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.4.1/operator.yaml"
Escolha entre usar padrões ou reter personalizações:
Prepare
kfsystem.yaml
para o upgrade usando os padrões:Faça o download do arquivo
kfsystem.yaml
, preencha as variáveis abaixo e execute os comandos no mesmo diretório do arquivo para prepararkfsystem.yaml
automaticamente para o upgrade.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
kfsystem.yaml
para o upgrade enquanto preserva as personalizações:Faça o download do arquivo
kfsystem.yaml
.Faça um backup do configmap
config-defaults
executando:kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yaml
Faça um backup do configmap
config-secrets
executando:kubectl get configmap config-secrets -o yaml -n kf > config-secrets-backup.yaml
Inspecione os configmaps config-defaults e config-secrets atuais e encontre as configurações correspondentes em
kfsystem.yaml
.Copie as configurações atuais de
config-secrets
econfig-defaults
. Todas as configurações emconfig-secrets
econfig-defaults
podem ser encontradas emkfsystem.yaml
. O campogoogleProjectId
agora é obrigatório.O campo
wi.googleServiceAccount
é a conta de serviço completa emconfig-secrets
, mas parakfsystem
, o sufixo precisa ser removido. Por exemplo,${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com
ficaria${CLUSTER_NAME}-sa
emkfsystem.yaml
.Depois que as configurações forem copiadas, altere o campo
enabled
emkfsystem
paratrue
.Salve as alterações em
kfsystem.yaml
.Configure o operador para Kf:
kubectl apply -f kfsystem.yaml
Fazer upgrade de dependências Kf
Fazer upgrade do Tekton:
kubectl apply -f "https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.23.0/release.yaml"
Faça upgrade do Cloud Service Mesh:
- Siga as etapas no guia de upgrade do Cloud Service Mesh 1.9.
Faça upgrade do Config Connector.
Faça o download do arquivo .tar exigido do operador do Config Connector:
Extraia o arquivo tar:
tar zxvf release-bundle.tar.gz
Instale o operador do Config Connector no cluster.
kubectl apply -f operator-system/configconnector-operator.yaml
Configure o operador do Config Connector se estiver instalando o Config Connector pela primeira vez.
Copie o seguinte YAML para um arquivo chamado
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 a seu cluster.
kubectl apply -f configconnector.yaml
Verifique se o Config Connector está totalmente instalado antes de continuar.
Todos os componentes do Config Connector são executados em um namespace chamado
cnrm-system
. Execute o comando a seguir para verificar se os pods estão prontos:kubectl wait -n cnrm-system --for=condition=Ready pod --all
Se o Config Connector estiver instalado corretamente, a saída será semelhante à seguinte:
pod/cnrm-controller-manager-0 condition met
Configure a Identidade da carga de trabalho se estiver instalando 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
Fazer upgrade para a CLI v2.4.1 do Kf
Instale a CLI:
Linux
Este comando instala a CLI do Kf para todos os usuários no sistema. Siga as instruções na guia do Cloud Shell para instalá-lo só para você.
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
kf
para todos os usuários 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
kf
na instância do Cloud Shell se você usarbash
. Talvez as instruções precisem ser modificadas para outros 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
Este comando faz o download de
kf
no diretório atual. Adicione-o ao caminho se você quiser chamar de outro local que não seja diretório atual.gcloud storage cp gs://kf-releases/v2.4.1/kf-windows.exe kf.exe
Valide a correspondência entre as versões da CLI e do servidor do Kf:
- A versão da CLI está listada em
Kf Client
. - A versão do servidor Kf está listada 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 está listada em
Verificar se o Kf foi atualizado
Se estiver instalando o operador Kf pela primeira vez, confirme a instalação do operador:
kubectl get deployment -n appdevexperience appdevexperience-operator
Se você não vir o operador como na saída de exemplo abaixo, revise as etapas Instalar o operador Kf pela primeira vez.
NAME READY UP-TO-DATE AVAILABLE AGE appdevexperience-operator 1/1 1 1 1h
Execute
doctor
para garantir a integridade da versão recém-instalada:kf doctor --retries=20
O comando executará as verificações de cluster várias vezes. É normal que algumas tentativas falhem enquanto os novos controladores são iniciados.
Se o comando falhar com a mensagem
Error: environment failed checks
, siga as orientações na saídadoctor
para resolver o problema e repita o comando até que a operação seja bem-sucedida.Se você fez personalizações em
config-defaults
ouconfig-secrets
, verifique se elas foram transferidas:Compare o arquivo
config-defaults-backup.yaml
comkubectl diff -f config-defaults-backup.yaml
para garantir que o cluster ainda esteja configurado corretamente.Por exemplo, se você mantiver todas as alterações da versão antiga do Kf e o uso aprovado de um novo pacote de compilação incluído com a próxima versão 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 as etapas de verificação forem aprovadas, o cluster foi atualizado. Se você tiver problemas, consulte a página de suporte para orientações.