committed by
Kubernetes Prow Robot
parent
3b10c76ca7
commit
2a120450eb
@@ -9,7 +9,7 @@ weight: 90
|
||||
|
||||
Comme avec n'importe quel programme, vous pourriez rencontrer une erreur lors de l'installation ou de
|
||||
l'exécution de kubeadm.
|
||||
Cette page répertorie certains scénarios d’échec courants et propose des étapes pouvant vous aider à
|
||||
Cette page répertorie certains scénarios d’échec courants et propose des étapes pouvant vous aider à
|
||||
comprendre et résoudre le problème.
|
||||
|
||||
Si votre problème ne figure pas dans la liste ci-dessous, procédez comme suit:
|
||||
@@ -17,12 +17,12 @@ Si votre problème ne figure pas dans la liste ci-dessous, procédez comme suit:
|
||||
- Si vous pensez que votre problème est un bug avec kubeadm:
|
||||
- Aller à [github.com/kubernetes/kubeadm](https://github.com/kubernetes/kubeadm/issues) et rechercher
|
||||
les problèmes existants.
|
||||
- Si aucune issue n'existe, veuillez [en ouvrir une](https://github.com/kubernetes/kubeadm/issues/new) et
|
||||
- Si aucune issue n'existe, veuillez [en ouvrir une](https://github.com/kubernetes/kubeadm/issues/new) et
|
||||
suivez le modèle ( template ) d'issue
|
||||
|
||||
- Si vous ne savez pas comment fonctionne kubeadm, vous pouvez demander sur [Slack](http://slack.k8s.io/)
|
||||
dans le canal #kubeadm, ou posez une questions sur
|
||||
[StackOverflow](https://stackoverflow.com/questions/tagged/kubernetes). Merci d'ajouter les tags pertinents
|
||||
- Si vous ne savez pas comment fonctionne kubeadm, vous pouvez demander sur [Slack](http://slack.k8s.io/)
|
||||
dans le canal #kubeadm, ou posez une questions sur
|
||||
[StackOverflow](https://stackoverflow.com/questions/tagged/kubernetes). Merci d'ajouter les tags pertinents
|
||||
comme `#kubernetes` et `#kubeadm`, ainsi on pourra vous aider.
|
||||
|
||||
{{% /capture %}}
|
||||
@@ -38,7 +38,7 @@ Si vous voyez les warnings suivants lors de l'exécution `kubeadm init`
|
||||
[preflight] WARNING: ethtool not found in system path
|
||||
```
|
||||
|
||||
Ensuite, il peut vous manquer `ebtables`, `ethtool` ou un exécutable similaire sur votre nœud. Vous
|
||||
Ensuite, il peut vous manquer `ebtables`, `ethtool` ou un exécutable similaire sur votre nœud. Vous
|
||||
pouvez l'installer avec les commandes suivantes:
|
||||
|
||||
- For Ubuntu/Debian users, run `apt install ebtables ethtool`.
|
||||
@@ -54,10 +54,10 @@ Si vous remarquez que `kubeadm init` se bloque après la ligne suivante:
|
||||
|
||||
Cela peut être causé par un certain nombre de problèmes. Les plus communs sont:
|
||||
|
||||
- problèmes de connexion réseau. Vérifiez que votre machine dispose d'une connectivité réseau
|
||||
- problèmes de connexion réseau. Vérifiez que votre machine dispose d'une connectivité réseau
|
||||
complète avant de continuer.
|
||||
- la configuration du driver cgroup par défaut pour la kubelet diffère de celle utilisée par Docker.
|
||||
Vérifiez le fichier journal du système (par exemple, `/var/log/message`) ou examinez le résultat
|
||||
Vérifiez le fichier journal du système (par exemple, `/var/log/message`) ou examinez le résultat
|
||||
de `journalctl -u kubelet`. Si vous voyez quelque chose comme ce qui suit:
|
||||
|
||||
```shell
|
||||
@@ -77,7 +77,7 @@ de `journalctl -u kubelet`. Si vous voyez quelque chose comme ce qui suit:
|
||||
|
||||
## kubeadm bloque lors de la suppression de conteneurs gérés
|
||||
|
||||
Les événements suivants peuvent se produire si Docker s'arrête et ne supprime pas les conteneurs gérés
|
||||
Les événements suivants peuvent se produire si Docker s'arrête et ne supprime pas les conteneurs gérés
|
||||
par Kubernetes:
|
||||
|
||||
```bash
|
||||
@@ -111,26 +111,26 @@ Juste après `kubeadm init`, il ne devrait pas y avoir de pods dans ces états.
|
||||
jusqu'à ce que vous ayez déployé la solution réseau.
|
||||
- Si vous voyez des pods dans les états `RunContainerError`,` CrashLoopBackOff` ou `Error`
|
||||
après le déploiement de la solution réseau et que rien ne se passe pour `coredns` (ou` kube-dns`),
|
||||
il est très probable que la solution Pod Network que vous avez installée est en quelque sorte
|
||||
endommagée. Vous devrez peut-être lui accorder plus de privilèges RBAC ou utiliser une version
|
||||
il est très probable que la solution Pod Network que vous avez installée est en quelque sorte
|
||||
endommagée. Vous devrez peut-être lui accorder plus de privilèges RBAC ou utiliser une version
|
||||
plus récente. S'il vous plaît créez une issue dans le dépôt du fournisseur de réseau de Pod.
|
||||
- Si vous installez une version de Docker antérieure à 1.12.1, supprimez l'option `MountFlags = slave`
|
||||
lors du démarrage de `dockerd` avec` systemd` et redémarrez `docker`. Vous pouvez voir les options
|
||||
lors du démarrage de `dockerd` avec` systemd` et redémarrez `docker`. Vous pouvez voir les options
|
||||
de montage dans `/usr/lib/systemd/system/docker.service`.
|
||||
Les options de montage peuvent interférer avec les volumes montés par Kubernetes et mettre les
|
||||
pods dans l'état`CrashLoopBackOff`. L'erreur se produit lorsque Kubernetes ne trouve pas les fichiers
|
||||
Les options de montage peuvent interférer avec les volumes montés par Kubernetes et mettre les
|
||||
pods dans l'état`CrashLoopBackOff`. L'erreur se produit lorsque Kubernetes ne trouve pas les fichiers
|
||||
`var/run/secrets/kubernetes.io/serviceaccount`.
|
||||
|
||||
## `coredns` (ou` kube-dns`) est bloqué dans l'état `Pending`
|
||||
|
||||
Ceci est **prévu** et fait partie du design. kubeadm est agnostique vis-à-vis du fournisseur
|
||||
Ceci est **prévu** et fait partie du design. kubeadm est agnostique vis-à-vis du fournisseur
|
||||
de réseau, ainsi l'administrateur devrait [installer la solution réseau pod](/docs/concepts/cluster-administration/addons/)
|
||||
de choix. Vous devez installer un réseau de pods avant que CoreDNS ne soit complètement déployé.
|
||||
de choix. Vous devez installer un réseau de pods avant que CoreDNS ne soit complètement déployé.
|
||||
D'où l' état `Pending` avant la mise en place du réseau.
|
||||
|
||||
## Les services `HostPort` ne fonctionnent pas
|
||||
|
||||
Les fonctionnalités `HostPort` et `HostIP` sont disponibles en fonction de votre fournisseur
|
||||
Les fonctionnalités `HostPort` et `HostIP` sont disponibles en fonction de votre fournisseur
|
||||
de réseau de pod. Veuillez contacter l’auteur de la solution de réseau de Pod pour savoir si
|
||||
Les fonctionnalités `HostPort` et` HostIP` sont disponibles.
|
||||
|
||||
@@ -143,14 +143,14 @@ Si votre fournisseur de réseau ne prend pas en charge le plug-in portmap CNI, v
|
||||
|
||||
## Les pods ne sont pas accessibles via leur IP de service
|
||||
|
||||
- De nombreux add-ons réseau ne permettent pas encore
|
||||
- De nombreux add-ons réseau ne permettent pas encore
|
||||
[hairpin mode](/docs/tasks/debug-application-cluster/debug-service/#a-pod-cannot-reach-itself-via-service-ip)
|
||||
qui permet aux pods d’accéder à eux-mêmes via leur IP de service. Ceci est un problème lié
|
||||
au [CNI](https://github.com/containernetworking/cni/issues/476). S'il vous plaît contacter
|
||||
qui permet aux pods d’accéder à eux-mêmes via leur IP de service. Ceci est un problème lié
|
||||
au [CNI](https://github.com/containernetworking/cni/issues/476). S'il vous plaît contacter
|
||||
le fournisseur d'add-on réseau afin d'obtenir des informations en matière de prise en charge du mode hairpin.
|
||||
|
||||
- Si vous utilisez VirtualBox (directement ou via Vagrant), vous devrez vous assurez que
|
||||
`hostname -i` renvoie une adresse IP routable. Par défaut la première interface est connectée
|
||||
- Si vous utilisez VirtualBox (directement ou via Vagrant), vous devrez vous assurez que
|
||||
`hostname -i` renvoie une adresse IP routable. Par défaut la première interface est connectée
|
||||
à un réseau d’`hôte uniquement` non routable. En contournement vous pouvez modifier`/etc/hosts`,
|
||||
jetez un œil à ce [Vagrantfile](https://github.com/errordeveloper/k8s-playground/blob/22dd39dfc06111235620e6c4404a96ae146f26fd/Vagrantfile#L11) par exemple.
|
||||
|
||||
@@ -160,7 +160,7 @@ L'erreur suivante indique une possible incompatibilité de certificat.
|
||||
|
||||
```none
|
||||
# kubectl get pods
|
||||
Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of
|
||||
Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of
|
||||
"crypto/rsa: verification error" while trying to verify candidate authority certificate "kubernetes")
|
||||
```
|
||||
|
||||
@@ -187,33 +187,33 @@ Error from server (NotFound): the server could not find the requested resource
|
||||
- Si vous utilisez flannel comme réseau de pod dans Vagrant, vous devrez spécifier le
|
||||
nom d'interface par défaut pour flannel.
|
||||
|
||||
Vagrant attribue généralement deux interfaces à tous les ordinateurs virtuels. La
|
||||
première, pour laquel tous les hôtes se voient attribuer l’adresse IP `10.0.2.15`,
|
||||
Vagrant attribue généralement deux interfaces à tous les ordinateurs virtuels. La
|
||||
première, pour laquel tous les hôtes se voient attribuer l’adresse IP `10.0.2.15`,
|
||||
est pour le trafic externe qui est NATé.
|
||||
|
||||
Cela peut entraîner des problèmes avec Flannel, qui utilise par défaut la première
|
||||
interface sur un hôte. Ceci conduit au fait que tous les hôtes pensent qu'ils ont la
|
||||
même adresse IP publique. Pour éviter cela, passez l'option `--iface eth1` sur Flannel
|
||||
Cela peut entraîner des problèmes avec Flannel, qui utilise par défaut la première
|
||||
interface sur un hôte. Ceci conduit au fait que tous les hôtes pensent qu'ils ont la
|
||||
même adresse IP publique. Pour éviter cela, passez l'option `--iface eth1` sur Flannel
|
||||
pour que la deuxième interface soit choisie.
|
||||
|
||||
## IP non publique utilisée pour les conteneurs
|
||||
|
||||
Dans certaines situations, les commandes `kubectl logs` et` kubectl run` peuvent
|
||||
Dans certaines situations, les commandes `kubectl logs` et` kubectl run` peuvent
|
||||
renvoyer les erreurs suivantes dans un cluster par ailleurs fonctionnel:
|
||||
|
||||
```sh
|
||||
Error from server: Get https://10.19.0.41:10250/containerLogs/default/mysql-ddc65b868-glc5m/mysql:
|
||||
Error from server: Get https://10.19.0.41:10250/containerLogs/default/mysql-ddc65b868-glc5m/mysql:
|
||||
dial tcp 10.19.0.41:10250: getsockopt: no route to host
|
||||
```
|
||||
|
||||
- Cela peut être dû au fait que Kubernetes utilise une adresse IP qui ne peut pas communiquer
|
||||
avec d’autres adresses IP même sous-réseau, éventuellement à cause d'une politique mise en place
|
||||
- Cela peut être dû au fait que Kubernetes utilise une adresse IP qui ne peut pas communiquer
|
||||
avec d’autres adresses IP même sous-réseau, éventuellement à cause d'une politique mise en place
|
||||
par le fournisseur de la machine.
|
||||
- Digital Ocean attribue une adresse IP publique à `eth0` ainsi qu’une adresse privée à
|
||||
utiliser en interne comme IP d'ancrage pour leur fonction IP flottante, mais `kubelet` choisira cette
|
||||
- Digital Ocean attribue une adresse IP publique à `eth0` ainsi qu’une adresse privée à
|
||||
utiliser en interne comme IP d'ancrage pour leur fonction IP flottante, mais `kubelet` choisira cette
|
||||
dernière comme` InternalIP` du noeud au lieu du public.
|
||||
|
||||
Utilisez `ip addr show` pour verifier ce scénario au lieu de` ifconfig` car `ifconfig` n'affichera pas
|
||||
Utilisez `ip addr show` pour verifier ce scénario au lieu de` ifconfig` car `ifconfig` n'affichera pas
|
||||
l'alias de l'adresse IP incriminée. Sinon, une API spécifique à Digital Ocean
|
||||
permet de rechercher l'adresse IP d'ancrage à partir du droplet:
|
||||
|
||||
@@ -221,9 +221,9 @@ dernière comme` InternalIP` du noeud au lieu du public.
|
||||
curl http://169.254.169.254/metadata/v1/interfaces/public/0/anchor_ipv4/address
|
||||
```
|
||||
|
||||
La solution consiste à indiquer à la `kubelet` l'adresse IP à utiliser avec` --node-ip`. Lors de
|
||||
l'utilisation de Digital Ocean, il peut être public (assigné à `eth0`) ou privé (assigné à` eth1`)
|
||||
si vous voulez utiliser le réseau privé optionnel. la
|
||||
La solution consiste à indiquer à la `kubelet` l'adresse IP à utiliser avec` --node-ip`. Lors de
|
||||
l'utilisation de Digital Ocean, il peut être public (assigné à `eth0`) ou privé (assigné à` eth1`)
|
||||
si vous voulez utiliser le réseau privé optionnel. la
|
||||
[la section `KubeletExtraArgs` de kubeadm `NodeRegistrationOptions` structure](https://github.com/kubernetes/kubernetes/blob/release-1.13/cmd/kubeadm/app/apis/kubeadm/v1beta1/types.go) peut être utilisé pour cela.
|
||||
|
||||
Puis redémarrer la `kubelet`:
|
||||
@@ -235,7 +235,7 @@ dernière comme` InternalIP` du noeud au lieu du public.
|
||||
|
||||
## Les pods `coredns` sont en état` CrashLoopBackOff` ou `Error`
|
||||
|
||||
Si vous avez des nœuds qui exécutent SELinux avec une version plus ancienne de Docker, vous risquez
|
||||
Si vous avez des nœuds qui exécutent SELinux avec une version plus ancienne de Docker, vous risquez
|
||||
de rencontrer un problème ou les pods de `coredns` ne démarrent pas. Pour résoudre ce problème, vous pouvez essayer l'une des options suivantes:
|
||||
|
||||
- Mise à niveau vers une [nouvelle version de Docker](/docs/setup/independent/install-kubeadm/#installing-docker).
|
||||
@@ -248,7 +248,7 @@ kubectl -n kube-system get deployment coredns -o yaml | \
|
||||
kubectl apply -f -
|
||||
```
|
||||
|
||||
une autre raison pour laquelle CoreDNS peut se retrouver dans l'état `CrashLoopBackOff` est lorsqu'un
|
||||
une autre raison pour laquelle CoreDNS peut se retrouver dans l'état `CrashLoopBackOff` est lorsqu'un
|
||||
Pod de CoreDNS déployé dans Kubernetes détecte une boucle. [Un certain nombre de solutions de contournement](https://github.com/coredns/coredns/tree/master/plugin/loop#troubleshooting-loops-in-kubernetes-clusters)
|
||||
sont disponibles pour éviter que Kubernetes ne tente de redémarrer le pod CoreDNS chaque fois que CoreDNS détecte une boucle et s'arrête.
|
||||
|
||||
@@ -262,8 +262,8 @@ la sécurité de votre cluster.
|
||||
Si vous rencontrez l'erreur suivante:
|
||||
|
||||
```
|
||||
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container
|
||||
process caused "process_linux.go:110: decoding init error from pipe caused \"read parent: connection
|
||||
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container
|
||||
process caused "process_linux.go:110: decoding init error from pipe caused \"read parent: connection
|
||||
reset by peer\""
|
||||
```
|
||||
|
||||
|
||||
Reference in New Issue
Block a user