gpt4 book ai didi

docker - 我将如何设置kubernetes服务和Pod的IP地址和端口以将一些信息发送到Pod中?

转载 作者:行者123 更新时间:2023-12-02 20:41:32 25 4
gpt4 key购买 nike

ClusterIP,pod IP,nodePort和targetPort的问题仍然让我感到困惑。
我想建立一个小的测试用例,以更好地评估用例,但是我有点麻烦。目前,我正在为Mac上的docker使用kubernetes。
我想要的是:

  • 带有用于监听端口(例如8080)的应用程序的pod。
  • Pod在Docker上的Kubernetes随附的docker-desktop节点上运行
  • 一种将请求从本地计算机发送到Pod可以在其8080端口上接收的docker-desktop节点的方法,以及一种获取Pod为响应请求而提供的信息的方法

  • 我很确定我需要像Service这样的东西来充当pod和我之间的中间件,但是我不确定如何设置这样的东西。
    像kubernetes-dashboard api之类的东西,我可以在其中访问pod:
    http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/pod?namespace=default
    在这里,知道 kubernetes-dashboard被我的pod的命名空间所替代,并且 https被我在Service中配置的任何端口名所替代,但是其余的我不确定。

    最佳答案

    您引用的kubernetes仪表板示例实际上是使用kubectl proxykubectl port forward来访问它的。在这种情况下,Kubernetes API Server充当代理并将请求转发到Pod。
    您可以只创建一个clusterIP类型的服务,并使用kubectl proxykubectl port forward机制来访问它。 Here是对此的指南。
    该服务如下图所示

    apiVersion: v1
    kind: Service
    metadata:
    name: my-service
    spec:
    selector:
    app: MyApp
    ports:
    - protocol: TCP
    port: 8080
    targetPort: 8080
    您还可以使用NodePort类型服务公开容器。在这种情况下,您不需要使用 kubectl proxykubectl port forward
    apiVersion: v1
    kind: Service
    metadata:
    name: my-service
    spec:
    type: NodePort
    selector:
    app: MyApp
    ports:
    # By default and for convenience, the `targetPort` is set to the same value as the `port` field.
    - port: 80
    targetPort: 8080
    # Optional field
    # By default and for convenience, the Kubernetes control plane will allocate a port from a range (default: 30000-32767)
    nodePort: 30007
    您可以使用 http://<NODEIP>:30007访问它,其中 <NODEIP>是任何kubernetes节点的IP。

    关于docker - 我将如何设置kubernetes服务和Pod的IP地址和端口以将一些信息发送到Pod中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63110136/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com