如何在Deployment.yaml中“ kubectl get ep”

时间:2019-08-01 14:19:02

标签: kubernetes kubernetes-deployment

我有一个使用环境变量的kubernetes部署,我想知道如何在其中设置动态端点。

我暂时使用

$ kubectl get ep rtspcroatia
NAME          ENDPOINTS         AGE
rtspcroatia   172.17.0.8:8554   3h33m

然后将端点的值复制/粘贴到我的deployment.yaml中。对我来说,这不是正确的方法,但是我找不到其他方法。

这是我的deployment.yaml的一部分:

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  labels:
    io.kompose.service: person-cam0
  name: person-cam0
spec:
  template:
    metadata:
      labels:
        io.kompose.service: person-cam0
    spec:
      containers:
      - env:
        - name: S2_LOGOS_INPUT_ADDRESS
          value: rtsp://172.17.0.8:8554/live.sdp
        image: ******************
        name: person-cam0

编辑:rtsp容器的服务

apiVersion: v1
kind: Service
metadata:
  labels:
    io.kompose.service: rtspcroatia
  name: rtspcroatia
spec:
  type: LoadBalancer
  ports:
  - protocol: TCP
    port: 8551
    targetPort: 8554
  selector:
    io.kompose.service: rtspcroatia

您能帮我做些类似的事情吗?

      containers:
      - env:
        - name: S2_LOGOS_INPUT_ADDRESS
          value: rtsp://$ENDPOINT_ADDR:$ENDPOINT_PORT/live.sdp

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以设置动态ENDPOINTS值,例如“ POD_IP:SERVICE_PORT”,如下面的示例yaml代码所示。

   containers:
   - env:
     - name: MY_ENDPOINT_IP
       valueFrom:
           fieldRef:
               fieldPath: status.podIP
     - name: S2_LOGOS_INPUT_ADDRESS
       value: rtsp://$MY_ENDPOINT_IP:$RTSPCROATI_SERVICE_PORT/live.sdp