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.
Validar a instalação do Kf atual
Consiga as 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 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.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 forem correspondentes, faça o download e instale a versão da CLI do Kf que corresponde à versão do servidor e repita a verificação com a nova CLI. A versão da CLI precisa corresponder à versão do servidor antes de você continuar.
- A versão da CLI está listada em
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 aparecer a mensagem
Error: environment failed checks
, siga as instruções na saídadoctor
para resolver o problema e repita o comando até que ele seja bem-sucedido.
Fazer upgrade
Para fazer upgrade do Kf, siga estas etapas:
- Prepare o ambiente local e o upgrade.
- Faça upgrade das dependências do Kf.
- Faça upgrade do Kf e verifique se o upgrade foi feito.
Preparar o upgrade
Execute
kf version
para conseguir a versão atual do Kf.$ kf version kf version v2.0.0 linux
Veja a nova versão do Kf na página de downloads.
Faça o download do arquivo YAML da versão do Kf e salve-o como
kf-release.yaml
.Faça o download da versão do Kf para seu SO e nomeie-o como
kf-next
.Execute
chmod
para tornarkf-next
executável:chmod +x kf-next
Execute
kf-next version
para garantir que a versão transferida corresponda à versão do Kf que você quer instalar:$ kf-next version kf version v2.1.0 linux
Faça um backup 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 o upgrade faria no cluster.Edite e modifique
kf-release.yaml
para manter todas as alterações que você quer manter.Por exemplo, se você definir a propriedade
spaceDefaultToV3Stack
do configmapconfig-defaults
como false emv2.0.0
do Kf, a versãov2.1.0
terá o valor padrão detrue
.Execute
kubectl diff -f kf-release.yaml
novamente para garantir que as alterações feitas produzam a saída esperada.
Fazer upgrade de dependências Kf
Abra a página de downloads e encontre a matriz de dependências da versão do Kf do upgrade.
Fazer upgrade do Tekton:
Abra a página de lançamento do Tekton.
Encontre a versão do Tekton listada na matriz de dependência do Kf.
Execute o comando abaixo do título "Installation one-liner" para fazer upgrade do Tekton.
Faça upgrade do Cloud Service Mesh:
No menu suspenso da versão, escolha a versão do Cloud Service Mesh listada na matriz de dependências do Kf.
Siga o guia para fazer upgrade do ASM.
Fazer upgrade e verificar Kf
Instale os componentes do Kf atualizados usando a configuração de versão modificada:
kubectl apply -f kf-release.yaml
Execute
doctor
para garantir a integridade da versão recém-instalada:kf-next doctor --retries=12 --delay=5s
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.Substitua a CLI
kf
atual no seu sistema pela CLIkf-next
.chmod +x kf-next
mv kf-next $(which kf)
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