为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
忽然笑 2023-06-19 13:46:28
我将一个 mysql pod 部署到我的 k8s。这是配置,我对端口感到困惑,就像这样:kind: Deployment...   containers:     - ports:        - containerPort: 3306  # @1---apiVersion: v1kind: Service metadata:  name: mysql  labels:    app: mysqlspec:  selector:    app: mysql  # way 1  ports:    - port: 3306  # @2      targetPort: 3306  # @3  # way 2  type: NodePort  ports:     - port: 3306      targetPort: 3306      nodePort: 30600@问题1。谁代理这个端口@question2。这个端口是什么?我的意思是容器暴露了 3306 端口,服务也暴露了。在我的单节点中,这些不会冲突吗?@问题3。这个端口是指容器暴露的端口?问题 4:当我用方式 1 部署它时。如何从 pods 和我的 localMachine 访问我的 mysql 服务器。问题 5:当我使用方式 2 部署它时,如何从 pods 和我的 localMachine 访问我的 mysql 服务器。
查看完整描述

1 回答

?
慕桂英546537

TA贡献1848条经验 获得超10个赞

  1. Pod 监听端口,Service 代理端口。

  2. Pod 监听 3306 端口,Service 只代理 3306 端口到 Pod。服务不监听端口,它只是一个简单的 iptables 规则。

  3. 当您创建默认的 ClusterIP 服务时,您可以通过主机名“mysql”从 pod 访问您的数据库。从 Kubernetes 外部你无法访问数据库,除非你执行“kubectl port-forward”。

  4. 当您创建 NodePort 服务时,您仍然可以通过主机名“mysql”从 pod 访问您的数据库,但您也可以使用任何节点 IP + nodePort 访问数据库。因此,如果您的节点地址为 192.168.1.10 并且您的节点端口为 30600,那么您必须将 DB 连接到 192.168.1.10:30600。


查看完整回答
反对 回复 2023-06-19
  • 1 回答
  • 0 关注
  • 185 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信