簡體   English   中英

如何通過名稱從vm訪問GCP中的kubernetes服務?

[英]How to access a kubernetes service in GCP by name from a vm?

我在名稱空間myNamespace中的gcp中托管了一個名為myService的負載均衡kubernetes服務。 我給它一個'myKubeTag'的標簽。 我還有一個運行vm,它本身正在運行一個想要與myService通信的docker容器。 我已經創建了一個防火牆規則,允許兩者之間的tcp流量。

我可以將服務的IP地址提供給vm進行連接,我想知道的是,如何設置名稱代理,以便vm可以通過名稱引用它?

工作負載和服務是從helm啟動的,如下所示:

apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
  name: {{ template "app.prefix" . }}
spec:
  selector:
    matchLabels:
      name: {{ template "app.prefix" . }}
  template:
    metadata:
      labels:
        name: {{ template "app.prefix" . }}
    spec:
      nodeSelector:
        target_workload: {{ .Values.prefix }}-myApp
      containers:
        - name: myApp
          image: {{ .Values.myApp.image }}
      tolerations:
        - key: "target_workload"
          operator: "Equal"
          value: {{ .Values.prefix }}-myApp
          effect: "NoSchedule"

---

apiVersion: v1
kind: Service
metadata:
  name: {{ template "app.prefix" . }}
spec:
  ports:
    - name: http
      protocol: TCP
      port: 8080
      targetPort: 8080
  type: LoadBalancer
  selector:
    role: {{ template "app.prefix" . }}

我已准備好以下內容: https//kubernetes.io/docs/concepts/services-networking/dns-pod-service/

這讓我覺得主機名是myService.myNamespace.sxc.cluster-domain.myCluster,但是我的VM上運行的容器正在拋出一個Unknown主機異常。

GCP中使用服務type: LoadBalancer ,它會自動為您分配一個ExternalIP:

$ kubectl get svc
NAME         TYPE           CLUSTER-IP     EXTERNAL-IP    PORT(S)        AGE
kubernetes   ClusterIP      10.12.0.1      <none>         443/TCP        162m
nginx-svc    LoadBalancer   10.12.15.100   35.232.130.5   80:30826/TCP   8m27s

在此示例中,域看起來像以下5.130.232.35.bc.googleusercontent.com

我已經通過在nginx pod中執行nslookup來檢查它

$ kubectl exec nginx-deployment-85c9bf4fd7-h5tt9 nslookup 35.232.130.5
Server:         10.12.0.10
Address:        10.12.0.10#53

Non-authoritative answer:
5.130.232.35.in-addr.arpa       name = 5.130.232.35.bc.googleusercontent.com.

請記住,默認nginx映像中沒有nslookup,因此您需要安裝它。

希望這是你想要的。

暫無
暫無

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

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