簡體   English   中英

如何在 kube.netes pod 中使用服務名稱

[英]how to use service name inside kubernetes pod

我想替換這兩個值 ( . . . .*** = @IP) enter image description here

使用服務名稱在此處輸入圖像描述

有什么解決辦法嗎?

例如,假設您的服務規范如下所示:

apiVersion: v1
kind: Service
metadata:
  name: api
  namespace: einstore  # <-- you need to specify the namespace 
  labels:
    app: api
spec:
  type: NodePort
  ports:
    - port: 8080
      nodePort: 30001
      targetPort: 8080
      protocol: TCP
      name: api
  selector:
    app: api

同樣對於您的部署:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: api
  name: api
  namespace: einstore  # <-- you need to specify the namespace
spec:
  selector:
...

在集群中(例如 pod 到 pod),您可以將服務稱為:

- name: APICORE_SERVER_URL
  value: "http://api.einstore:8080"

這是我的服務 他的名字是 api

apiVersion: v1
kind: Service
metadata:
  name: api
  labels:
    app: api
spec:
  type: NodePort
  ports:
    - port: 8080
      nodePort: 30001
      targetPort: 8080
      protocol: TCP
      name: api
  selector:
    app: api

這是我的部署

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: api
  name: api
spec:
  selector:
    matchLabels:
      app: api
  template:
    metadata:
      labels:
        app: api
    spec:
      containers:
        - name: api
          image: einstore/einstore-core:0.1.1
          env:
            - name: APICORE_STORAGE_LOCAL_ROOT
              value: "/home/einstore"
            - name: APICORE_SERVER_NAME
              value: "Einstore - Enterprise AppStore"
            - name: APICORE_SERVER_MAX_UPLOAD_FILESIZE
              value: "50"
            - name: APICORE_DATABASE_HOST
              value: "postgres"
            - name: APICORE_DATABASE_USER
              value: "einstore"
            - name: APICORE_DATABASE_PASSWORD
              value: "einstore"
            - name: APICORE_DATABASE_DATABASE
              value: "einstore"
            - name: APICORE_DATABASE_PORT
              value: "5432"
            - name: APICORE_DATABASE_LOGGING
              value: "false"
            - name: APICORE_JWT_SECRET
              value: "secret"
            - name: APICORE_STORAGE_S3_ENABLED
              value: "false"
            - name: APICORE_STORAGE_S3_BUCKET
              value: "~"
            - name: APICORE_STORAGE_S3_ACCESS_KEY
              value: "~"
            - name: APICORE_STORAGE_S3_REGION
              value: "~"
            - name: APICORE_STORAGE_S3_SECRET_KEY
              value: "~"
            - name: APICORE_SERVER_URL
              value: "http://**.***.*.***:30001/"

當我嘗試用我的機器@ip 替換 *** 一切正常,但我需要更改它,以便有服務的名稱,以便我可以在任何其他機器上部署應用程序第一個解決方案 LGTM 但是我得到這個錯誤

curl http://api.einstore:8080/
curl: (6) Could not resolve host: api.einstore

注意:einstore=我的命名空間的名稱

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM