From 3177ce51c5efbb4d9e72201546d4ae29ca46f4d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Lizurey?= Date: Thu, 1 Aug 2024 17:26:15 +0200 Subject: [PATCH 01/18] French translation of hello minikube --- content/fr/docs/tutorials/hello-minikube.md | 294 ++++++++++++-------- 1 file changed, 178 insertions(+), 116 deletions(-) diff --git a/content/fr/docs/tutorials/hello-minikube.md b/content/fr/docs/tutorials/hello-minikube.md index 2c1b562405..940fc48115 100644 --- a/content/fr/docs/tutorials/hello-minikube.md +++ b/content/fr/docs/tutorials/hello-minikube.md @@ -1,14 +1,7 @@ --- -title: Hello Minikube +title: Bienvenue sur minikube content_type: tutorial weight: 5 -description: Tutoriel Minikube -menu: - main: - title: "Démarrer" - weight: 10 - post: > -

Prêt à mettre les mains dans le cambouis ? Créez un cluster Kubernetes simple qui exécute "Hello World" avec Node.js.

>. card: name: tutorials weight: 10 @@ -16,260 +9,329 @@ card: -Ce tutoriel vous montre comment exécuter une simple application Hello World Node.js sur Kubernetes en utilisant [Minikube](/docs/getting-started-guides/minikube/) et Katacoda. -Katacoda fournit un environnement Kubernetes gratuit dans le navigateur. +Ce tutoriel vous montre comment exécuter une application exemple sur Kubernetes en utilisant minikube. +Le tutoriel fournit une image de conteneur qui utilise NGINX pour renvoyer toutes les requêtes. +## {{% heading "objectifs" %}} + +* Déployer une application exemple sur minikube. +* Exécuter l'application. +* Afficher les journaux de l'application. + +## {{% heading "prérequis²" %}} + + +Ce tutoriel suppose que vous avez déjà configuré `minikube`. +Voir __Étape 1__ dans [minikube start](https://minikube.pour les instructions d'installation installation instructions. {{< note >}} -Vous pouvez également suivre ce tutoriel si vous avez installé [Minikube localement](/docs/tasks/tools/install-minikube/). +Exécutez uniquement les instructions de l'__Étape 1, Installation__. Le reste est couvert sur cette page. {{< /note >}} - - -## {{% heading "objectives" %}} - - -* Déployez une application Hello World sur Minikube. -* Lancez l'application. -* Afficher les journaux des applications. - - - -## {{% heading "prerequisites" %}} - - -Ce tutoriel fournit une image de conteneur construite à partir des fichiers suivants : - -{{% codenew language="js" file="minikube/server.js" %}} - -{{% codenew language="conf" file="minikube/Dockerfile" %}} - -Pour plus d'informations sur la commande `docker build`, lisez la documentation de [Docker](https://docs.docker.com/engine/reference/commandline/build/). - +Vous devez également installer `kubectl`. +Voir [Installer les outils](/docs/tasks/tools/#kubectl) pour les instructions d'installation. -## Créer un cluster Minikube +## Créer un cluster minikube -1. Cliquez sur **Lancer le terminal**. +```shell +minikube start +``` - {{< kat-button >}} +## Ouvrir le Tableau de bord - {{< note >}} Si vous avez installé Minikube localement, lancez `minikube start`. {{< /note >}} +Ouvrez le tableau de bord Kubernetes. Vous pouvez le faire de deux façons différentes : -2. Ouvrez le tableau de bord Kubernetes dans un navigateur : +{{< tabs name="dashboard" >}} +{{% tab name="Launch a browser" %}} +Ouvrez un **nouveau** terminal, et exécutez: +```shell +# Démarrez un nouveau terminal et laissez-le en cours d'exécution.. +minikube dashboard +``` + +Maintenant, revenez au terminal où vous avez exécuté `minikube start`. + +{{< note >}} +La commande `dashboard` active l'addon du tableau de bord et ouvre le proxy dans le navigateur par défaut. +Vous pouvez créer des ressources Kubernetes sur le tableau de bord, telles que Deployment et Service. + +Pour savoir comment éviter d'invoquer directement le navigateur à partir du terminal et obtenir une URL pour le tableau de bord Web, consultez l'onglet "Copier et coller l'URL". + +Par défaut, le tableau de bord n'est accessible que depuis le réseau virtuel interne de Kubernetes. La commande `dashboard` crée un proxy temporaire pour rendre le tableau de bord accessible depuis l'extérieur du réseau virtuel Kubernetes. + +Pour arrêter le proxy, exécutez `Ctrl+C` pour quitter le processus. Une fois la commande terminée, le tableau de bord reste en cours d'exécution dans le cluster Kubernetes. Vous pouvez exécuter à nouveau la commande `dashboard` pour créer un autre proxy pour accéder au tableau de bord. +{{< /note >}} + +{{% /tab %}} +{{% tab name="Copier et coller l'URL" %}} + +Si vous ne souhaitez pas que minikube ouvre un navigateur pour vous, exécutez la sous-commande `dashboard` avec le drapeau `--url`. `minikube` affiche une URL que vous pouvez ouvrir dans le navigateur de votre choix. + +Ouvrez un **nouveau** terminal et exécutez: +```shell +# Démarrez un nouveau terminal et laissez-le en cours d'exécution. +minikube dashboard --url +``` + +Maintenant, vous pouvez utiliser cette URL et revenir au terminal où vous avez exécuté `minikube start`. + +{{% /tab %}} +{{< /tabs >}} + +## Créer un Deployment + +Un [*Pod*](/docs/concepts/workloads/pods/) Kubernetes est un groupe de un ou plusieurs Containers, liés ensemble pour les besoins de l'administration et du réseau. Le Pod de ce tutoriel n'a qu'un seul Container. Un [*Deployment*](/docs/concepts/workloads/controllers/deployment/) Kubernetes vérifie l'état de santé de votre Pod et redémarre le Container du Pod s'il se termine. Les Deployments sont la méthode recommandée pour gérer la création et la mise à l'échelle des Pods. + +1. Utilisez la commande `kubectl` create pour créer un Deployment qui gère un Pod. Le Pod exécute un Container basé sur l'image Docker fournie. ```shell - minikube dashboard + # Exécutez une image de conteneur de test qui inclut un serveur web + kubectl create deployment hello-node --image=registry.k8s.io/e2e-test-images/agnhost:2.39 -- /agnhost netexec --http-port=8080 ``` -3. Environnement Katacoda seulement : En haut du volet du terminal, cliquez sur le signe plus, puis cliquez sur **Sélectionner le port pour afficher sur l'hôte 1**. - -4. Environnement Katacoda seulement : Tapez `30000`, puis cliquez sur **Afficher le port**. - -## Créer un déploiement - -Un [*Pod*](/fr/docs/concepts/workloads/pods/pod/) Kubernetes est un groupe d'un ou plusieurs conteneurs, liés entre eux à des fins d'administration et de mise en réseau. -Dans ce tutoriel, le Pod n'a qu'un seul conteneur. -Un [*Déploiement*](/docs/concepts/workloads/controllers/deployment/) Kubernetes vérifie l'état de santé de votre Pod et redémarre le conteneur du Pod s'il se termine. -Les déploiements sont le moyen recommandé pour gérer la création et la mise à l'échelle des Pods. - -1. Utilisez la commande `kubectl create` pour créer un déploiement qui gère un Pod. Le -Pod utilise un conteneur basé sur l'image Docker fournie. - - ```shell - kubectl create deployment hello-node --image=registry.k8s.io/echoserver:1.4 - ``` - -2. Affichez le déploiement : +2. Afficher le Deployment: ```shell kubectl get deployments ``` - Sortie : + La sortie ressemble à: - ```shell - NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE - hello-node 1 1 1 1 1m + ``` + NAME READY UP-TO-DATE AVAILABLE AGE + hello-node 1/1 1 1 1m ``` -3. Voir le Pod : + (Il peut s'écouler un certain temps avant que le pod ne soit disponible. Si vous voyez "0/1", réessayez dans quelques secondes.) + +3. Afficher le Pod: ```shell kubectl get pods ``` - Sortie : - ```shell + La sortie ressemble à: + + ``` NAME READY STATUS RESTARTS AGE hello-node-5f76cf6ccf-br9b5 1/1 Running 0 1m ``` -4. Afficher les événements du cluster : +4. Afficher les événements du cluster: ```shell kubectl get events ``` -5. Voir la configuration de `kubectl` : +5. Afficher la configuration `kubectl`: ```shell kubectl config view ``` - {{< note >}}Pour plus d'informations sur les commandes `kubectl`, voir la [vue d'ensemble de kubectl](/docs/user-guide/kubectl-overview/) {{< /note >}}. +6. Afficher les journaux de l'application pour un conteneur dans un pod (remplacez le nom du pod par celui que vous avez obtenu avec la commande `kubectl get pods`). + + {{< note >}} + Remplacez `hello-node-5f76cf6ccf-br9b5` dans la commande `kubectl logs` par le nom du pod de la sortie de la commande `kubectl get pods`. + {{< /note >}} + + ```shell + kubectl logs hello-node-5f76cf6ccf-br9b5 + ``` -## Créer un service + La sortie ressemble à: -Par défaut, le Pod n'est accessible que par son adresse IP interne dans le cluster Kubernetes. -Pour rendre le conteneur `hello-node` accessible depuis l'extérieur du réseau virtuel Kubernetes, vous devez exposer le Pod comme un [*Service*](/docs/concepts/services-networking/service/) Kubernetes. + ``` + I0911 09:19:26.677397 1 log.go:195] Started HTTP server on port 8080 + I0911 09:19:26.677586 1 log.go:195] Started UDP server on port 8081 + ``` -1. Exposez le Pod à internet en utilisant la commande `kubectl expose` : + +{{< note >}} +Pour plus d'informations sur les commandes `kubectl`, consultez la [kubectl overview](/docs/reference/kubectl/). +{{< /note >}} + +## Créer un Service + +Par défaut, le Pod est accessible uniquement par son adresse IP interne au sein du réseau Kubernetes. Pour rendre le conteneur `hello-node` accessible depuis l'extérieur du réseau virtuel Kubernetes, vous devez exposer le Pod en tant que Kubernetes [*Service*](/docs/concepts/services-networking/service/). + +{{< warning >}} +Le conteneur agnhost a un point de terminaison `/shell`, qui est utile pour le débogage, mais dangereux à exposer à Internet. Ne l'exécutez pas sur un cluster Internet-facing ou un cluster de production. +{{< /warning >}} + +1. Exposez le Pod au réseau public en utilisant la commande `kubectl expose`: ```shell kubectl expose deployment hello-node --type=LoadBalancer --port=8080 ``` - L'indicateur `--type=LoadBalancer` indique que vous voulez exposer votre Service - à l'extérieur du cluster. + Le drapeau `--type=LoadBalancer` indique que vous souhaitez exposer votre Service en dehors du cluster. -2. Affichez le Service que vous venez de créer : + Le code de l'application à l'intérieur de l'image de test ne répond qu'aux requêtes sur le port TCP 8080. Si vous avez utilisé `kubectl expose` pour exposer un port différent, les clients ne pourront pas se connecter à ce port. + +2. Afficher le Service que vous avez créé: ```shell kubectl get services ``` - Sortie : + La sortie ressemble à: - ```shell + ``` NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-node LoadBalancer 10.108.144.78 8080:30369/TCP 21s kubernetes ClusterIP 10.96.0.1 443/TCP 23m ``` - Sur les fournisseurs de cloud qui supportent les load balancers, une adresse IP externe serait fournie pour accéder au Service. - Sur Minikube, le type `LoadBalancer` rend le Service accessible via la commande `minikube service`. + Sur les fournisseurs de cloud qui prennent en charge les équilibreurs de charge, Une adresse IP externe sera provisionnée pour accéder au Service. Sur minikube, le type `LoadBalancer` rend le Service accessible via la commande `minikube service`. -3. Exécutez la commande suivante : +3. Exécutez la commande suivante: ```shell minikube service hello-node ``` -4. Environnement Katacoda seulement : Cliquez sur le signe plus, puis cliquez sur **Sélectionner le port pour afficher sur l'hôte 1**. + Cette commande ouvre une fenêtre de navigateur qui sert votre application et affiche la réponse de l'application. -5. Environnement Katacoda seulement : Tapez `30369` (voir port en face de `8080` dans la sortie services), puis cliquez sur **Afficher le port**. +## Activer les addons - Cela ouvre une fenêtre de navigateur qui sert votre application et affiche le message `Hello World`. +L'outil minikube inclut un ensemble intégré d'{{< glossary_tooltip text="addons" term_id="addons" >}} qui peuvent être activés, désactivés et ouverts dans l'environnement local Kubernetes. -## Activer les extensions - -Minikube dispose d'un ensemble d'extensions intégrées qui peuvent être activées, désactivées et ouvertes dans l'environnement Kubernetes local. - -1. Énumérer les extensions actuellement pris en charge : +1. Liste des addons pris en charge actuellement: ```shell minikube addons list ``` - Sortie: + La sortie ressemble à: ``` addon-manager: enabled - coredns: disabled dashboard: enabled default-storageclass: enabled efk: disabled freshpod: disabled - heapster: disabled + gvisor: disabled + helm-tiller: disabled ingress: disabled - kube-dns: enabled + ingress-dns: disabled + logviewer: disabled metrics-server: disabled nvidia-driver-installer: disabled nvidia-gpu-device-plugin: disabled registry: disabled registry-creds: disabled storage-provisioner: enabled + storage-provisioner-gluster: disabled ``` -2. Activez une extension, par exemple, `heapster` : +2. Activer un addon, par exemple, `metrics-server`: ```shell - minikube addons enable heapster + minikube addons enable metrics-server ``` - Sortie : + La sortie ressemble à: - ```shell - heapster was successfully enabled + ``` + The 'metrics-server' addon is enabled ``` -3. Affichez le pod et le service que vous venez de créer : +3. Afficher le Pod et le Service que vous avez créés en installant cet addon: ```shell kubectl get pod,svc -n kube-system ``` - Sortie : + The output is similar to: - ```shell + ``` NAME READY STATUS RESTARTS AGE - pod/heapster-9jttx 1/1 Running 0 26s + pod/coredns-5644d7b6d9-mh9ll 1/1 Running 0 34m + pod/coredns-5644d7b6d9-pqd2t 1/1 Running 0 34m + pod/metrics-server-67fb648c5 1/1 Running 0 26s + pod/etcd-minikube 1/1 Running 0 34m pod/influxdb-grafana-b29w8 2/2 Running 0 26s pod/kube-addon-manager-minikube 1/1 Running 0 34m - pod/kube-dns-6dcb57bcc8-gv7mw 3/3 Running 0 34m - pod/kubernetes-dashboard-5498ccf677-cgspw 1/1 Running 0 34m + pod/kube-apiserver-minikube 1/1 Running 0 34m + pod/kube-controller-manager-minikube 1/1 Running 0 34m + pod/kube-proxy-rnlps 1/1 Running 0 34m + pod/kube-scheduler-minikube 1/1 Running 0 34m pod/storage-provisioner 1/1 Running 0 34m NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE - service/heapster ClusterIP 10.96.241.45 80/TCP 26s + service/metrics-server ClusterIP 10.96.241.45 80/TCP 26s service/kube-dns ClusterIP 10.96.0.10 53/UDP,53/TCP 34m - service/kubernetes-dashboard NodePort 10.109.29.1 80:30000/TCP 34m service/monitoring-grafana NodePort 10.99.24.54 80:30002/TCP 26s service/monitoring-influxdb ClusterIP 10.111.169.94 8083/TCP,8086/TCP 26s ``` -4. Désactivez `heapster` : +4. Vérifier la sortie de `metrics-server`: ```shell - minikube addons disable heapster + kubectl top pods ``` - Sortie : + La sortie ressemble à: + + ``` + NAME CPU(cores) MEMORY(bytes) + hello-node-ccf4b9788-4jn97 1m 6Mi + ``` + + Si vous voyez le message suivant, attendez un peu et réessayez: + + ``` + error: Metrics API not available + ``` + +5. Désactiver `metrics-server`: ```shell - heapster was successfully disabled + minikube addons disable metrics-server + ``` + + La sortie ressemble à: + + ``` + metrics-server was successfully disabled ``` ## Nettoyage -Vous pouvez maintenant nettoyer les ressources que vous avez créées dans votre cluster : +Maintenant, vous pouvez nettoyer les ressources que vous avez créées dans votre cluster: ```shell kubectl delete service hello-node kubectl delete deployment hello-node ``` -Si nécessaire, arrêtez la machine virtuelle Minikube (VM) : +Arrêter le cluster Minikube ```shell minikube stop ``` -Si nécessaire, effacez la VM Minikube : +Facultatif, supprimer la VM Minikube: ```shell +# Facultatif minikube delete ``` +Si vous souhaitez à nouveau utiliser minikube pour en apprendre davantage sur Kubernetes, vous n'avez pas besoin de le supprimer. +## Conclusion + +Cette page a couvert les aspects de base pour mettre en route un cluster minikube. Vous êtes maintenant prêt à déployer des applications. ## {{% heading "whatsnext" %}} -* En savoir plus sur les [déploiement](/docs/concepts/workloads/controllers/deployment/). -* En savoir plus sur le [Déploiement d'applications](/docs/user-guide/deploying-applications/). -* En savoir plus sur les [Services](/docs/concepts/services-networking/service/). - +* Tutoriel pour _[déployer votre première application sur Kubernetes avec kubectl.](/docs/tutorials/kubernetes-basics/deploy-app/deploy-intro/)_. +* En savoir plus sur les [objets Deployment](/docs/concepts/workloads/controllers/deployment/). +* En savoir plus sur le [déploiement d'applications](/docs/tasks/run-application/run-stateless-application-deployment/). +* En savoir plus sur les [objets Service](/docs/concepts/services-networking/service/). From bbe01fcf65c0772440c0ddd7aec90695889027ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Lizurey?= Date: Thu, 1 Aug 2024 17:31:54 +0200 Subject: [PATCH 02/18] French translation of hello minikube --- content/fr/docs/tutorials/hello-minikube.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/content/fr/docs/tutorials/hello-minikube.md b/content/fr/docs/tutorials/hello-minikube.md index 940fc48115..2a4f2c8cfc 100644 --- a/content/fr/docs/tutorials/hello-minikube.md +++ b/content/fr/docs/tutorials/hello-minikube.md @@ -54,7 +54,7 @@ minikube dashboard Maintenant, revenez au terminal où vous avez exécuté `minikube start`. {{< note >}} -La commande `dashboard` active l'addon du tableau de bord et ouvre le proxy dans le navigateur par défaut. +La commande `dashboard` active l'extension du tableau de bord et ouvre le proxy dans le navigateur par défaut. Vous pouvez créer des ressources Kubernetes sur le tableau de bord, telles que Deployment et Service. Pour savoir comment éviter d'invoquer directement le navigateur à partir du terminal et obtenir une URL pour le tableau de bord Web, consultez l'onglet "Copier et coller l'URL". @@ -195,11 +195,11 @@ Le conteneur agnhost a un point de terminaison `/shell`, qui est utile pour le d Cette commande ouvre une fenêtre de navigateur qui sert votre application et affiche la réponse de l'application. -## Activer les addons +## Activer les extensions L'outil minikube inclut un ensemble intégré d'{{< glossary_tooltip text="addons" term_id="addons" >}} qui peuvent être activés, désactivés et ouverts dans l'environnement local Kubernetes. -1. Liste des addons pris en charge actuellement: +1. Liste des extensions pris en charge actuellement: ```shell minikube addons list @@ -227,7 +227,7 @@ L'outil minikube inclut un ensemble intégré d'{{< glossary_tooltip text="addon storage-provisioner-gluster: disabled ``` -2. Activer un addon, par exemple, `metrics-server`: +2. Activer une extension, par exemple, `metrics-server`: ```shell minikube addons enable metrics-server @@ -239,7 +239,7 @@ L'outil minikube inclut un ensemble intégré d'{{< glossary_tooltip text="addon The 'metrics-server' addon is enabled ``` -3. Afficher le Pod et le Service que vous avez créés en installant cet addon: +3. Afficher le Pod et le Service que vous avez créés en installant cette extension: ```shell kubectl get pod,svc -n kube-system @@ -301,20 +301,20 @@ L'outil minikube inclut un ensemble intégré d'{{< glossary_tooltip text="addon ## Nettoyage -Maintenant, vous pouvez nettoyer les ressources que vous avez créées dans votre cluster: +Vous pouvez maintenant nettoyer les ressources que vous avez créées dans votre cluster: ```shell kubectl delete service hello-node kubectl delete deployment hello-node ``` -Arrêter le cluster Minikube +Si nécessaire, arrêtez la machine virtuelle Minikube (VM) ```shell minikube stop ``` -Facultatif, supprimer la VM Minikube: +Si nécessaire, effacez la VM Minikube: ```shell # Facultatif From a9ef1594f339635d2688bd478c3751078d621b63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Lizurey?= Date: Thu, 1 Aug 2024 18:01:52 +0200 Subject: [PATCH 03/18] Update content/fr/docs/tutorials/hello-minikube.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Aurélien Perrier --- content/fr/docs/tutorials/hello-minikube.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/fr/docs/tutorials/hello-minikube.md b/content/fr/docs/tutorials/hello-minikube.md index 2a4f2c8cfc..5ac472334c 100644 --- a/content/fr/docs/tutorials/hello-minikube.md +++ b/content/fr/docs/tutorials/hello-minikube.md @@ -245,7 +245,7 @@ L'outil minikube inclut un ensemble intégré d'{{< glossary_tooltip text="addon kubectl get pod,svc -n kube-system ``` - The output is similar to: + La sortie devrait être simulaire à : ``` NAME READY STATUS RESTARTS AGE From 28b6ac6acc0ba5c281606bc4bac09bd9f71a78d6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Lizurey?= Date: Thu, 1 Aug 2024 18:02:01 +0200 Subject: [PATCH 04/18] Update content/fr/docs/tutorials/hello-minikube.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Aurélien Perrier --- content/fr/docs/tutorials/hello-minikube.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/fr/docs/tutorials/hello-minikube.md b/content/fr/docs/tutorials/hello-minikube.md index 5ac472334c..ca594f53e9 100644 --- a/content/fr/docs/tutorials/hello-minikube.md +++ b/content/fr/docs/tutorials/hello-minikube.md @@ -1,5 +1,5 @@ --- -title: Bienvenue sur minikube +title: Bienvenue sur Minikube content_type: tutorial weight: 5 card: From 705351554cf1a71dd85cc6c9407dd1f05017e5cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Lizurey?= Date: Thu, 1 Aug 2024 18:02:11 +0200 Subject: [PATCH 05/18] Update content/fr/docs/tutorials/hello-minikube.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Aurélien Perrier --- content/fr/docs/tutorials/hello-minikube.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/fr/docs/tutorials/hello-minikube.md b/content/fr/docs/tutorials/hello-minikube.md index ca594f53e9..5f8f078977 100644 --- a/content/fr/docs/tutorials/hello-minikube.md +++ b/content/fr/docs/tutorials/hello-minikube.md @@ -82,7 +82,7 @@ Maintenant, vous pouvez utiliser cette URL et revenir au terminal où vous avez ## Créer un Deployment -Un [*Pod*](/docs/concepts/workloads/pods/) Kubernetes est un groupe de un ou plusieurs Containers, liés ensemble pour les besoins de l'administration et du réseau. Le Pod de ce tutoriel n'a qu'un seul Container. Un [*Deployment*](/docs/concepts/workloads/controllers/deployment/) Kubernetes vérifie l'état de santé de votre Pod et redémarre le Container du Pod s'il se termine. Les Deployments sont la méthode recommandée pour gérer la création et la mise à l'échelle des Pods. +Un [*Pod*](/docs/concepts/workloads/pods/) Kubernetes est un groupe de un ou plusieurs conteneurs, liés ensemble pour les besoins de l'administration et du réseau. Le Pod de ce tutoriel n'a qu'un seul conteneur. Un [*Deployment*](/docs/concepts/workloads/controllers/deployment/) Kubernetes vérifie l'état de santé de votre Pod et redémarre le conteneur du Pod s'il se termine. Les Deployments sont la méthode recommandée pour gérer la création et la mise à l'échelle des Pods. 1. Utilisez la commande `kubectl` create pour créer un Deployment qui gère un Pod. Le Pod exécute un Container basé sur l'image Docker fournie. From 9962c160f916394cdc2be562a1023cb73bfe5fdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Lizurey?= Date: Thu, 1 Aug 2024 18:02:18 +0200 Subject: [PATCH 06/18] Update content/fr/docs/tutorials/hello-minikube.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Aurélien Perrier --- content/fr/docs/tutorials/hello-minikube.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/fr/docs/tutorials/hello-minikube.md b/content/fr/docs/tutorials/hello-minikube.md index 5f8f078977..e532845d0b 100644 --- a/content/fr/docs/tutorials/hello-minikube.md +++ b/content/fr/docs/tutorials/hello-minikube.md @@ -84,7 +84,7 @@ Maintenant, vous pouvez utiliser cette URL et revenir au terminal où vous avez Un [*Pod*](/docs/concepts/workloads/pods/) Kubernetes est un groupe de un ou plusieurs conteneurs, liés ensemble pour les besoins de l'administration et du réseau. Le Pod de ce tutoriel n'a qu'un seul conteneur. Un [*Deployment*](/docs/concepts/workloads/controllers/deployment/) Kubernetes vérifie l'état de santé de votre Pod et redémarre le conteneur du Pod s'il se termine. Les Deployments sont la méthode recommandée pour gérer la création et la mise à l'échelle des Pods. -1. Utilisez la commande `kubectl` create pour créer un Deployment qui gère un Pod. Le Pod exécute un Container basé sur l'image Docker fournie. +1. Utilisez la commande `kubectl` create pour créer un Deployment qui gère un Pod. Le Pod exécute un conteneur basé sur l'image Docker fournie. ```shell # Exécutez une image de conteneur de test qui inclut un serveur web From 3c8eb5ea703d1e2033e3069b0d7937212bf39287 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9sar=20Lizurey?= Date: Thu, 1 Aug 2024 18:02:26 +0200 Subject: [PATCH 07/18] Update content/fr/docs/tutorials/hello-minikube.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Aurélien Perrier --- content/fr/docs/tutorials/hello-minikube.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/fr/docs/tutorials/hello-minikube.md b/content/fr/docs/tutorials/hello-minikube.md index e532845d0b..d91bf2f2a3 100644 --- a/content/fr/docs/tutorials/hello-minikube.md +++ b/content/fr/docs/tutorials/hello-minikube.md @@ -197,7 +197,7 @@ Le conteneur agnhost a un point de terminaison `/shell`, qui est utile pour le d ## Activer les extensions -L'outil minikube inclut un ensemble intégré d'{{< glossary_tooltip text="addons" term_id="addons" >}} qui peuvent être activés, désactivés et ouverts dans l'environnement local Kubernetes. +La commande `minikube` inclut un ensemble intégré d'{{< glossary_tooltip text="addons" term_id="addons" >}} qui peuvent être activés, désactivés et ouverts dans l'environnement local Kubernetes. 1. Liste des extensions pris en charge actuellement: From d566b58643f645f85a5cf88352f5018402dca242 Mon Sep 17 00:00:00 2001 From: Dipesh Rawat Date: Mon, 5 Aug 2024 15:24:14 +0100 Subject: [PATCH 08/18] Fix table rendering issues within admonition blocks --- assets/scss/_custom.scss | 11 +++++++++++ content/en/docs/test.md | 7 ++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/assets/scss/_custom.scss b/assets/scss/_custom.scss index f5cebcf24e..aee302bd6d 100644 --- a/assets/scss/_custom.scss +++ b/assets/scss/_custom.scss @@ -1469,4 +1469,15 @@ body.td-search #search { section.k8s-birthday-override:has(div.k8s-birthday-override.revert-to-previous input:not(:checked)) + section { display: none; visibility: hidden; +} + +/* Apply site-wide table styles for tables in alert callouts (note, caution, warning) */ +.alert { + &.alert-info, &.alert-caution, &.alert-danger { + > table { + @extend .table-striped; + @extend .table-responsive; + @extend .table; + } + } } \ No newline at end of file diff --git a/content/en/docs/test.md b/content/en/docs/test.md index 367fecb5b1..42514fe160 100644 --- a/content/en/docs/test.md +++ b/content/en/docs/test.md @@ -370,7 +370,12 @@ Notes catch the reader's attention without a sense of urgency. You can have multiple paragraphs and block-level elements inside an admonition. -| Or | a | table | +You can also add tables to organize and highlight key information. + +| Header 1 | Header 2 | Header 3 | +| -------- | -------- | -------- | +| Data 1 | Data A | Info X | +| Data 2 | Data B | Info Y | {{< /note >}} {{< caution >}} From 790f58c3ae24ccf67457f9cf793f41e659b1a0e4 Mon Sep 17 00:00:00 2001 From: Arhell Date: Tue, 6 Aug 2024 01:35:23 +0300 Subject: [PATCH 09/18] [zh] Update stale StatefulSet with Cassandra example --- .../examples/application/cassandra/cassandra-statefulset.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/zh-cn/examples/application/cassandra/cassandra-statefulset.yaml b/content/zh-cn/examples/application/cassandra/cassandra-statefulset.yaml index 7a36c6f550..50e243e4bd 100644 --- a/content/zh-cn/examples/application/cassandra/cassandra-statefulset.yaml +++ b/content/zh-cn/examples/application/cassandra/cassandra-statefulset.yaml @@ -15,7 +15,7 @@ spec: labels: app: cassandra spec: - terminationGracePeriodSeconds: 1800 + terminationGracePeriodSeconds: 500 containers: - name: cassandra image: gcr.io/google-samples/cassandra:v13 @@ -43,7 +43,7 @@ spec: lifecycle: preStop: exec: - command: + command: - /bin/sh - -c - nodetool drain From 1aeaaa5a53d239266d4dd2815b3671e7c05f3f4a Mon Sep 17 00:00:00 2001 From: xin gu <418294249@qq.com> Date: Mon, 5 Aug 2024 11:16:56 +0800 Subject: [PATCH 10/18] sync kube-proxy-config.v1alpha1 Update kube-proxy-config.v1alpha1.md Update kube-proxy-config.v1alpha1.md Update kube-proxy-config.v1alpha1.md --- .../config-api/kube-proxy-config.v1alpha1.md | 499 +++++++++++------- 1 file changed, 317 insertions(+), 182 deletions(-) diff --git a/content/zh-cn/docs/reference/config-api/kube-proxy-config.v1alpha1.md b/content/zh-cn/docs/reference/config-api/kube-proxy-config.v1alpha1.md index 08a1f5a496..8c5c3fc1ed 100644 --- a/content/zh-cn/docs/reference/config-api/kube-proxy-config.v1alpha1.md +++ b/content/zh-cn/docs/reference/config-api/kube-proxy-config.v1alpha1.md @@ -27,8 +27,6 @@ auto_generated: true - [KubeProxyConfiguration](#kubeproxy-config-k8s-io-v1alpha1-KubeProxyConfiguration) -- [KubeSchedulerConfiguration](#kubescheduler-config-k8s-io-v1beta3-KubeSchedulerConfiguration) - - [KubeSchedulerConfiguration](#kubescheduler-config-k8s-io-v1-KubeSchedulerConfiguration) - [GenericControllerManagerConfiguration](#controllermanager-config-k8s-io-v1alpha1-GenericControllerManagerConfiguration) @@ -105,8 +103,6 @@ default value of 'application/json'. This field will control all connections to --> **出现在:** -- [KubeSchedulerConfiguration](#kubescheduler-config-k8s-io-v1beta3-KubeSchedulerConfiguration) - - [KubeSchedulerConfiguration](#kubescheduler-config-k8s-io-v1-KubeSchedulerConfiguration) - [GenericControllerManagerConfiguration](#controllermanager-config-k8s-io-v1alpha1-GenericControllerManagerConfiguration) @@ -154,8 +150,6 @@ enableProfiling is true. --> **出现在:** -- [KubeSchedulerConfiguration](#kubescheduler-config-k8s-io-v1beta3-KubeSchedulerConfiguration) - - [KubeSchedulerConfiguration](#kubescheduler-config-k8s-io-v1-KubeSchedulerConfiguration) - [GenericControllerManagerConfiguration](#controllermanager-config-k8s-io-v1alpha1-GenericControllerManagerConfiguration) @@ -298,16 +292,61 @@ KubeProxyConfiguration 包含用来配置 Kubernetes 代理服务器的所有配 用来启用或者禁用测试性质的功能特性。

