gpt4 book ai didi

kubernetes - 使用服务的外部 IP 作为部署的环境变量

转载 作者:行者123 更新时间:2023-12-03 11:21:44 25 4
gpt4 key购买 nike

是否可以将服务的外部 IP(NodePort 或 LoadBalancer)作为环境变量传递给不同服务部署中的容器?

举一个具体的例子,考虑一个 Kubernetes 集群,它有多个团队成员的命名空间,所以他们每个人都有自己的测试环境。在单个环境中,至少有两个服务:

  • API 网关服务,用于将流量路由到其他服务
  • 可以向环境注册 DNS 条目的服务

  • 对于服务#2,它需要知道服务#1 的外部IP 地址。到目前为止,我只能找到使用 kubectl 的示例。描述服务 #1 以查找此信息。我希望有可能做这样的事情:
    apiVersion: v1
    kind: Service
    metadata:
    name: gateway
    namespace: "${ env }"
    labels:
    app: gateway
    spec:
    type: LoadBalancer
    ports:
    - port: 8080
    selector:
    app: gateway


    apiVersion: extensions/v1
    kind: Deployment
    metadata:
    name: svc2-deployment
    namespace: "${ env }"
    labels:
    app: svc2
    spec:
    template:
    metadata:
    labels:
    app: svc2
    spec:
    containers:
    - name: app
    env:
    - name: GATEWAY_IP
    valueFrom:
    fieldRef:
    fieldPath: service.gateway.----.ingressIp

    而不是使用说 initContainers用一个脚本做 kubectl事物。特别是因为我对 Kubernetes 很陌生:)

    最佳答案

    不是真的,但你可以使用 DNS为了那个原因。例如:

    apiVersion: extensions/v1
    kind: Deployment
    metadata:
    name: svc2-deployment
    namespace: "${ env }"
    labels:
    app: svc2
    spec:
    template:
    metadata:
    labels:
    app: svc2
    spec:
    containers:
    - name: app
    env:
    - name: GATEWAY_IP
    value: gateway.<namespace-where-gw-is-running>.svc.cluster.local

    关于kubernetes - 使用服务的外部 IP 作为部署的环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52668779/

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