Kubernetes 中的集群 IP 是啥?

     2023-02-16     295

关键词:

【中文标题】Kubernetes 中的集群 IP 是啥?【英文标题】:What is the cluster IP in Kubernetes?Kubernetes 中的集群 IP 是什么? 【发布时间】:2016-01-29 04:56:02 【问题描述】:

我创建了一个由三个节点组成的集群:一个主节点,两个小节点。 如何在 Kubernetes 中查看集群 IP? 是主节点的IP吗?

【问题讨论】:

“集群 IP”是什么意思?你的用例是什么? 正在尝试通过以下链接实现服务类型负载均衡器:kubernetes.io/v1.0/docs/user-guide/services.html,它要求提供 cluster-ip。 【参考方案1】:

集群IP只分配给服务,是Kubernetes的内部ip。

【讨论】:

【参考方案2】:

ClusterIP 可能意味着两件事:一种只能在 Kubernetes 集群内访问的服务,或者 Kubernetes 集群内组件的内部(“虚拟”)IP。假设您要查找集群的内部 IP,可以通过 3 种方式访问​​它(使用 simple-nginx example):

    通过命令行kubectl 实用程序:

    $ kubectl describe service my-nginx
    Name:           my-nginx
    Namespace:      default
    Labels:         run=my-nginx
    Selector:       run=my-nginx
    Type:           LoadBalancer
    IP:         10.123.253.27
    LoadBalancer Ingress:   104.197.129.240
    Port:           <unnamed>   80/TCP
    NodePort:       <unnamed>   30723/TCP
    Endpoints:      10.120.0.6:80
    Session Affinity:   None
    No events.
    

    通过 kubernetes API(这里我使用 kubectl proxy 来通过 localhost 路由到我的集群):

    $ kubectl proxy &
    $ curl -G http://localhost:8001/api/v1/namespaces/default/services/my-nginx
    
      "kind": "Service",
      "apiVersion": "v1",
      "metadata": <omitted>,
      "spec": 
        "ports": [
          
            "protocol": "TCP",
            "port": 80,
            "targetPort": 80,
            "nodePort": 30723
          
        ],
        "selector": 
          "run": "my-nginx"
        ,
        "clusterIP": "10.123.253.27",
        "type": "LoadBalancer",
        "sessionAffinity": "None"
      ,
      "status": 
        "loadBalancer": 
          "ingress": [
            
              "ip": "104.197.129.240"
            
          ]
        
      
    
    

    通过 Kubernetes 容器中的 $&lt;NAME&gt;_SERVICE_HOST 环境变量(在本例中,my-nginx-yczg9 是集群中的 pod 的名称):

    $ kubectl exec my-nginx-yczg9 -- sh -c 'echo $MY_NGINX_SERVICE_HOST'
    10.123.253.27
    

有关服务 IP 的更多详细信息,请参阅 Services in Kubernetes 文档,前面提到的 simple-nginx example 是使用 LoadBalancer 服务类型在集群外部公开服务的一个很好的示例。

【讨论】:

服务端点比什么?我们通过kubectl get endpoints获得它们? @IvanAracki kubectl get endpoints 为您提供 pod IP 而不是服务端点, 大概第二个链接(现在坏了)应该更新为kubernetes.io/docs/concepts/services-networking/service【参考方案3】:

运行这个

$ kubectl cluster-info

它显示这样的结果,您可以在其中看到 Kubernetes 主 IP

【讨论】:

这个答案是我的期望之一。谢谢!【参考方案4】:

Cluster IP 是 K8s 分配给服务的虚拟 IP。是K8s内部IP。

集群 IP 使其可以从任何 Kubernetes 集群的节点访问。为此目的使用虚拟 IP 地址可以让多个 pod 在同一个节点上公开相同的端口——所有这些 pod 都可以通过唯一的 IP 地址访问。

这个 IP 是稳定的,在服务生命周期内永远不会改变(除非明确删除)。

2 个不同的 pod 可以使用此 IP 进行通信,但我建议使用集群 DNS 服务。

【讨论】:

我们可以在不购买外部 dns 名称的情况下为集群 IP 分配名称吗?能否建议您实现这一目标? 我尝试从我在 minikube 中的一个 pod ping & traceroute 到 cluster-ip,但两个命令都没有成功。我也尝试过“minikube ssh”,然后运行 ​​ping 和 traceroute(在安装 iputils-ping 和 traceroute 包之后),但也没有成功。我在这里有什么遗漏吗?

Kubernetes 集群中的 Kafka - 如何从 Kubernetes 集群外部发布/使用消息

】Kubernetes集群中的Kafka-如何从Kubernetes集群外部发布/使用消息【英文标题】:KafkainKubernetesCluster-Howtopublish/consumemessagesfromoutsideofKubernetesCluster【发布时间】:2017-06-1114:40:29【问题描述】:我已经在Kubernetes集群中部署并运行了Kafka... 查看详情

如何从同一项目中的另一个 Kubernetes 集群调用 Kubernetes 集群公开的服务

】如何从同一项目中的另一个Kubernetes集群调用Kubernetes集群公开的服务【英文标题】:HowtocallaserviceexposedbyaKubernetesclusterfromanotherKubernetesclusterinsameproject【发布时间】:2015-10-1806:51:54【问题描述】:我有两个服务,集群K1中的S1和... 查看详情

Kubernetes 集群节点用尽 /tmp 中的 inode

】Kubernetes集群节点用尽/tmp中的inode【英文标题】:Kubernetesclusternodesrunningoutofinodesin/tmp【发布时间】:2020-05-0204:43:20【问题描述】:对于Kubernetes集群节点上的/tmp文件系统(分区)是否有建议的最小大小(或最小inode数)?我所经... 查看详情