+clientConnection [必需]
+ClientConnectionConfiguration + + +

+ + clientConnection 指定了代理服务器与 apiserver 通信时应使用的 kubeconfig 文件和客户端连接设置。 +

+ + +logging [必需]
+LoggingConfiguration + + +

+ + logging 指定了日志记录的选项。有关更多信息, + 请参阅日志选项。 +

+ + +hostnameOverride [必需]
+string + + +

+ + hostnameOverride 如果不为空,将作为 kube-proxy 所运行节点的名称使用。 + 如果未设置,则默认使用节点的主机名作为节点名称。 +

+ + bindAddress [必需]
string -

bindAddress 字段是代理服务器提供服务时所用 IP 地址(设置为 0.0.0.0 -时意味着在所有网络接口上提供服务)。

+

bindAddress 可以用来指定 kube-proxy 所认为的节点主 IP。请注意, + 虽然名称中有绑定的意思,但实际上 kube-proxy 并不会将任何套接字绑定到这个 IP 地址上。 +

healthzBindAddress [必需]
@@ -315,11 +354,13 @@ for all interfaces) -

healthzBindAddress 字段是健康状态检查服务器提供服务时所使用的 IP 地址和端口, - 默认设置为 '0.0.0.0:10256'。

+

healthzBindAddress 是健康检查服务器的 IP 地址和端口,默认情况下, + 如果 bindAddress 未设置或为 IPv4,则为 "0.0.0.0:10256";如果 bindAddress 为 IPv6, + 则为 "[::]:10256"。

