【问题标题】:How to set/change endpoints conected to kubernetes.default.svc service如何设置/更改连接到 kubernetes.default.svc 服务的端点
【发布时间】:2021-08-11 01:05:42
【问题描述】:

我有通过命令引导的 kubernetes 多控制平面集群:

kubeadm init --config kubeadm-config.yaml

kubeadm-config.yaml 包含:

apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: stable
controlPlaneEndpoint: "10.10.10.120:6443"
apiServer:
  extraArgs:
    secure-port: "8080"
    advertise-address: "10.10.10.121"

为什么连接到 kubernetes.default.svc 服务的端点指向 10.10.10.121:8080 而不是 10.10.10.120:6443?

我可以改变这个吗?或者我在控制平面引导时犯了一些错误?

# kubectl describe endpoints kubernetes 
Name:         kubernetes
Namespace:    default
Labels:       <none>
Annotations:  <none>
Subsets:
  Addresses:          10.10.10.121
  NotReadyAddresses:  <none>
  Ports:
    Name   Port  Protocol
    ----   ----  --------
    https  8080  TCP

Events:  <none>

【问题讨论】:

    标签: kubernetes kubeadm kube-apiserver


    【解决方案1】:

    这是由 kube-apiserver 内部管理的,我有一个模糊的记忆,只有在服务不存在时才会更新?您可以尝试删除服务/端点/切片并重新启动整个集群。

    【讨论】:

      【解决方案2】:

      我知道问题出在哪里

      在 kube-apiserver 清单中的所有主节点上是:

      # cat /etc/kubernetes/manifests/kube-apiserver.yaml 
      apiVersion: v1
      kind: Pod
      metadata:
        creationTimestamp: null
        labels:
          component: kube-apiserver
          tier: control-plane
        name: kube-apiserver
        namespace: kube-system
      spec:
        containers:
        - command:
          - kube-apiserver
          - --advertise-address=10.10.10.121
      

      我修好了,现在可以了:

      # kubectl describe endpoints kubernetes 
      Name:         kubernetes
      Namespace:    default
      Labels:       <none>
      Annotations:  <none>
      Subsets:
        Addresses:          10.10.10.121,10.10.10.122,10.10.10.123
        NotReadyAddresses:  <none>
        Ports:
          Name   Port  Protocol
          ----   ----  --------
          https  8080  TCP
      
      Events:  <none>
      

      问题:为什么在 kubeadm-config.yaml 中设置了正确的 ip 地址,例如节点 2 上的所有节点上 kubeadm join set Advertisement-address 等于 10.10.10.121:

      apiVersion: kubeadm.k8s.io/v1beta2
      kind: ClusterConfiguration
      kubernetesVersion: stable
      controlPlaneEndpoint: "10.10.10.120:6443"
      apiServer:
        extraArgs:
          secure-port: "8080"
          advertise-address: "10.10.10.122"
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-08-20
        • 1970-01-01
        • 1970-01-01
        • 2021-04-27
        • 1970-01-01
        • 1970-01-01
        • 2011-01-30
        相关资源
        最近更新 更多