Au cours de la procédure de mise à niveau, vous devez vous assurer que votre installation de Kf utilise la dernière version de l'opérateur Kf :
- Vérifiez que votre version de Kf actuelle peut être mise à niveau vers la version Kf v2.4.1.
- Passez à Kf v2.4.1.
- Mettez à niveau les dépendances (si nécessaire).
Avant de commencer
Vous avez alors besoin de :
- Un cluster existant sur lequel Kf est installé.
- Un accès à un ordinateur sur lequel
gcloud
,kf
etkubectl
sont installés.
Préparer la mise à niveau
Se connecter à votre cluster cible
gcloud container clusters get-credentials CLUSTER_NAME \
--zone CLUSTER_ZONE \
--project CLUSTER_PROJECT_ID
Vérifier que la CLI Kf et les versions de serveur actuelles correspondent
Exécutez kf debug
et validez la correspondance entre les versions CLI et serveur de Kf.
- La version de la CLI apparaît sous
Kf Client
. - La version du serveur Kf apparaît sous
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
...
Si les valeurs du client Kf et du serveur Kf ne correspondent pas, mais que la version du serveur est v2.3.x, installez la CLI Kf v2.4.1 avant de continuer.
Si la version du serveur Kf est antérieure à la version 2.3.x, vous devez d'abord effectuer une mise à niveau vers Kf v2.3.x afin de continuer.
Vérifier que Kf est opérationnel avant de procéder à la mise à niveau
Exécutez kf doctor
pour vérifier l'état de votre cluster. Avant de continuer, assurez-vous que tous les tests sont concluants.
$ kf doctor
...
=== RUN doctor/user
=== RUN doctor/user/ContainerRegistry
--- PASS: doctor/user
--- PASS: doctor/user/ContainerRegistry
...
Si vous voyez les messages FAIL
ou Error: environment failed checks
, suivez les instructions dans la sortie kf doctor
ou consultez le guide de dépannage pour résoudre le problème et réessayez la commande jusqu'à ce qu'elle aboutisse.
Sauvegarder les ConfigMaps Kf si vous avez effectué des personnalisations (facultatif)
Effectuez une sauvegarde du fichier ConfigMap
config-defaults
en exécutant la commande suivante :kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yaml
Effectuez une sauvegarde du fichier ConfigMap
config-secrets
en exécutant la commande suivante :kubectl get configmap config-secrets -o yaml -n kf > config-secrets-backup.yaml
Mettre à niveau l'opérateur Kf
L'opérateur Kf a été publié pour la première fois dans le cadre de la version 2.4.0 :
Si vous avez déjà installé l'opérateur Kf dans le cadre de l'installation de la version 2.4.0, il vous suffit de le mettre à niveau dans le cadre de la mise à niveau vers la version 2.4.1.
Consultez Mettre à niveau l'opérateur Kf.
Si vous effectuez une mise à niveau à partir de la version 2.3.2, vous devez installer la version 2.4.1 de l'opérateur Kf pour passer à la version Kf gérée par l'opérateur.
Consultez la section Installer l'opérateur Kf.
Mettre à niveau l'opérateur Kf actuel
L'opérateur Kf effectue des mises à niveau pour vous.
Appliquez l'opérateur YAML :
kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.4.1/operator.yaml"
Installer l'opérateur Kf pour la première fois
Procédez comme suit pour effectuer la mise à niveau vers l'opérateur Kf.
Appliquez l'opérateur YAML :
kubectl apply -f "https://storage.googleapis.com/kf-releases/v2.4.1/operator.yaml"
Choisissez d'utiliser les valeurs par défaut ou de conserver les personnalisations :
Préparez
kfsystem.yaml
pour la mise à niveau à l'aide des valeurs par défaut :Téléchargez le fichier
kfsystem.yaml
, renseignez les variables ci-dessous, puis exécutez les commandes dans le même répertoire que le fichier pour préparer automatiquementkfsystem.yaml
à la mise à niveau.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}'}}}}}]"
Préparez
kfsystem.yaml
pour la mise à niveau en conservant les personnalisations :Téléchargez le fichier
kfsystem.yaml
.Effectuez une sauvegarde du fichier ConfigMap
config-defaults
en exécutant la commande suivante :kubectl get configmap config-defaults -o yaml -n kf > config-defaults-backup.yaml
Effectuez une sauvegarde du fichier ConfigMap
config-secrets
en exécutant la commande suivante :kubectl get configmap config-secrets -o yaml -n kf > config-secrets-backup.yaml
Inspectez les fichiers ConfigMap config-defaults et config-secrets par défaut, puis recherchez les paramètres correspondants dans
kfsystem.yaml
.Copiez les paramètres existants à partir de
config-secrets
etconfig-defaults
. Tous les paramètres deconfig-secrets
et deconfig-defaults
sont disponibles danskfsystem.yaml
. Le champgoogleProjectId
est maintenant obligatoire.Le champ
wi.googleServiceAccount
correspond au compte de service complet dansconfig-secrets
, mais pourkfsystem
, le suffixe doit être supprimé. Par exemple,${CLUSTER_NAME}-sa@${CLUSTER_PROJECT_ID}.iam.gserviceaccount.com
deviendra${CLUSTER_NAME}-sa
danskfsystem.yaml
.Une fois les paramètres copiés, remplacez le champ
enabled
dekfsystem
partrue
.Enregistrez les modifications apportées à
kfsystem.yaml
.Configurez l'opérateur pour Kf :
kubectl apply -f kfsystem.yaml
Mettre à niveau les dépendances Kf
Mettez à niveau Tekton :
kubectl apply -f "https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.23.0/release.yaml"
Mettre à niveau Cloud Service Mesh :
- Suivez les étapes du guide de mise à niveau de Cloud Service Mesh 1.9.
Mettez à niveau Config Connector.
Téléchargez le fichier tar de l'opérateur Config Connector requis :
.Extrayez le fichier tar.
tar zxvf release-bundle.tar.gz
Installez l'opérateur Config Connector sur votre cluster.
kubectl apply -f operator-system/configconnector-operator.yaml
Configurez l'opérateur Config Connector si vous installez Config Connector pour la première fois.
Copiez le fichier YAML suivant dans un fichier nommé
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
Appliquez la configuration à votre cluster.
kubectl apply -f configconnector.yaml
Vérifiez que Config Connector est entièrement installé avant de continuer.
Config Connector exécute tous ses composants dans un espace de noms nommé
cnrm-system
. Vérifiez que les pods sont prêts en exécutant la commande suivante :kubectl wait -n cnrm-system --for=condition=Ready pod --all
Si Config Connector est installé correctement, le résultat ressemble à ce qui suit :
pod/cnrm-controller-manager-0 condition met
Configurez Workload Identity si vous installez Config Connector pour la première fois.
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
Mettre à niveau la CLI Kf vers la version 2.4.1
Installez la CLI :
Linux
Cette commande installe la CLI Kf pour tous les utilisateurs du système. Suivez les instructions de l'onglet Cloud Shell pour l'installer juste pour vous.
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
Cette commande installe
kf
pour tous les utilisateurs du système.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
kf
sera installé sur votre instance Cloud Shell si vous utilisezbash
, et vous devrez peut-être modifier les instructions pour les autres interfaces système.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
kf
sera téléchargé dans le répertoire actuel. Si vous souhaitez l'appeler depuis un emplacement autre que le répertoire actuel, ajoutez-le au chemin d'accès.gcloud storage cp gs://kf-releases/v2.4.1/kf-windows.exe kf.exe
Validez la correspondance des versions de la CLI Kf et du serveur Kf :
- La version de la CLI apparaît sous
Kf Client
. - La version du serveur Kf apparaît sous
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 ...
- La version de la CLI apparaît sous
Vérifier que Kf a bien été mis à niveau
Si vous installez l'opérateur Kf pour la première fois, confirmez l'installation de l'opérateur :
kubectl get deployment -n appdevexperience appdevexperience-operator
Si l'opérateur ne s'affiche pas, comme dans l'exemple ci-dessous, consultez la procédure Installez l'opérateur Kf pour la première fois.
NAME READY UP-TO-DATE AVAILABLE AGE appdevexperience-operator 1/1 1 1 1h
Exécutez
doctor
pour vous assurer que la version qui vient d'être installée est opérationnelle :kf doctor --retries=20
La commande exécute à plusieurs reprises des vérifications du cluster. Il est normal que certaines tentatives échouent lors du démarrage des nouveaux contrôleurs.
Si la commande échoue avec le message
Error: environment failed checks
, suivez les instructions fournies dans le résultatdoctor
pour résoudre le problème et relancez la commande jusqu'à ce qu'elle aboutisse.Si vous avez apporté des personnalisations à
config-defaults
ouconfig-secrets
, vérifiez qu'elles ont bien été reportées :Comparez le fichier
config-defaults-backup.yaml
à l'aide de la commandekubectl diff -f config-defaults-backup.yaml
pour vous assurer que votre cluster est toujours correctement configuré.Par exemple, si vous avez conservé toutes les modifications de votre ancienne version de Kf et approuvé l'utilisation d'un nouveau pack de création fourni avec la version suivante :
$ 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
Si les étapes de validation réussissent, votre cluster a bien été mis à niveau. Si vous rencontrez des problèmes, veuillez consulter la page Assistance pour obtenir des conseils.