metricsBindAddress [必需]
@@ -327,11 +368,15 @@ defaulting to 0.0.0.0:10256 -

metricsBindAddress 字段是指标服务器提供服务时所使用的 IP 地址和端口, - 默认设置为 '127.0.0.1:10249'(设置为 0.0.0.0 意味着在所有接口上提供服务)。

+

metricsBindAddress 是指标服务器监听的 IP 地址和端口,默认情况下, + 如果 bindAddress 未设置或为 IPv4,则为 "127.0.0.1:10249"; + 如果 bindAddress 为 IPv6,则为 "[::1]:10249"。 + (设置为 "0.0.0.0:10249" / "[::]:10249" 以绑定到所有接口。)。

bindAddressHardFail [必需]
@@ -339,7 +384,8 @@ defaulting to 127.0.0.1:10249 (set to 0.0.0.0 for all interfaces)

bindAddressHardFail 字段设置为 true 时, kube-proxy 将无法绑定到某端口这类问题视为致命错误并直接退出。

@@ -357,41 +403,24 @@ Profiling handlers will be handled by metrics server. 性能分析处理程序将由指标服务器执行。

-clusterCIDR [必需]
+showHiddenMetricsForVersion [必需]
string -

clusterCIDR 字段是集群中 Pod 所使用的 CIDR 范围。 - 这一地址范围用于对来自集群外的请求流量进行桥接。 - 如果未设置,则 kube-proxy 不会对非集群内部的流量做桥接。