私有子网中的本地 Kubernetes 集群

】私有子网中的本地Kubernetes集群【英文标题】:on-premisekubernetesclusterinprivatesubnet【发布时间】:2019-01-2019:00:16【问题描述】:我想在我们的本地数据中心内运行一个包含1个主节点和2个工作节点的Kubernetes集群,所有3个节点都位... 查看详情

kubernetes集群搭建详细教程

kubernetes集群搭建详细教程一、环境初始配置1.配置三台主机IP和hostname2.配置selinux3.清空防火墙规则4.关闭swap5.修改内核参数6.配置yum仓库7.配置时间同步8.ip_forward修改二、集群环境配置1.配置kubernetes的yum源2.配置containerd的源3.配置c... 查看详情

Kubernetes 中 CA 证书的不同功能是啥?

】Kubernetes中CA证书的不同功能是啥?【英文标题】:WhatisthedifferentfunctionalityoftheCAcertificatesinKubernetes?Kubernetes中CA证书的不同功能是什么?【发布时间】:2018-04-2407:40:51【问题描述】:我是Kubernetes新手。在这里,我对kubernetes集群... 查看详情

如何使用 Terraform 公开具有公共 IP 地址的 Azure Kubernetes 集群

】如何使用Terraform公开具有公共IP地址的AzureKubernetes集群【英文标题】:HowtoexposeanAzureKubernetesclusterwithapublicIPaddressusingTerraform【发布时间】:2021-02-2016:52:08【问题描述】:我无法使用公共IP地址公开部署在AKS上的k8s集群。我正在... 查看详情

更改 Kubernetes docker-for-desktop 集群网络 ip

】更改Kubernetesdocker-for-desktop集群网络ip【英文标题】:ChangeKubernetesdocker-for-desktopclusternetworkip【发布时间】:2019-05-0413:03:19【问题描述】:我正在尝试在docker-for-desktops上配置Kubernetes,并且我想更改分配给容器的默认网络。示例... 查看详情

Kubernetes 集群中 Docker 镜像中的环境变量

】Kubernetes集群中Docker镜像中的环境变量【英文标题】:environmentvariablesinDockerimagesinKubernetesCluster【发布时间】:2019-06-2305:24:20【问题描述】:我正在开发一些GCP应用程序,这些应用程序在GCP的Kubernetes集群中被dockerized(我是Docker... 查看详情

Kubernetes 在不同网络中的设置

】Kubernetes在不同网络中的设置【英文标题】:Kubernetessetupindifferentnetwork【发布时间】:2019-04-1700:35:19【问题描述】:是否可以使用不同的网络设置集群?意味着master拥有不同的ip,node拥有不同的网络ip。我们将在一个具有主机ipx... 查看详情

如何允许 kubernetes 集群访问我的 ec2 机器?

】如何允许kubernetes集群访问我的ec2机器?【英文标题】:HowdoIallowakubernetesclustertoaccessmyec2machine?【发布时间】:2019-11-0604:53:03【问题描述】:我想允许一个kubernetes集群及其中运行的所有pod访问我的ec2机器。这意味着我必须在我... 查看详情

将节点添加到 Kubernetes 中的现有集群

】将节点添加到Kubernetes中的现有集群【英文标题】:AddingnodetoexistingclusterinKubernetes【发布时间】:2015-11-2603:00:02【问题描述】:我有一个运行在2台机器(master-minion节点和minion节点)上的kubernetes集群。我想在不破坏当前设置的... 查看详情

tungstenfabricsdn—openstack与kubernetes异构集群统一sdn方案(代码片段)

...目录目录逻辑架构部署示例参考文档逻辑架构在OpenStack与Kubernetes异构集群环境中,Contrail将VM和Container统一定义为ComputingInstance,将VirtualNetwork统一定义为VRF和VirtualInterface。通过这种方式,OpenStackCluster中的VMs和KubernetesCluster中的Po... 查看详情

sh与kubernetes集群中的db交互(代码片段)

查看详情

EKS:kubernetes 集群中的不健康节点

】EKS:kubernetes集群中的不健康节点【英文标题】:EKS:Unhealthynodesinthekubernetescluster【发布时间】:2021-04-1223:02:33【问题描述】:使用terraform在AWSEKS上预置节点组时出现错误。错误:等待创建EKS节点组(xxx)时出错:NodeCreationFailure:Unh... 查看详情

如何为 Kubernetes 中的节点添加角色?

】如何为Kubernetes中的节点添加角色?【英文标题】:HowtoaddrolestonodesinKubernetes?【发布时间】:2018-07-2900:33:43【问题描述】:当我使用kubeadm配置Kubernetes集群时,我的节点被标记为“无”。这是Kubernetes中的一个已知错误,目前正... 查看详情

将 Google Cloud 中的外部 IP 与 Kubernetes 服务一起使用以将其公开到 Internet

】将GoogleCloud中的外部IP与Kubernetes服务一起使用以将其公开到Internet【英文标题】:UseExternalIPinGooglecloudwithKubernetesservicetoexposeittotheinternet【发布时间】:2021-12-1100:45:21【问题描述】:我有一个在kubernetes集群上运行的phpmyadmin服务... 查看详情

使用 Prometheus 监控 Kubernetes 集群中的 Spring Boot 应用程序

】使用Prometheus监控Kubernetes集群中的SpringBoot应用程序【英文标题】:UsingPrometheustomonitorSpringBootApplicationsinKubernetesCluster【发布时间】:2020-05-0605:28:39【问题描述】:我在本地kubernetes集群中部署了SpringBoot驱动的微服务。微服务使... 查看详情