【问题标题】:Install Kubernetes + Cilium on different networks在不同的网络上安装 Kubernetes + Cilium
【发布时间】:2020-10-11 03:01:17
【问题描述】:

有如下拓扑:

'left-1'、'left-2'、'right-1'、'right-2'、'center' - 主机(DNS 名称相同)。

“云” - 网络。

所有主机上的kubeadm、kubectl、kubelet、docker安装正确。

Kubernetes 需要安装如下:主机'left-1'上的'Master-1',主机'right-1'上的'Master-2',主机'left-2'和'right-2'上的worker

所有主机通过域名相互 ping 通。所有主机上的所有端口都是开放的。任何地方都没有防火墙。

所有主机都可以访问互联网。

这里有安装 Kubernetes 的手册:

https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/

如果我只在“left-1”和“left-2”上安装 Kubernetes - 一切正常。

如果我只在“right-1”和“right-2”上安装 Kubernetes - 一切正常。

但如果我安装在所有节点上 - 左侧的 pod 不会连接到右侧的 pod,而右侧的 pod 不会连接到左侧的 pod。

如何在左右节点上一起安装Kubernetes?

我使用 Cilium 网络。

我使用以下命令安装了 Cilium 网络:

kubectl apply -f https://raw.githubusercontent.com/cilium/cilium/v1.6.8/install/kubernetes/quick-install.yaml

当我初始化第一个主节点时,我描述了 CIDR:10.217.0.0/16

我尝试将 etcd 与 kubernetes 分开安装。我有错误:

2020-06-25 02:49:37.073290 I | embed: rejected connection from "10.7.0.1:48422" (error "tls: \"10.7.0.1\" does not match any of DNSNames [\"right-1\" \"localhost\"]", ServerName "", IPAddresses ["10.8.1.1" "127.0.0.1" "::1" "10.8.1.1"], DNSNames ["right-1" "localhost"])

10.7.0.1 - 它是center,并且 center 不是 etcd 集群的一部分。为什么 etcd 会检查它?

[left-1]$ traceroute right-1
traceroute to right-1 (10.8.1.1), 30 hops max, 60 byte packets
 1  center (10.7.0.1)  1.381 ms  1.252 ms  1.159 ms
 2  right-1 (10.8.1.1)  1.068 ms  0.990 ms  0.912 ms

【问题讨论】:

  • 你能把你用于 Cillium 安装的东西贴出来吗?
  • 我使用以下命令安装 Cilium:kubectl apply -f raw.githubusercontent.com/cilium/cilium/v1.6.8/install/…
  • 当您使用左右节点时,Cilium 是否在所有 Kubernetes 节点上运行?这基本上是你的叠加层。
  • cilium/operator - 在一个节点上运行,cilium/cilium 在所有节点上运行(DaemonSet)
  • 我忘记了:我在初始化第一个主节点时描述了 CIDR: 10.217.0.0/16

标签: networking kubernetes installation


【解决方案1】:

我们解决了这个问题。

必须通过命令创建集群:

kubeadm init --config=kubeadm-config.yaml --upload-certs

kubeadm-config.yaml 包含的位置:

apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: 1.18.3
controlPlaneEndpoint: "10.7.1.1:6443"
networking:
  podSubnet: "10.217.0.0/16"
etcd:
  local:
    serverCertSANs: ["10.7.1.1", "10.7.2.2", "10.7.0.1", "10.8.1.1", "10.8.2.2", "10.8.0.1"]
    peerCertSANs:   ["10.7.1.1", "10.7.2.2", "10.7.0.1", "10.8.1.1", "10.8.2.2", "10.8.0.1"]

注意 yaml 参数:serverCertSANs 和 peerCertSANs :它包含 10.7.0.110.8.0.1 - 这些 IP 在网络包中作为客户端 IP 进入节点,并且必须注册为受信任的 IP。如果您有其他IP进行节点间交互,也必须注册。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-17
    • 1970-01-01
    • 1970-01-01
    • 2020-02-17
    • 2017-09-25
    • 2015-10-03
    • 1970-01-01
    相关资源
    最近更新 更多