+

showHiddenMetricsForVersion 用于指定要显示隐藏指标的版本。

-hostnameOverride [必需]
-string +mode [必需]
+ProxyMode -

hostnameOverride 字段非空时, - 所给的字符串(而不是实际的主机名)将被用作 kube-proxy 的标识。

- - -clientConnection [必需]
-ClientConnectionConfiguration - - - -

clientConnection 字段给出代理服务器与 API - 服务器通信时要使用的 kubeconfig 文件和客户端链接设置。

+

mode 指定要使用的代理模式。

iptables [必需]
@@ -414,83 +443,14 @@ server to use when communicating with the apiserver.

ipvs 字段中包含与 ipvs 相关的配置选项。

-oomScoreAdj [必需]
-int32 +nftables [必需]
+KubeProxyNFTablesConfiguration -

oomScoreAdj 字段是为 kube-proxy 进程所设置的 oom-score-adj 值。 - 此设置值必须介于 [-1000, 1000] 范围内。

- - -mode [必需]
-ProxyMode - - - -

mode 字段用来设置将使用的代理模式。

- - -portRange [必需]
-string - - - -

portRange 字段是主机端口的范围,形式为 ‘beginPort-endPort’(包含边界), - 用来设置代理服务所使用的端口。如果未指定(即 ‘0-0’),则代理服务会随机选择端口号。

