Установка кубернетов с внешним etcd - проблемы с calico

Я столкнулся с множеством проблем при установке мультимастерного кластера k8s с внешним etcd. Раньше я делал это дважды, на других сайтах, успешно, но на этот раз мне нужна помощь.

calico был установлен из рекомендованного в руководстве yaml: https://docs.projectcalico.org/manifests/calico.yaml

Во-первых, возникла проблема с установкой calico - calico-node не мог получить доступ к API, когда apiServer.extraArgs.advertise-address был упомянут в config.

После этого calico-kube-controllers застряли в состоянии ContainerCreating. Мне удалось исправить это, используя calico-etcd.yaml вместо calico.yaml. Теперь модули calico запущены и работают, calicoctl может видеть их в etcd.

Но модули coredns застряли в ConteinerCreating. Эти строки, которые я вижу в , описывают pod :

  Warning  FailedScheduling        82s (x2 over 88s)  default-scheduler                  
0/1 nodes are available: 1 node(s) had taints that the pod didn't tolerate.
  Normal   Scheduled               80s                default-scheduler                  
Successfully assigned kube-system/coredns-6955765f44-clbhk to master01.<removed>
  Warning  FailedCreatePodSandBox  18s                kubelet, 
master01.<removed>  Failed to create pod sandbox: rpc error: code = Unknown desc = failed to set up sandbox container "9ab9fe3bd3d4e145c218fe59f6578169fa09075c59718fbe2f
7033d207c4ea4c" network for pod "coredns-6955765f44-clbhk": networkPlugin cni failed to set up pod "coredns-6955765f44-clbhk_kube-system" network: unable to connect to Cilium daemon: failed to create cilium agent client after 30.000000 seconds timeout: Get http:///var/run/cilium/cilium.sock/v1/config: dial unix /var/run/cilium/cilium.sock: connect: no such file or directory
Is the agent running?                                                                                                  
  Normal  SandboxChanged  17s  kubelet, master01.<removed>  Pod sandbox changed, it will be killed and re-created. 

Но я не использую реснички. Пользуюсь бязью. Я действительно пробовал ресничку во время отладки первой проблемы с калико, но я удалил ее, повторно восстановил кластер несколько раз, а также стер данные etcd после каждой попытки.

Вот конфигурация кублета:

apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: "v1.17.2"
controlPlaneEndpoint: "192.168.10.100:7443" #balancer ip:port


etcd:
  external:
    endpoints:
    - http://192.168.20.1:2379
    - http://192.168.20.2:2379
    - http://192.168.40.1:2379
    - http://192.168.40.2:2379
    - http://192.168.40.3:2379

#controllerManager:
#  extraArgs:
#    node-monitor-period: "2s"
#    node-monitor-grace-period: "16s"
#    pod-eviction-timeout: "30s"

networking:
  dnsDomain: "cluster.local"
  podSubnet: "10.96.0.0/12"
  serviceSubnet: "172.16.0.0/12"

apiServer:
  timeoutForControlPlane: "60s"
#  extraArgs:
#    advertise-address: "192.168.10.100"
#    bind-address: "192.168.20.1"
#    secure-port: "6443"

kubernetes 1.17.2, etcd 3.3.11, centos 7 x64

Похоже, проблема где-то между api pod и etcd, но я не могу ее найти.

0
задан 6 February 2020 в 12:44
1 ответ

Oh, nevermind. Я нашел это.

В файлах /opt/cni/bin/ были файлы cilium-cniium-cni.old. Очевидно, что эти файлы были установлены с киллием, поэтому они пережили переустановку kubernetes-cni rpm. Идентифицирую почему, но k8s предпочитает cilium, если он доступен. Это ошибка? Мне доложить об этом?

1
ответ дан 26 February 2020 в 00:36

Теги

Похожие вопросы