Kubernetes 如何测试容器是否正在运行postgres

Kubernetes 如何测试容器是否正在运行postgres,kubernetes,amazon-eks,Kubernetes,Amazon Eks,我刚刚在AWS EKS上部署了一个带有Postgres的docker 以下是详细说明 如何访问或测试postgres是否有效。我尝试从工作节点在VPC内通过post访问这两个IP psql -h #IP -U #defaultuser -p 55432 下面是部署 apiVersion: extensions/v1beta1 kind: Deployment metadata: name: postgres spec: replicas: 1 template: meta

我刚刚在AWS EKS上部署了一个带有Postgres的docker

以下是详细说明

如何访问或测试postgres是否有效。我尝试从工作节点在VPC内通过post访问这两个IP

 psql -h #IP -U #defaultuser -p 55432
下面是部署

apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: postgres
spec:
  replicas: 1
  template:
    metadata:
      labels:
    app: postgres
spec:
  containers:
    - name: postgres
      image: postgres:10.4
      imagePullPolicy: "IfNotPresent"
      ports:
        - containerPort: 55432
      # envFrom:
      #   - configMapRef:
      #       name: postgres-config
      volumeMounts:
        - mountPath: /var/lib/postgresql/data
          name: postgredb
  volumes:
    - name: postgredb
      persistentVolumeClaim:
        claimName: efs

令人惊讶的是,我能够连接到psql,但在5432上:(不确定我做错了什么。我将containerPort作为55432传递。简而言之,您需要运行以下命令以在55432端口上公开数据库

kubectl expose deployment postgres --port=55432 --target-port=5432 --name internal-postgresql-svc
从现在起,您可以从集群内部通过端口55432将服务名称用作主机名或通过其ClusterIP地址连接到它:

kubectl get internal-postgresql-svc
您在部署清单文件中所做的只是附加了有关容器使用的网络连接的附加信息,这是误导性的,因为您的容器仅公开5432端口(您可以自行验证) 如果要在Kubernetes集群之外公开postgresql数据库,请检查端口类型。


要测试POD容器内的进度是否正常运行,请执行以下操作:

kubectl run postgresql-postgresql-client --rm --tty -i --restart='Never' --namespace default --image bitnami/postgresql --env="PGPASSWORD=<HERE_YOUR_PASSWORD>" --command -- psql --host <HERE_HOSTNAME=SVC_OR_IP> -U <HERE_USERNAME> 
kubectl运行postgresql-postgresql客户端--rm--tty-i--restart='Never'--namespace默认--image-bitnami/postgresql--env=“PGPASSWORD=”--command--psql--host-U

Ty nepomucen你能看看这个吗