- - -conntrack [必需]
-KubeProxyConntrackConfiguration - - - -

conntrack 字段包含与 conntrack 相关的配置选项。

- - -configSyncPeriod [必需]
-meta/v1.Duration - - - -

configSyncPeriod 字段是从 API 服务器刷新配置的频率。此值必须大于 0。

- - -nodePortAddresses [必需]
-[]string - - - -

nodePortAddresses 字段是 kube-proxy 进程的 - --nodeport-addresses 命令行参数设置。 - 此值必须是合法的 IP 段。所给的 IP 段会作为参数来选择 NodePort 类型服务所使用的接口。 - 如果有人希望将本地主机(Localhost)上的服务暴露给本地访问, - 同时暴露在某些其他网络接口上以实现某种目标,可以使用 IP 段的列表。 - 如果此值被设置为 "127.0.0.0/8",则 kube-proxy 将仅为 NodePort - 服务选择本地回路(loopback)接口。 - 如果此值被设置为非零的 IP 段,则 kube-proxy 会对 IP 作过滤,仅使用适用于当前节点的 IP 地址。 - 空的字符串列表意味着选择所有网络接口。

+

nftables 包含与 nftables 相关的配置选项。

winkernel [必需]
@@ -500,18 +460,7 @@ An empty string slice is meant to select all network interfaces. -

winkernel 字段包含与 winkernel 相关的配置选项。

- - -showHiddenMetricsForVersion [必需]
-string - - - -

showHiddenMetricsForVersion 字段给出的是一个 Kubernetes 版本号字符串, - 用来设置你希望显示隐藏指标的版本。

+

winkernel 包含与 winkernel 相关的配置选项。

detectLocalMode [必需]
@@ -519,33 +468,94 @@ An empty string slice is meant to select all network interfaces. -

detectLocalMode 字段用来确定检测本地流量的方式,默认为 LocalModeClusterCIDR。

+

detectLocalMode 确定用于检测本地流量的模式,默认为 LocalModeClusterCIDR。

detectLocal [必需]
DetectLocalConfiguration - -

detectLocal 字段包含与 DetectLocalMode 相关的可选配置设置。

+ +

detectLocal 包含与 DetectLocalMode 相关的可选配置设置。

- -logging [必需]
-LoggingConfiguration +clusterCIDR [必需]
+string -

logging 字段指定记录日志的选项。更多细节参阅 - Logs Options

+

clusterCIDR 指定集群中 Pod 的 CIDR 范围。 + (对于双栈集群,这个参数可以是一个用逗号分隔的双栈 CIDR 范围对。) + 当 DetectLocalMode 设置为 LocalModeClusterCIDR 时,如果流量的源 IP 在这个范围内, + kube-proxy 会将其视为本地流量。(否则不会使用此设置。)

