gpt4 book ai didi

Kubernetes:位于不同 pod 中的容器之间的通信

转载 作者:行者123 更新时间:2023-12-02 12:04:48 24 4
gpt4 key购买 nike

我有两个通过 http 协议(protocol)进行通信的微服务。

  • AC6K:从阿特拉斯·科普柯 6000 设备获取数据的 C# 微服务。
  • LocalWriter:从 AC6K 获取数据并将信息存储在数据库中的 python 应用程序

  • 我已经在 Windows 和 Linux 环境中对其进行了测试,并且运行良好。当我对每个微服务进行竞争并进行部署时,没有通信。请在此处找到用于容器化和部署应用程序的相应 docker 和 yaml 文件

    ac6k docker 文件:
    FROM microsoft/aspnetcore-build

    EXPOSE 5010

    WORKDIR /app

    COPY . .

    RUN dotnet restore

    ENTRYPOINT ["dotnet", "ac6kcore.dll"]




    - ac6kUp.yaml

    apiVersion: v1
    kind: Service
    metadata:
    name: ac6kcore
    labels:
    run: ac6kcore
    spec:
    type: NodePort
    ports:
    - port: 5010
    name: ac6kcore
    targetPort: 5010
    nodePort: 32766
    protocol: TCP
    selector:
    run: ac6kcore
    ---
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
    name: ac6kcore
    spec:
    selector:
    matchLabels:
    run: ac6kcore
    replicas: 1
    template:
    metadata:
    labels:
    run: ac6kcore
    spec:
    hostNetwork: true
    containers:
    - image: afierro/ac6kcore:lw
    name: ac6kcore
    ports:
    - containerPort: 5010
    restartPolicy: Always

    本地作家码头文件:
    FROM python:3.6

    RUN mkdir -p /mongodbapp

    WORKDIR /mongodbapp

    COPY requirements.txt /mongodbapp

    RUN pip install --no-cache-dir -r requirements.txt

    ADD . /mongodbapp

    EXPOSE 9090

    CMD ["python", "runapp.py"]

    - LocalWriter.yaml

    apiVersion: v1
    kind: Service
    metadata:
    annotations:
    service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"
    name: localwriter
    labels:
    app: localwriter
    spec:
    type: NodePort
    ports:
    - port: 9090
    name: localwriter
    targetPort: 9090
    nodePort: 32756
    protocol: TCP
    selector:
    app: localwriter
    ---
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
    name: localwriter
    spec:
    replicas: 1
    selector:
    matchLabels:
    app: localwriter
    template:
    metadata:
    labels:
    app: localwriter
    spec:
    containers:
    - name: flasknode
    image: afierro/localwriter:v1
    imagePullPolicy: Always
    ports:
    - containerPort: 9090

    提前致谢

    最佳答案

    您使用服务将一个部署中的 pod 与另一个部署中的 pod 通信。

    在这里检查服务:

    https://kubernetes.io/docs/concepts/services-networking/service/

    确保您在服务中有正确的选择器。

    您可以使用 pod 内的环境变量来调用其他服务。 Kubernetes 使用服务 ip 和端口作为环境变量启动 pod,要检查这一点,您可以在 pod 中 ssh 并使用命令 printenv。

    关于Kubernetes:位于不同 pod 中的容器之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55284676/

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