私はAzure(ACS)上でKubernetesでPostgresデータベースを配備しました。Kubernetes - サービスクラスターのIPアドレスとPodのIPアドレス
私はServiceと組み合わせたStatefulSetを使用しました。
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-DNSに登録する:
kubectl exec -ti busybox -- nslookup postgres
...
Name: postgres
Address 1: 10.0.209.61 postgres.default.svc.cluster.local
を今、私はpostgresのにpingを実行するとき、私は何の応答を受信しません。
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
ポッドは、その内部のIPを介して到達することができます:10.244.0.46が、サービスはpostgresのポッドへのアクセスを提供されていません。
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 troubleshooting tipsを踏襲しているが、私はDNSの設定にエラーが気づいていません。
StatefulSetまたはサービスに何か問題がありますか?
ありがとうございました! よろしくお願いします。 Eric MANUGUERRA
私は申し訳ありませんが、あなたも作成しています別々に表示されていないサービスオブジェクト? –
はい私はpostgresサービスを配備しました。これはyamlコードの最後に記述されています。 –