+ + +nodePortAddresses [必需]
+[]string + + + +

nodePortAddresses 是一个包含有效节点 IP 的 CIDR 范围列表。 + 如果设置了此项,只有来自这些范围内的节点 IP 的 NodePort 服务连接才会被接受。 + 如果未设置,将接受所有本地 IP 的 NodePort 连接。

+ + +oomScoreAdj [必需]
+int32 + + + +

oomScoreAdj 是 kube-proxy 进程的 OOM 评分调整值。该值必须在 [-1000, 1000] 范围内。

+ + +conntrack [必需]
+KubeProxyConntrackConfiguration + + + +

conntrack 包含与 conntrack 相关的配置选项。

+ + +configSyncPeriod [必需]
+meta/v1.Duration + + + +

configSyncPeriod 指定从 apiserver 刷新配置的频率,必须大于 0。

+ + + +portRange [必需]
+string + + + +

portRange 之前用于配置用户空间代理,但现在已不再使用。

@@ -575,13 +585,13 @@ DetectLocalConfiguration 包含与 DetectLocalMode 选项相关的可选设置 -

bridgeInterface 字段是一个表示单个桥接接口名称的字符串参数。 - Kube-proxy 将来自这个给定桥接接口的流量视为本地流量。 - 如果 DetectLocalMode 设置为 LocalModeBridgeInterface,则应设置该参数。

+

bridgeInterface 指的是桥接接口的名称。 + 当 DetectLocalMode 设置为 LocalModeBridgeInterface 时, + 如果流量来自这个桥接接口,kube-proxy 会将其视为本地流量。

interfaceNamePrefix [必需]
@@ -589,13 +599,13 @@ This argument should be set if DetectLocalMode is set to LocalModeBridgeInterfac -

interfaceNamePrefix 字段是一个表示单个接口前缀名称的字符串参数。 - Kube-proxy 将来自一个或多个与给定前缀匹配的接口流量视为本地流量。 - 如果 DetectLocalMode 设置为 LocalModeInterfaceNamePrefix,则应设置该参数。

+

interfaceNamePrefix 是接口名称的前缀。 + 当 DetectLocalMode 设置为 LocalModeInterfaceNamePrefix 时, + 如果流量来自任何名称以该前缀开头的接口,kube-proxy 会将其视为本地流量。

@@ -638,7 +648,7 @@ per CPU core (0 to leave the limit as-is and ignore min).

min 字段给出要分配的链接跟踪记录个数下限。 设置此值时会忽略 maxPerCore 的值(将 maxPerCore 设置为 0 时不会调整上限值)。

@@ -670,6 +680,46 @@ table. (e.g. '60s'). Must be greater than 0 to set. 此设置值必须大于 0。

+tcpBeLiberal [必需]
+bool + + + +

tcpBeLiberal 如果设置为 true, + kube-proxy 将配置 conntrack 以宽松模式运行, + 对于 TCP 连接和超出窗口序列号的报文不会被标记为 INVALID。

+ + +udpTimeout [必需]
+meta/v1.Duration + + + +

udpTimeout 指定处于 UNREPLIED 状态的空闲 UDP conntrack 条目在 conntrack 表中保留的时间 + (例如 '30s')。该值必须大于 0。

+ + +udpStreamTimeout [必需]
+meta/v1.Duration + + + +

udpStreamTimeout 指定处于 ASSURED 状态的空闲 UDP conntrack 条目在 conntrack 表中保留的时间 + (例如 '300s')。该值必须大于 0。

+ + @@ -698,10 +748,10 @@ KubeProxyIPTablesConfiguration 包含用于 Kubernetes 代理服务器的、与

masqueradeBit 字段是 iptables fwmark 空间中的具体一位, - 用来在纯 iptables 代理模式下设置 SNAT。此值必须介于 [0, 31](含边界值)。

+ 用来在 iptables 或 ipvs 代理模式下设置 SNAT。此值必须介于 [0, 31](含边界值)。

masqueradeAll [必需]
@@ -709,19 +759,25 @@ the pure iptables proxy mode. Values must be within the range [0, 31].

masqueradeAll 字段用来通知 kube-proxy - 在使用纯 iptables 代理模式时对所有流量执行 SNAT 操作。

+ 在使用 iptables 或 ipvs 代理模式时对所有流量执行 SNAT 操作。这在某些 CNI 插件中可能是必需的。

localhostNodePorts [必需]
bool - -

localhostNodePorts 告知 kube-proxy 允许通过 localhost 访问服务 NodePorts(仅 iptables 模式)

+ +

localhostNodePorts 如果设置为 false, + 则会通知 kube-proxy 禁用通过本地主机访问 NodePort 服务的旧有行为。 + (仅适用于 iptables 模式和 IPv4;在其他代理模式或 IPv6 下,不允许本地主机访问 NodePort 服务。)

syncPeriod [必需]
@@ -729,11 +785,12 @@ localhost (iptables mode only)--> -

syncPeriod 字段给出 iptables - 规则的刷新周期(例如,'5s'、'1m'、'2h22m')。此值必须大于 0。

+

syncPeriod 是时间间隔(例如 '5s'、'1m'、'2h22m'), + 指示各种重新同步和清理操作的执行频率。该值必须大于 0。

minSyncPeriod [必需]
@@ -741,10 +798,12 @@ localhost (iptables mode only)--> -

minSyncPeriod 字段给出 iptables - 规则被刷新的最小周期(例如,'5s'、'1m'、'2h22m')。

+

minSyncPeriod 是 iptables 规则重新同步的最小时间间隔(例如 '5s'、'1m'、'2h22m')。 + 如果值为 0,表示每次服务或 EndpointSlice 发生变化时都会立即重新同步 iptables。

@@ -774,11 +833,12 @@ KubeProxyIPVSConfiguration 包含用于 Kubernetes 代理服务器的、与 ipvs -

syncPeriod 字段给出 ipvs 规则的刷新周期(例如,'5s'、'1m'、'2h22m')。 - 此值必须大于 0。

+

syncPeriod 是各种重新同步和清理操作执行频率的时间间隔(例如 '5s', '1m', '2h22m')。 + 该值必须大于 0

minSyncPeriod [必需]
@@ -786,9 +846,12 @@ KubeProxyIPVSConfiguration 包含用于 Kubernetes 代理服务器的、与 ipvs -

minSyncPeriod 字段给出 ipvs 规则被刷新的最小周期(例如,'5s'、'1m'、'2h22m')。

+

minSyncPeriod 是 IPVS 规则重新同步之间的最小时间间隔(例如 '5s', '1m', '2h22m')。 + 值为 0 表示每次服务或 EndpointSlice 发生变化时都会立即触发 IPVS 重新同步。

scheduler [必需]
@@ -796,9 +859,9 @@ KubeProxyIPVSConfiguration 包含用于 Kubernetes 代理服务器的、与 ipvs -

IPVS 调度器。

+

scheduler 是用于 IPVS 的调度器。

excludeCIDRs [必需]
@@ -806,7 +869,7 @@ KubeProxyIPVSConfiguration 包含用于 Kubernetes 代理服务器的、与 ipvs

excludeCIDRs 字段取值为一个 CIDR 列表,ipvs 代理程序在清理 IPVS 服务时不应触碰这些 IP 地址。

@@ -817,7 +880,7 @@ when cleaning up ipvs services.

strictARP 字段用来配置 arp_ignore 和 arp_announce,以避免(错误地)响应来自 kube-ipvs0 接口的 @@ -863,6 +926,78 @@ The default value is 0, which preserves the current timeout value on the system. +## `KubeProxyNFTablesConfiguration` {#kubeproxy-config-k8s-io-v1alpha1-KubeProxyNFTablesConfiguration} + + +**出现在:** + +- [KubeProxyConfiguration](#kubeproxy-config-k8s-io-v1alpha1-KubeProxyConfiguration) + + +

