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.
Valide a instalação do Kf existente
Obtenha credenciais de autenticação para interagir com o cluster:
gcloud container clusters get-credentials CLUSTER_NAME \ --zone CLUSTER_ZONE \ --project CLUSTER_PROJECT_ID
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.0.0 Server version: v1.17.13-gke.1401 kf["app.kubernetes.io/version"]: v2.0.0 ...
Se os valores do cliente Kf e do servidor Kf não corresponderem, transfira e instale a versão da CLI Kf que corresponde à versão do servidor e, em seguida, repita a verificação com a nova CLI. A versão da CLI tem de corresponder à versão do servidor antes de continuar.
- A versão da CLI é apresentada em
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 a mensagem
Error: environment failed checks
, siga as orientações no resultadodoctor
para resolver o problema e tente novamente o comando até que seja bem-sucedido.
Atualizar
Para atualizar o Kf, siga estes passos:
- Prepare o ambiente local e a atualização.
- Atualize as dependências do Kf.
- Atualize o Kf e verifique se a atualização foi bem-sucedida.
Prepare a atualização
Execute
kf version
para obter a versão atual do Kf.$ kf version kf version v2.0.0 linux
Encontre a versão mais recente seguinte do Kf na página de transferências.
Transfira o ficheiro YAML da versão do Kf e guarde-o como
kf-release.yaml
.Transfira a versão do Kf para o seu SO e atribua-lhe o nome
kf-next
.Execute
chmod
para tornarkf-next
executável:chmod +x kf-next
Execute o
kf-next version
para garantir que a versão transferida corresponde à versão do Kf que quer instalar:$ kf-next version kf version v2.1.0 linux
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
Execute
kubectl diff -f kf-release.yaml
e inspecione as alterações que a atualização faria ao seu cluster.Edite
kf-release.yaml
e modifique-o para manter as alterações que quer manter.Por exemplo, se definir a propriedade
config-defaults
configmapspaceDefaultToV3Stack
como falsa emv2.0.0
do Kf, a versãov2.1.0
teria o valor predefinido detrue
.Execute
kubectl diff -f kf-release.yaml
novamente para garantir que as alterações feitas produzem o resultado esperado.
Atualize as dependências do Kf
Abra a página de transferências e encontre a matriz de dependências para a versão do Kf para a qual está a fazer a atualização.
Atualize o Tekton:
Abra a página de lançamento do Tekton.
Encontre a versão do Tekton listada na matriz de dependências do Kf.
Execute o comando no título "Instalação de uma linha" para atualizar o Tekton.
Atualize o Cloud Service Mesh:
No menu pendente de versões, escolha a versão do Cloud Service Mesh apresentada na matriz de dependências do Kf.
Siga o guia para atualizar o ASM.
Atualize e valide o Kf
Instale os componentes do Kf atualizados através da configuração de lançamento modificada:
kubectl apply -f kf-release.yaml
Execute
doctor
para garantir que a versão recém-instalada está em bom estado:kf-next doctor --retries=12 --delay=5s
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.Substitua a CLI
kf
existente no seu sistema pela CLIkf-next
.chmod +x kf-next
mv kf-next $(which kf)
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