如何在k8s中连接到我的mysql pod或mysql的节点?

user11464063:

我将mysql pod部署到我的k8s。这是配置,我对端口感到困惑,像这样:

kind: Deployment
...
   containers:
     - ports:
        - containerPort: 3306  # @1
---

apiVersion: v1
kind: Service 
metadata:
  name: mysql
  labels:
    app: mysql
spec:
  selector:
    app: mysql

  # way 1
  ports:
    - port: 3306  # @2

      targetPort: 3306  # @3

  # way 2
  type: NodePort
  ports: 
    - port: 3306
      targetPort: 3306
      nodePort: 30600


@ question1。谁代理这个端口@ question2。这是什么端口?我的意思是容器已经暴露了端口3306,服务也暴露了。在我的单个节点中,这些不会冲突吗?@ question3。这个端口是指容器暴露的端口吗?

问题4:当我使用方法1.部署此服务器时,如何从pods和localMachine访问我的mysql服务器。

问题5:当我用方法2部署它时,如何从pods和localMachine访问我的mysql服务器。

瓦西里·安加波夫(Vasily Angapov):
  1. Pod监听端口,服务代理端口。
  2. Pod侦听端口3306,“仅服务”将端口3306代理到Pod。服务不监听端口,它只是一个简单的iptables规则。
  3. 当创建默认的ClusterIP服务时,您可以通过pod的主机名“ mysql”访问数据库。除非您执行“ kubectl port-forward”,否则从Kubernetes外部无法访问数据库。
  4. 创建NodePort服务时,您仍然可以通过pod的主机名“ mysql”访问数据库,但是也可以使用任何节点IP + nodePort访问数据库。因此,如果您的节点的地址为192.168.1.10,而nodePort为30600,则必须将数据库连接到192.168.1.10:30600。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将我的K8s中的Pod日志重定向到具有Pod名称的文件

如何在Windows的Python 3中连接到MySQL?

使用K8S Rest API从特定节点获取Pod

如何在不杀死原始Pod的情况下改变k8s的Pod倾斜度?

spring boot如何在k8s中连接localhost mysql?

无法在k8s上创建两个mysql pod

如何基于kubernetes中的节点订购Pod

如何知道您在k8s主节点上?

在K8S中的POD中链接容器

如何将mysql-client连接到我的spring boot应用程序

无法在K8S中更新ReplicationController的Pod映像

我们可以在K8S的POD中执行到容器中吗?

如何在内部将MySQL Kubernetes容器与Node.js K8S容器内部连接?

如何在不运行进程的K8S上运行utils POD

如何获得k8s中Pod的实时资源使用情况?

K8S如何使用imagePullSecrets列表处理POD定义中的多个远程docker注册

如何在Ready,SchedulingDisabled中找到k8s节点的原因

K8S Pod Readiness Probe失败,连接被拒绝,但是Pod正在处理请求

K8s天蓝色VM节点-可以从主节点ping工作节点,但不能ping工作节点上的Pod

如何基于与K8s中的Pod的交互获得用户的IP

如何查看k8s pod启动所需的时间?

如何在Julia中连接到MySQL数据库

如何检查每个节点的Pod

在不同节点上具有两个副本的K8S Pod

如何在不部署K8S的情况下重新启动Pod?

在k8s中,如何在复制控制器中部署Pod?

如何在k8s中使用statefulset进行Pod负载平衡?

如何使用MySQL Workbench连接到我的数据库服务器?

如何将Grails 3.0连接到我的本地Mysql数据库