KubeProxyNFTablesConfiguration 包含 Kubernetes 代理服务器的 nftables 相关配置详细信息。

+ + + + + + + + + + + + + + + + + + +
FieldDescription
masqueradeBit [必需]
+int32 +
+ +

masqueradeBit 字段是 iptables fwmark 空间中的具体一位, + 用来在 nftables 代理模式下设置 SNAT。此值必须介于 [0, 31](含边界值)。

+
masqueradeAll [必需]
+bool +
+ +

masqueradeAll 通知 kube-proxy 在使用 nftables 模式时, + 对发送到服务集群 IP 的所有流量执行 SNAT。这在某些 CNI 插件中可能是必需的。

+
syncPeriod [必需]
+meta/v1.Duration +
+ +

syncPeriod 表示各种重新同步和清理操作执行频率的时间间隔(例如 '5s', '1m', '2h22m')。 + 该值必须大于 0。

+
minSyncPeriod [必需]
+meta/v1.Duration +
+ +

minSyncPeriod是 iptables 规则重新同步之间的最小时间间隔(例如 '5s', '1m', '2h22m')。 + 值为 0 时,表示每次服务或 EndpointSlice 发生变化时都会立即重新同步 iptables。

+
+ ## `KubeProxyWinkernelConfiguration` {#kubeproxy-config-k8s-io-v1alpha1-KubeProxyWinkernelConfiguration}

sourceVip 字段是执行负载均衡时进行 NAT 转换所使用的源端 VIP 端点 IP 地址。

@@ -920,7 +1055,7 @@ with DSR

rootHnsEndpointName @@ -932,7 +1067,7 @@ l2bridge for root network namespace

forwardHealthCheckVip From 211dc5c4007bae1489045bfa559faed417543b9e Mon Sep 17 00:00:00 2001 From: Arhell Date: Wed, 7 Aug 2024 01:51:36 +0300 Subject: [PATCH 11/18] [ja] Update stale StatefulSet with Cassandra example --- .../examples/application/cassandra/cassandra-statefulset.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/ja/examples/application/cassandra/cassandra-statefulset.yaml b/content/ja/examples/application/cassandra/cassandra-statefulset.yaml index a7bdbedc9c..44b78bdafd 100644 --- a/content/ja/examples/application/cassandra/cassandra-statefulset.yaml +++ b/content/ja/examples/application/cassandra/cassandra-statefulset.yaml @@ -15,7 +15,7 @@ spec: labels: app: cassandra spec: - terminationGracePeriodSeconds: 1800 + terminationGracePeriodSeconds: 500 containers: - name: cassandra image: gcr.io/google-samples/cassandra:v13 @@ -43,7 +43,7 @@ spec: lifecycle: preStop: exec: - command: + command: - /bin/sh - -c - nodetool drain From da44bfa406ac4dc54422ab7354ba1272966a8f8c Mon Sep 17 00:00:00 2001 From: Dipesh Rawat Date: Wed, 7 Aug 2024 01:00:52 +0100 Subject: [PATCH 12/18] Refine click-to-zoom for Docsy --- {static => assets}/js/zoom.js | 0 layouts/partials/head.html | 5 ----- layouts/partials/hooks/head-end.html | 11 +++++++++++ 3 files changed, 11 insertions(+), 5 deletions(-) rename {static => assets}/js/zoom.js (100%) diff --git a/static/js/zoom.js b/assets/js/zoom.js similarity index 100% rename from static/js/zoom.js rename to assets/js/zoom.js diff --git a/layouts/partials/head.html b/layouts/partials/head.html index 3010fd201e..2fa098e3ed 100644 --- a/layouts/partials/head.html +++ b/layouts/partials/head.html @@ -91,11 +91,6 @@ {{- end -}} - -{{- if .HasShortcode "figure" -}} - -{{- end -}} - {{- if eq (lower .Params.cid) "community" -}} {{- if eq .Params.community_styles_migrated true -}} diff --git a/layouts/partials/hooks/head-end.html b/layouts/partials/hooks/head-end.html index 82d3fa3e20..71d369be21 100644 --- a/layouts/partials/hooks/head-end.html +++ b/layouts/partials/hooks/head-end.html @@ -13,3 +13,14 @@ {{- if .HasShortcode "cncf-landscape" -}} {{- end -}} + +{{- if .HasShortcode "figure" -}} + + {{- if hugo.IsProduction -}} + {{- $zoomJs := resources.Get "js/zoom.js" | minify | fingerprint -}} + + {{- else -}} + {{- $zoomJs := resources.Get "js/zoom.js" -}} + + {{- end -}} +{{- end -}} \ No newline at end of file From 8a5fb77953a1f6c4dcc07d947190ca4589e23afe Mon Sep 17 00:00:00 2001 From: Jeremy Rickard Date: Wed, 7 Aug 2024 09:11:04 -0600 Subject: [PATCH 13/18] Delay patch releases one day Signed-off-by: Jeremy Rickard --- data/releases/schedule.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/data/releases/schedule.yaml b/data/releases/schedule.yaml index e095045b3c..620da49458 100644 --- a/data/releases/schedule.yaml +++ b/data/releases/schedule.yaml @@ -9,7 +9,7 @@ schedules: next: cherryPickDeadline: "2024-08-09" release: 1.30.4 - targetDate: "2024-08-13" + targetDate: "2024-08-14" previousPatches: - cherryPickDeadline: "2024-07-12" release: 1.30.3 @@ -29,7 +29,7 @@ schedules: next: cherryPickDeadline: "2024-08-09" release: 1.29.8 - targetDate: "2024-08-13" + targetDate: "2024-08-14" previousPatches: - cherryPickDeadline: "2024-07-12" release: 1.29.7 @@ -61,7 +61,7 @@ schedules: next: cherryPickDeadline: "2024-08-09" release: 1.28.13 - targetDate: "2024-08-13" + targetDate: "2024-08-14" previousPatches: - cherryPickDeadline: "2024-07-12" release: 1.28.12 @@ -106,7 +106,7 @@ schedules: releaseDate: "2023-08-15" upcoming_releases: - cherryPickDeadline: "2024-08-09" - targetDate: "2024-08-13" + targetDate: "2024-08-14" - cherryPickDeadline: "2024-09-06" targetDate: "2024-09-10" - cherryPickDeadline: "2024-10-11" From 1c9bcc4bb5e45983e427a9552f6235cd69736c22 Mon Sep 17 00:00:00 2001 From: Ivan ROGER Date: Wed, 7 Aug 2024 17:37:15 +0200 Subject: [PATCH 14/18] Add missing closing brace in CEL example table File: cel.md --- content/en/docs/reference/using-api/cel.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/docs/reference/using-api/cel.md b/content/en/docs/reference/using-api/cel.md index 28adf0bb07..7752cbdd32 100644 --- a/content/en/docs/reference/using-api/cel.md +++ b/content/en/docs/reference/using-api/cel.md @@ -51,7 +51,7 @@ Example CEL expressions: | `self.minReplicas <= self.replicas && self.replicas <= self.maxReplicas` | Validate that the three fields defining replicas are ordered appropriately | | `'Available' in self.stateCounts` | Validate that an entry with the 'Available' key exists in a map | | `(self.list1.size() == 0) != (self.list2.size() == 0)` | Validate that one of two lists is non-empty, but not both | -| `self.envars.filter(e, e.name = 'MY_ENV').all(e, e.value.matches('^[a-zA-Z]*$')` | Validate the 'value' field of a listMap entry where key field 'name' is 'MY_ENV' | +| `self.envars.filter(e, e.name = 'MY_ENV').all(e, e.value.matches('^[a-zA-Z]*$'))` | Validate the 'value' field of a listMap entry where key field 'name' is 'MY_ENV' | | `has(self.expired) && self.created + self.ttl < self.expired` | Validate that 'expired' date is after a 'create' date plus a 'ttl' duration | | `self.health.startsWith('ok')` | Validate a 'health' string field has the prefix 'ok' | | `self.widgets.exists(w, w.key == 'x' && w.foo < 10)` | Validate that the 'foo' property of a listMap item with a key 'x' is less than 10 | From 353db2a0cfc70dae0995e0c0dec465bb3f73bbc4 Mon Sep 17 00:00:00 2001 From: drewhagen Date: Wed, 7 Aug 2024 14:25:38 -0500 Subject: [PATCH 15/18] Add Drew temporarily as acting release Docs lead K8s v1.31 --- OWNERS_ALIASES | 3 +++ 1 file changed, 3 insertions(+) diff --git a/OWNERS_ALIASES b/OWNERS_ALIASES index f18c97fd53..4bae0314f9 100644 --- a/OWNERS_ALIASES +++ b/OWNERS_ALIASES @@ -16,6 +16,7 @@ aliases: - salaxander - sftim - tengqm + - drewhagen # RT 1.31 temp acting Docs lead sig-docs-localization-owners: # Admins for localization content - a-mccarthy - divya-mohan0209 @@ -64,6 +65,7 @@ aliases: - sftim - tengqm - Princesso # RT 1.31 Docs Lead + - drewhagen # RT 1.31 temp acting Docs lead sig-docs-en-reviews: # PR reviews for English content - dipesh-rawat - divya-mohan0209 @@ -80,6 +82,7 @@ aliases: - tengqm - windsonsea - Princesso # RT 1.31 Docs Lead + - drewhagen # RT 1.31 temp acting Docs lead sig-docs-es-owners: # Admins for Spanish content - electrocucaracha - krol3 From 051f98bbc618f4f91e5da277028e200a2f7d5b24 Mon Sep 17 00:00:00 2001 From: Dipesh Rawat Date: Wed, 7 Aug 2024 18:15:04 +0100 Subject: [PATCH 16/18] Refine glossary for vanilla docsy --- {static => assets}/css/glossary.css | 0 {static => assets}/js/glossary.js | 0 layouts/docs/glossary.html | 5 +++-- layouts/partials/hooks/head-end.html | 8 ++++++++ 4 files changed, 11 insertions(+), 2 deletions(-) rename {static => assets}/css/glossary.css (100%) rename {static => assets}/js/glossary.js (100%) diff --git a/static/css/glossary.css b/assets/css/glossary.css similarity index 100% rename from static/css/glossary.css rename to assets/css/glossary.css diff --git a/static/js/glossary.js b/assets/js/glossary.js similarity index 100% rename from static/js/glossary.js rename to assets/js/glossary.js diff --git a/layouts/docs/glossary.html b/layouts/docs/glossary.html index d86f8c424d..1688201d25 100644 --- a/layouts/docs/glossary.html +++ b/layouts/docs/glossary.html @@ -4,8 +4,9 @@ {{ define "main" }}

