mysql - kubectl 无法访问 pod 应用程序

标签 mysql wordpress kubernetes

A 有这个 pod 规范:

apiVersion: v1
kind: Pod
metadata:
  name: wp
spec:
  containers:
  - image: wordpress:4.9-apache
    name: wordpress
    env:
      - name: WORDPRESS_DB_PASSWORD
        value: mysqlpwd
      - name: WORDPRESS_DB_HOST
        value: 127.0.0.1
  - image: mysql:5.7
    name: mysql
    env:
    - name: MYSQL_ROOT_PASSWORD
      value: mysqlpwd
    volumeMounts:
    - name: data
      mountPath: /var/lib/mysql
  volumes:
    - name: data
      emptyDir: {}

我使用以下方式部署它:

kubectl create -f wordpress-pod.yaml

现在它已正确部署:

kubectl get pods wp 2/2 Running 3 35h

然后当我这样做时:

kubectl describe po/wp

Name:         wp
Namespace:    default
Priority:     0
Node:         node3/192.168.50.12
Start Time:   Mon, 13 Jan 2020 23:27:16 +0100
Labels:       <none>
Annotations:  <none>
Status:       Running
IP:           10.233.92.7
IPs:
  IP:  10.233.92.7
Containers:

我的问题是我无法访问该应用程序:

wget http://192.168.50.12:8080/wp-admin/install.php
Connecting to 192.168.50.12:8080... failed: Connection refused.

wget http://10.233.92.7:8080/wp-admin/install.php 都不是 作品

pod 描述或部署过程是否有问题?

谢谢

最佳答案

根据您当前的设置,您需要在集群内使用 wget http://10.233.92.7:8080/wp-admin/install.php,即通过执行 kubectl exec 到另一个 Pod,因为 10.233.92.7 IP 仅在集群内有效。

您应该创建一个service用于暴露你的 pod。创建一个集群IP类型服务(默认)用于从集群内部访问。如果您想从集群外部(即从桌面)访问,请创建 NodePort 或 LoadBalancer 类型的服务。

从桌面访问应用程序的其他方式是 port forwarding 。在这种情况下,您不需要创建服务。

这是 accessing pods using NodePort service 的教程。在这种情况下,您的节点需要有公共(public) IP。

关于mysql - kubectl 无法访问 pod 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59749339/

相关文章:

php - sql - 确定第一组记录

MySQL数据库导入成功但不工作

php - 具有依赖项的子主题排队

kubernetes - 将 Celery 与不同 Pod 中的多个 worker 一起使用

apache - Kubernetes Apache2被杀

mysql - Delphi连接在线sql数据库

mysql - OpenJPA 和 MySQL 自动增量

javascript - 如何阻止此脚本在移动设备上加载?

html - 是否可以在 HTML 中编辑 Wordpress 页面?

kubernetes - 如何使用导出网络策略允许访问 kubernetes api?