首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes -服务集群IP地址与Pod IP地址

Kubernetes -服务集群IP地址与Pod IP地址
EN

Stack Overflow用户
提问于 2017-11-03 11:58:27
回答 1查看 1.2K关注 0票数 4

我在Azure (ACS)上部署了一个带有Kubernetes的Postgres数据库。

我使用了StatefulSet和服务相结合的方法。

代码语言:javascript
复制
apiVersion: apps/v1beta1
kind: StatefulSet
metadata:
  name: postgres
spec:
  selector:
    matchLabels:
      app: postgres
  serviceName: "postgres"
  # 1 instance
  replicas: 1
  template:
    metadata:
      labels:
        app: postgres
    spec:
      containers:
      # Postgres database
      - name: postgres
        image: postgres:10
        ports:
        - containerPort: 5432
        volumeMounts:
          - name: pv-postgres
            mountPath: /var/lib/postgresql/data
        env:
        - name: POSTGRES_USER
          value: postgres
        - name: POSTGRES_DB
          value: tariffbook_db
        - name: PGDATA
          value: /var/lib/postgresql/data
        - name: POSTGRES_PASSWORD
          valueFrom:
            secretKeyRef:
              name: postgres-secret
              key: password
      hostname: postgres
      volumes:
      - name: pv-postgres
      # Upon node restart, restart the container
      restartPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
  name: postgres
  labels:
    app: postgres
spec:
  ports:
  - port: 5432
    protocol: TCP
  selector:
    app: postgres

Kubernetes部署数据库并在kube中注册:

代码语言:javascript
复制
kubectl exec -ti busybox -- nslookup postgres
...
Name:      postgres
Address 1: 10.0.209.61 postgres.default.svc.cluster.local

现在当我点击postgres的时候,我没有收到任何回复。

代码语言:javascript
复制
kubectl exec -ti busybox -- ping postgres
PING postgres (10.0.209.61): 56 data bytes

--- postgres ping statistics ---
14 packets transmitted, 0 packets received, 100% packet loss

Pod可以通过其内部IP : 10.244.0.46达到,但该服务并不提供对postgres Pod的访问。

代码语言:javascript
复制
kubectl get pod --all-namespaces -o wide
NAMESPACE     NAME                                            READY     
STATUS    RESTARTS   AGE       IP             NODE
default       azure-files-pod                                 1/1       
Running   0          19h       10.244.2.16    k8s-agent-52f7ae4d-1
default       busybox                                         1/1       
Running   12         12h       10.244.2.49    k8s-agent-52f7ae4d-1
default       postgres-0                                      1/1       
Running   0          1m        10.244.0.46    k8s-agent-52f7ae4d-0

我跟踪了DNS故障排除提示,但是我没有注意到在DNS设置中有任何错误。

我的StatefulSet或服务中是否有错误配置?

非常感谢你的帮助!向你问好,埃里克·马努格拉

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-03 12:35:49

您只打开了端口5432,从来没有一个端口来平您的服务。如果您试图连接到端口5432,您应该能够:

代码语言:javascript
复制
kubectl exec -ti busybox -- telnet postgres.default.svc.cluster.local 5432

或者(你真的不应该试图直接连接到IP)

代码语言:javascript
复制
kubectl exec -ti busybox -- telnet 10.0.209.61 5432
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47095254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档