首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AKS Kubernetes问题

AKS Kubernetes问题
EN

Stack Overflow用户
提问于 2021-01-23 14:37:24
回答 1查看 182关注 0票数 0

有人能解释一下POD到POD在AKS中是如何工作的吗?从docs中,我可以看到它使用kube代理组件将流量发送到所需的POD。

但是有人告诉我,我必须使用clusterIP服务,并将所有相关的POD绑定在一起。那么什么是真正的流动呢?或者我漏掉了什么。下面有几个问题要更清楚。

问题:

  1. 在一个节点内,POD到POD是如何相互交谈的?流量是多少?
  2. 在一个集群(不同的节点)中,POD到POD是如何相互交谈的?流量是多少?
  3. 如果有可能的话,如果您能够描述在kubenet和CNI部署中#1和#2的流,我们将非常感激。

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-23 15:10:03

对于吊舱到吊舱的通信,我们使用services。所以我们首先要明白,

为什么我们需要服务:实际上为我们做了什么服务--他们解析了dns名称,并给出了我们连接特定荚所需要的确切ip。现在,当您想要与pod通信时,您需要创建一个ClusterIP服务。

ClusterIP:在集群内部IP上公开服务。选择此值使服务只能从集群中访问。这是默认的ServiceType。对于ClusterIP服务,您不能从集群外部访问一个吊舱,因此,如果我们只想要在吊舱之间进行通信,我们就使用clusterip服务。

kube是在集群中的每个节点上运行的网络代理。

它维护节点上的网络规则。这些网络规则允许通过群集内部或外部的网络会话与Pods进行网络通信。每个服务维护iptables.And kube为每个服务处理这些ip表。因此,是的,kube是我们k8s集群中最重要的网络设置点.

网络政策在kubernetes是如何运作的:

  • 所有Pods都可以与所有其他Pods进行通信,而无需使用网络地址转换(NAT)。
  • 所有节点都可以在没有NAT的情况下与所有Pods通信。
  • Pod认为自己的IP与其他人所认为的IP相同。

有了这一点:

  • 集装箱到集装箱网络
  • 豆荚式网络
  • 豆荚到服务网络
  • 互联网络

它处理豆荚之间的数据包传输,以及与外部世界的传输。通过在NAT中使用iptables实现负载平衡,它就像一个网络代理和运行在节点上的豆荚的负载平衡器。

kube进程位于Kubernetes网络和运行在该特定节点上的豆荚之间。它负责确保在分组的所有要素之间有效地保持沟通。当用户创建一个Kubernetes服务对象时,kube实例负责将该对象转换为在worker节点上设置的本地iptables规则中有意义的规则。iptables用于将分配给服务对象的虚拟IP转换为服务映射的所有pod。我希望你对kube代理的想法是明确的。

让我们看看它是如何工作的。这里我使用了headless service,这样我就可以连接一个特定的吊舱了。

代码语言:javascript
复制
---
apiVersion: v1
kind: Service
metadata:
  name: my-service
  namespace: default
spec:
  clusterIP: None
  selector:
    app: my-test
  ports:
  - port: 80
    name: rest
---

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: my-sts
spec:
  serviceName:  my-service
  replicas: 3
  selector:
    matchLabels:
      app: my-test
  template:
    metadata:
      labels:
        app: my-test
    spec:
      containers:
        - name: nginx
          image: nginx
          ports:
            - containerPort: 80
              name: web

---

这将创建3个吊舱。as:my-sts-0my-sts-1my-sts-2。现在,如果我们想连接到my-sts-0,只需使用这个dns名称my-sts-0.my-service.default.svc:80。该服务将解析dns名称,并将提供my-sts-0的确切podip。现在,如果您需要从my-sts-1my-sts-0进行通信,只需使用这个dns名称即可。

模板类似于my_pod_name.my_Service_Name.my_Namespace.svc.cluster-domain.example,但是可以跳过集群-domain.示例部分。只有Service_Name.Namespace.svc才能正常工作。

参考

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65860425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档