|
| 1 | +--- |
| 2 | +title: Configurer l'accès à plusieurs clusters |
| 3 | +content_type: task |
| 4 | +weight: 30 |
| 5 | +card: |
| 6 | + name: tasks |
| 7 | + weight: 40 |
| 8 | +--- |
| 9 | + |
| 10 | + |
| 11 | +<!-- overview --> |
| 12 | + |
| 13 | +Cette page montre comment configurer l'accès à plusieurs clusters à l'aide de fichiers de configuration. |
| 14 | +Une fois vos clusters, utilisateurs et contextes définis dans un ou plusieurs fichiers de configuration, vous pouvez basculer rapidement entre les clusters en utilisant la commande `kubectl config use-context`. |
| 15 | + |
| 16 | +{{< note >}} |
| 17 | +Un fichier utilisé pour configurer l'accès à un cluster est parfois appelé *fichier kubeconfig*. |
| 18 | +C'est une manière générique de se référer aux fichiers de configuration. |
| 19 | +Cela ne signifie pas qu'il existe un fichier nommé `kubeconfig`. |
| 20 | +{{< /note >}} |
| 21 | + |
| 22 | +## {{% heading "prerequisites" %}} |
| 23 | + |
| 24 | +{{< include "task-tutorial-prereqs.md" >}} |
| 25 | + |
| 26 | +Pour vérifier que {{< glossary_tooltip text="kubectl" term_id="kubectl" >}} est installé, executez `kubectl version --client`. |
| 27 | +La version kubectl doit être [dans une version mineure](/docs/setup/release/version-skew-policy/#kubectl) de votre |
| 28 | +serveur API du cluster. |
| 29 | + |
| 30 | +<!-- steps --> |
| 31 | + |
| 32 | +## Définir des clusters, des utilisateurs et des contextes |
| 33 | + |
| 34 | +Supposons que vous ayez deux clusters, un pour le développement et un pour le travail `scratch`. |
| 35 | +Dans le cluster `development`, vos développeurs frontend travaillent dans un espace de noms appelé `frontend`, et vos développeurs de stockage travaillent dans un espace de noms appelé `storage`. |
| 36 | +Dans votre cluster `scratch`, les développeurs travaillent dans le namespace par défaut ou créent des namespaces auxiliaires comme bon leur semble. |
| 37 | +L'accès au cluster `development` nécessite une authentification par certificat. |
| 38 | +L'accès au cluster `scratch` nécessite une authentification par nom d'utilisateur et mot de passe. |
| 39 | + |
| 40 | +Créez un répertoire nommé `config-exercice`. |
| 41 | +Dans votre répertoire `config-exercice`, créez un fichier nommé `config-demo` avec ce contenu: |
| 42 | + |
| 43 | +```shell |
| 44 | +apiVersion: v1 |
| 45 | +kind: Config |
| 46 | +preferences: {} |
| 47 | + |
| 48 | +clusters: |
| 49 | +- cluster: |
| 50 | + name: development |
| 51 | +- cluster: |
| 52 | + name: scratch |
| 53 | + |
| 54 | +users: |
| 55 | +- name: developer |
| 56 | +- name: experimenter |
| 57 | + |
| 58 | +contexts: |
| 59 | +- context: |
| 60 | + name: dev-frontend |
| 61 | +- context: |
| 62 | + name: dev-storage |
| 63 | +- context: |
| 64 | + name: exp-scratch |
| 65 | +``` |
| 66 | + |
| 67 | +Un fichier de configuration décrit les clusters, les utilisateurs et les contextes. |
| 68 | +Votre fichier `config-demo` a le cadre pour décrire deux clusters, deux utilisateurs et trois contextes. |
| 69 | + |
| 70 | +Allez dans votre répertoire `config-exercice`. |
| 71 | +Entrez ces commandes pour ajouter les détails du cluster à votre fichier de configuration: |
| 72 | + |
| 73 | +```shell |
| 74 | +kubectl config --kubeconfig=config-demo set-cluster development --server=http://1.2.3.4 --certificate-authority=fake-ca-file |
| 75 | +kubectl config --kubeconfig=config-demo set-cluster scratch --server=http://5.6.7.8 --insecure-skip-tls-verify |
| 76 | +``` |
| 77 | + |
| 78 | +Ajoutez les détails de l'utilisateur à votre fichier de configuration: |
| 79 | + |
| 80 | +```shell |
| 81 | +kubectl config --kubeconfig=config-demo set-credentials developer --client-certificate=fake-cert-file --client-key=fake-key-seefile |
| 82 | +kubectl config --kubeconfig=config-demo set-credentials experimenter --username=exp --password=some-password |
| 83 | +``` |
| 84 | + |
| 85 | +{{< note >}} |
| 86 | + |
| 87 | +- Pour supprimer un utilisateur, vous pouvez exécuter `kubectl --kubeconfig=config-demo config unset users.<name>` |
| 88 | +- Pour supprimer un cluster, vous pouvez exécuter `kubectl --kubeconfig=config-demo config unset clusters.<name>` |
| 89 | +- Pour supprimer un contexte, vous pouvez exécuter `kubectl --kubeconfig=config-demo config unset contexts.<name>` |
| 90 | +{{< /note >}} |
| 91 | + |
| 92 | +Ajoutez des détails de contexte à votre fichier de configuration: |
| 93 | + |
| 94 | +```shell |
| 95 | +kubectl config --kubeconfig=config-demo set-context dev-frontend --cluster=development --namespace=frontend --user=developer |
| 96 | +kubectl config --kubeconfig=config-demo set-context dev-storage --cluster=development --namespace=storage --user=developer |
| 97 | +kubectl config --kubeconfig=config-demo set-context exp-scratch --cluster=scratch --namespace=default --user=experimenter |
| 98 | +``` |
| 99 | + |
| 100 | +Ouvrez votre fichier `config-demo` pour voir les détails ajoutés. |
| 101 | +Au lieu d'ouvrir le fichier `config-demo`, vous pouvez utiliser la commande `kubectl config view`. |
| 102 | + |
| 103 | +```shell |
| 104 | +kubectl config --kubeconfig=config-demo view |
| 105 | +``` |
| 106 | + |
| 107 | +La sortie montre les deux clusters, deux utilisateurs et trois contextes: |
| 108 | + |
| 109 | +```shell |
| 110 | +apiVersion: v1 |
| 111 | +clusters: |
| 112 | +- cluster: |
| 113 | + certificate-authority: fake-ca-file |
| 114 | + server: http://1.2.3.4 |
| 115 | + name: development |
| 116 | +- cluster: |
| 117 | + insecure-skip-tls-verify: true |
| 118 | + server: http://5.6.7.8 |
| 119 | + name: scratch |
| 120 | +contexts: |
| 121 | +- context: |
| 122 | + cluster: development |
| 123 | + namespace: frontend |
| 124 | + user: developer |
| 125 | + name: dev-frontend |
| 126 | +- context: |
| 127 | + cluster: development |
| 128 | + namespace: storage |
| 129 | + user: developer |
| 130 | + name: dev-storage |
| 131 | +- context: |
| 132 | + cluster: scratch |
| 133 | + namespace: default |
| 134 | + user: experimenter |
| 135 | + name: exp-scratch |
| 136 | +current-context: "" |
| 137 | +kind: Config |
| 138 | +preferences: {} |
| 139 | +users: |
| 140 | +- name: developer |
| 141 | + user: |
| 142 | + client-certificate: fake-cert-file |
| 143 | + client-key: fake-key-file |
| 144 | +- name: experimenter |
| 145 | + user: |
| 146 | + password: some-password |
| 147 | + username: exp |
| 148 | +``` |
| 149 | + |
| 150 | +Le `fake-ca-file`, `fake-cert-file` et `fake-key-file` ci-dessus sont les espaces réservés pour les noms de chemin des fichiers de certificat. |
| 151 | +Vous devez les remplacer par les noms de chemin réels des fichiers de certificat dans votre environnement. |
| 152 | + |
| 153 | +Parfois, vous souhaiterez peut-être utiliser des données encodées en Base64 incorporées ici au lieu de fichiers de certificat séparés; dans ce cas, vous devez ajouter le suffixe `-data` aux clés, par exemple, `certificate-Authority-data`, `client-certificate-data`, `client-key-data`. |
| 154 | + |
| 155 | +Chaque contexte est un triplet (cluster, utilisateur, namespace). |
| 156 | +Par exemple, le contexte `dev-frontend` dit, "Utilisez les informations d'identification de l'utilisateur `developer` pour accéder au namespace `frontend` du cluster `development`". |
| 157 | + |
| 158 | +Définissez le contexte actuel: |
| 159 | + |
| 160 | +```shell |
| 161 | +kubectl config --kubeconfig=config-demo use-context dev-frontend |
| 162 | +``` |
| 163 | + |
| 164 | +Maintenant, chaque fois que vous entrez une commande `kubectl`, l'action s'appliquera au cluster et au namespace répertorié dans le contexte `dev-frontend`. |
| 165 | +Et la commande utilisera les informations d'identification de l'utilisateur répertoriées dans le contexte `dev-frontend`. |
| 166 | + |
| 167 | +Pour voir uniquement les informations de configuration associées au contexte actuel, utilisez l'indicateur `--minify`. |
| 168 | + |
| 169 | +```shell |
| 170 | +kubectl config --kubeconfig=config-demo view --minify |
| 171 | +``` |
| 172 | + |
| 173 | +La sortie affiche les informations de configuration associées au contexte `dev-frontend`: |
| 174 | + |
| 175 | +```shell |
| 176 | +apiVersion: v1 |
| 177 | +clusters: |
| 178 | +- cluster: |
| 179 | + certificate-authority: fake-ca-file |
| 180 | + server: http://1.2.3.4 |
| 181 | + name: development |
| 182 | +contexts: |
| 183 | +- context: |
| 184 | + cluster: development |
| 185 | + namespace: frontend |
| 186 | + user: developer |
| 187 | + name: dev-frontend |
| 188 | +current-context: dev-frontend |
| 189 | +kind: Config |
| 190 | +preferences: {} |
| 191 | +users: |
| 192 | +- name: developer |
| 193 | + user: |
| 194 | + client-certificate: fake-cert-file |
| 195 | + client-key: fake-key-file |
| 196 | +``` |
| 197 | + |
| 198 | +Supposons maintenant que vous souhaitiez travailler pendant un certain temps dans le cluster scratch. |
| 199 | + |
| 200 | +Changez le contexte actuel en `exp-scratch`: |
| 201 | + |
| 202 | +```shell |
| 203 | +kubectl config --kubeconfig=config-demo use-context exp-scratch |
| 204 | +``` |
| 205 | + |
| 206 | +Maintenant, toute commande `kubectl` que vous donnez s'appliquera au namespace par défaut du cluster `scratch`. |
| 207 | +Et la commande utilisera les informations d'identification de l'utilisateur répertoriées dans le contexte `exp-scratch`. |
| 208 | + |
| 209 | +Afficher la configuration associée au nouveau contexte actuel, `exp-scratch`. |
| 210 | + |
| 211 | +```shell |
| 212 | +kubectl config --kubeconfig=config-demo view --minify |
| 213 | +``` |
| 214 | + |
| 215 | +Enfin, supposons que vous vouliez travailler pendant un certain temps dans le namespace `storage` du cluster `development`. |
| 216 | + |
| 217 | +Changez le contexte actuel en `dev-storage`: |
| 218 | + |
| 219 | +```shell |
| 220 | +kubectl config --kubeconfig=config-demo use-context dev-storage |
| 221 | +``` |
| 222 | + |
| 223 | +Afficher la configuration associée au nouveau contexte actuel, `dev-storage`. |
| 224 | + |
| 225 | +```shell |
| 226 | +kubectl config --kubeconfig=config-demo view --minify |
| 227 | +``` |
| 228 | + |
| 229 | +## Créer un deuxième fichier de configuration |
| 230 | + |
| 231 | +Dans votre répertoire `config-exercice`, créez un fichier nommé `config-demo-2` avec ce contenu: |
| 232 | + |
| 233 | +```shell |
| 234 | +apiVersion: v1 |
| 235 | +kind: Config |
| 236 | +preferences: {} |
| 237 | + |
| 238 | +contexts: |
| 239 | +- context: |
| 240 | + cluster: development |
| 241 | + namespace: ramp |
| 242 | + user: developer |
| 243 | + name: dev-ramp-up |
| 244 | +``` |
| 245 | + |
| 246 | +Le fichier de configuration précédent définit un nouveau contexte nommé `dev-ramp-up`. |
| 247 | + |
| 248 | +## Définissez la variable d'environnement KUBECONFIG |
| 249 | + |
| 250 | +Vérifiez si vous avez une variable d'environnement nommée `KUBECONFIG`. |
| 251 | +Si tel est le cas, enregistrez la valeur actuelle de votre variable d'environnement `KUBECONFIG`, afin de pouvoir la restaurer ultérieurement. |
| 252 | +Par exemple: |
| 253 | + |
| 254 | +### Linux |
| 255 | + |
| 256 | +```shell |
| 257 | +export KUBECONFIG_SAVED=$KUBECONFIG |
| 258 | +``` |
| 259 | + |
| 260 | +### Windows PowerShell |
| 261 | + |
| 262 | +```shell |
| 263 | +$Env:KUBECONFIG_SAVED=$ENV:KUBECONFIG |
| 264 | +``` |
| 265 | + |
| 266 | +La variable d'environnement `KUBECONFIG` est une liste de chemins vers les fichiers de configuration. |
| 267 | +La liste est délimitée par deux-points pour Linux et Mac et par des points-virgules pour Windows. |
| 268 | +Si vous avez une variable d'environnement `KUBECONFIG`, familiarisez-vous avec les fichiers de configuration de la liste. |
| 269 | + |
| 270 | +Ajoutez temporairement deux chemins à votre variable d'environnement `KUBECONFIG`. |
| 271 | +Par exemple: |
| 272 | + |
| 273 | +### Linux |
| 274 | + |
| 275 | +```shell |
| 276 | +export KUBECONFIG=$KUBECONFIG:config-demo:config-demo-2 |
| 277 | +``` |
| 278 | + |
| 279 | +### Windows PowerShell |
| 280 | + |
| 281 | +```shell |
| 282 | +$Env:KUBECONFIG=("config-demo;config-demo-2") |
| 283 | +``` |
| 284 | + |
| 285 | +Dans votre répertoire `config-exercice`, entrez cette commande: |
| 286 | + |
| 287 | +```shell |
| 288 | +kubectl config view |
| 289 | +``` |
| 290 | + |
| 291 | +La sortie affiche les informations fusionnées de tous les fichiers répertoriés dans votre variable d'environnement `KUBECONFIG`. |
| 292 | +En particulier, notez que les informations fusionnées ont le contexte `dev-ramp-up` du fichier `config-demo-2` et les trois contextes du fichier `config-demo`: |
| 293 | + |
| 294 | +```shell |
| 295 | +contexts: |
| 296 | +- context: |
| 297 | + cluster: development |
| 298 | + namespace: frontend |
| 299 | + user: developer |
| 300 | + name: dev-frontend |
| 301 | +- context: |
| 302 | + cluster: development |
| 303 | + namespace: ramp |
| 304 | + user: developer |
| 305 | + name: dev-ramp-up |
| 306 | +- context: |
| 307 | + cluster: development |
| 308 | + namespace: storage |
| 309 | + user: developer |
| 310 | + name: dev-storage |
| 311 | +- context: |
| 312 | + cluster: scratch |
| 313 | + namespace: default |
| 314 | + user: experimenter |
| 315 | + name: exp-scratch |
| 316 | +``` |
| 317 | + |
| 318 | +Pour plus d'informations sur la manière dont les fichiers kubeconfig sont fusionnés, consultez [Organisation de l'accès au cluster à l'aide des fichiers kubeconfig](/docs/concepts/configuration/organize-cluster-access-kubeconfig/) |
| 319 | + |
| 320 | +## Explorez le répertoire $HOME/.kube |
| 321 | + |
| 322 | +Si vous avez déjà un cluster, et vous pouvez utiliser `kubectl` pour interagir avec le cluster, alors vous avez probablement un fichier nommé `config` dans le repertoire `$HOME/.kube`. |
| 323 | + |
| 324 | +Allez dans `$ HOME/.kube`, et voyez quels fichiers sont là. |
| 325 | +En règle générale, il existe un fichier nommé `config`. |
| 326 | +Il peut également y avoir d'autres fichiers de configuration dans ce répertoire. |
| 327 | +Familiarisez-vous brièvement avec le contenu de ces fichiers. |
| 328 | + |
| 329 | +## Ajoutez $HOME/.kube/config à votre variable d'environnement KUBECONFIG |
| 330 | + |
| 331 | +Si vous avez un fichier `$ HOME/.kube/config`, et qu'il n'est pas déjà répertorié dans votre variable d'environnement `KUBECONFIG`, ajoutez-le maintenant à votre variable d'environnement `KUBECONFIG`. |
| 332 | +Par exemple: |
| 333 | + |
| 334 | +### Linux |
| 335 | + |
| 336 | +```shell |
| 337 | +export KUBECONFIG=$KUBECONFIG:$HOME/.kube/config |
| 338 | +``` |
| 339 | + |
| 340 | +### Windows Powershell |
| 341 | + |
| 342 | +```shell |
| 343 | +$Env:KUBECONFIG="$Env:KUBECONFIG;$HOME\.kube\config" |
| 344 | +``` |
| 345 | + |
| 346 | +Affichez les informations de configuration fusionnées à partir de tous les fichiers qui sont maintenant répertoriés dans votre variable d'environnement `KUBECONFIG`. |
| 347 | +Dans votre répertoire config-exercice, entrez: |
| 348 | + |
| 349 | +```shell |
| 350 | +kubectl config view |
| 351 | +``` |
| 352 | + |
| 353 | +## Nettoyage |
| 354 | + |
| 355 | +Remettez votre variable d'environnement `KUBECONFIG` à sa valeur d'origine. |
| 356 | + |
| 357 | +Par exemple: |
| 358 | + |
| 359 | +### Linux |
| 360 | + |
| 361 | +```shell |
| 362 | +export KUBECONFIG=$KUBECONFIG_SAVED |
| 363 | +``` |
| 364 | + |
| 365 | +### Windows PowerShell |
| 366 | + |
| 367 | +```shell |
| 368 | +$Env:KUBECONFIG=$ENV:KUBECONFIG_SAVED |
| 369 | +``` |
| 370 | + |
| 371 | +## {{% heading "whatsnext" %}} |
| 372 | + |
| 373 | +- [Organisation de l'accès au cluster à l'aide des fichiers kubeconfig](/docs/concepts/configuration/organize-cluster-access-kubeconfig/) |
| 374 | +- [kubectl config](/docs/reference/generated/kubectl/kubectl-commands#config) |
0 commit comments