{{ .Title }}

- - +{{- with resources.Get "css/glossary.css" -}} + +{{- end -}}

{{ T "layouts_docs_glossary_description" }}

{{ T "layouts_docs_glossary_filter" }}

diff --git a/layouts/partials/hooks/head-end.html b/layouts/partials/hooks/head-end.html index 71d369be21..97626932f2 100644 --- a/layouts/partials/hooks/head-end.html +++ b/layouts/partials/hooks/head-end.html @@ -23,4 +23,12 @@ {{- $zoomJs := resources.Get "js/zoom.js" -}} {{- end -}} +{{- end -}} + +{{- if eq .Layout "glossary" -}} + {{- with resources.Get "js/glossary.js" -}} + + {{- else -}} + {{- errorf "Unable to find the glossary helper script" -}} + {{- end -}} {{- end -}} \ No newline at end of file From 24e9e11429fef5003d49dd4ce6ce852d1535ead3 Mon Sep 17 00:00:00 2001 From: windsonsea Date: Thu, 8 Aug 2024 10:03:41 +0800 Subject: [PATCH 17/18] [zh] Sync using-api/cel.md --- content/zh-cn/docs/reference/using-api/cel.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/zh-cn/docs/reference/using-api/cel.md b/content/zh-cn/docs/reference/using-api/cel.md index 54b0250d0e..677b67ae36 100644 --- a/content/zh-cn/docs/reference/using-api/cel.md +++ b/content/zh-cn/docs/reference/using-api/cel.md @@ -85,7 +85,7 @@ CEL 表达式示例: | `self.minReplicas <= self.replicas && self.replicas <= self.maxReplicas` | Validate that the three fields defining replicas are ordered appropriately | | `'Available' in self.stateCounts` | Validate that an entry with the 'Available' key exists in a map | | `(self.list1.size() == 0) != (self.list2.size() == 0)` | Validate that one of two lists is non-empty, but not both | -| `self.envars.filter(e, e.name = 'MY_ENV').all(e, e.value.matches('^[a-zA-Z]*$')` | Validate the 'value' field of a listMap entry where key field 'name' is 'MY_ENV' | +| `self.envars.filter(e, e.name = 'MY_ENV').all(e, e.value.matches('^[a-zA-Z]*$'))` | Validate the 'value' field of a listMap entry where key field 'name' is 'MY_ENV' | | `has(self.expired) && self.created + self.ttl < self.expired` | Validate that 'expired' date is after a 'create' date plus a 'ttl' duration | | `self.health.startsWith('ok')` | Validate a 'health' string field has the prefix 'ok' | | `self.widgets.exists(w, w.key == 'x' && w.foo < 10)` | Validate that the 'foo' property of a listMap item with a key 'x' is less than 10 | @@ -103,7 +103,7 @@ CEL 表达式示例: | `self.minReplicas <= self.replicas && self.replicas <= self.maxReplicas` | 验证定义副本的三个字段被正确排序 | | `'Available' in self.stateCounts` | 验证映射中存在主键为 'Available' 的条目 | | `(self.list1.size() == 0) != (self.list2.size() == 0)` | 验证两个列表中有一个非空,但不是两个都非空 | -| `self.envars.filter(e, e.name = 'MY_ENV').all(e, e.value.matches('^[a-zA-Z]*$')` | 验证 listMap 条目的 'value' 字段,其主键字段 'name' 是 'MY_ENV' | +| `self.envars.filter(e, e.name = 'MY_ENV').all(e, e.value.matches('^[a-zA-Z]*$'))` | 验证 listMap 条目的 'value' 字段,其主键字段 'name' 是 'MY_ENV' | | `has(self.expired) && self.created + self.ttl < self.expired` | 验证 'expired' 日期在 'create' 日期加上 'ttl' 持续时间之后 | | `self.health.startsWith('ok')` | 验证 'health' 字符串字段具有前缀 'ok' | | `self.widgets.exists(w, w.key == 'x' && w.foo < 10)` | 验证具有键 'x' 的 listMap 项的 'foo' 属性小于 10 | From 7a0dd98606aa705e36af384e3cd642b00c1c0247 Mon Sep 17 00:00:00 2001 From: xin gu <418294249@qq.com> Date: Wed, 7 Aug 2024 09:21:33 +0800 Subject: [PATCH 18/18] Update test.md Update test.md --- content/zh-cn/docs/test.md | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/content/zh-cn/docs/test.md b/content/zh-cn/docs/test.md index 29ee6c8933..aa1553a9d2 100644 --- a/content/zh-cn/docs/test.md +++ b/content/zh-cn/docs/test.md @@ -829,13 +829,21 @@ Notes catch the reader's attention without a sense of urgency. You can have multiple paragraphs and block-level elements inside an admonition. -| Or | a | table | +You can also add tables to organize and highlight key information. + +| Header 1 | Header 2 | Header 3 | +| -------- | -------- | -------- | +| Data 1 | Data A | Info X | +| Data 2 | Data B | Info Y | --> 说明信息用来引起读者的注意,但不过分强调其紧迫性。 -你可以在提醒框内包含多个段落和块级元素。 +你还可以添加表格来组织和突出关键信息。 -| 甚至 | 包含 | 表格 | +| 表头 1 | 表头 2 | 表头 3 | +| -------- | -------- | -------- | +| 数据 1 | 数据 A | 信息 X | +| 数据 2 | 数据 B | 信息 Y | {{< /note >}} {{< caution >}}