【问题标题】:How to expose MariaDB in Kubernetes?如何在 Kubernetes 中暴露 MariaDB?
【发布时间】:2021-11-22 00:06:12
【问题描述】:

我有一个在 Microk8s 中运行 MariaDB 的 Docker 容器(在单个 Unix 机器上运行)。

# Hello World Deployment YAML
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mariadb
spec:
  selector:
    matchLabels:
      app: mariadb
  template:
    metadata:
      labels:
        app: mariadb
    spec:
      containers:
      - name: mariadb
        image: mariadb:latest
        env:
        - name: MARIADB_ROOT_PASSWORD
          value: sa
        ports:
        - containerPort: 3306

这些是日志:

(...)
2021-09-30  6:09:59 0 [Note] mysqld: ready for connections.
Version: '10.6.4-MariaDB-1:10.6.4+maria~focal'  socket: '/run/mysqld/mysqld.sock'  port: 3306  mariadb.org binary distribution

现在,

  • 无法连接到机器上的 3306 端口。
  • 在使用端口 8081 上的服务(任何类型)公开 pod 后进行连接也不起作用。

我怎样才能获得连接?

【问题讨论】:

  • 你想将mariaDB暴露在集群外还是集群内,给其他Pod?
  • @AndD 外面..
  • @DomJourneyman 请分享您的服务
  • @Brucewayne-TheGeekKiller 没有服务定义,我使用kubectl expose。另外,我直接用另一个pod,服务端口不工作
  • 你找到解决方案了吗??

标签: docker kubernetes yaml mariadb


【解决方案1】:

答案已写在 cmets 部分,但为了澄清,我在此处以社区 Wiki 的形式发布解决方案。

在这种情况下,通过设置spec.selector 解决了连接问题。

.spec.selector 字段定义了 Deployment 如何找到要管理的 Pod。在这种情况下,您选择在 Pod 模板 (app: nginx) 中定义的标签。

.spec.selector 是一个必填字段,用于指定此 Deployment 所针对的 Pod 的 label selector

【讨论】:

    【解决方案2】:

    您需要使用带有适当标签的服务

    示例服务

    apiVersion: v1
    kind: Service
    metadata:
      name: mariadb
    spec:
      selector:
        name: mariadb
      ports:
        - protocol: TCP
          port: 3306
          targetPort: 3306
      type: ClusterIP
    

    您可以使用服务名称进行连接,或者将服务类型更改为 LoadBalancer 以使用 IP 公开它。

    apiVersion: v1
    kind: Service
    metadata:
      name: mariadb
    spec:
      selector:
        name: mariadb
      ports:
        - protocol: TCP
          port: 3306
          targetPort: 3306
      type: LoadBalancer
    

    【讨论】:

      猜你喜欢
      • 2020-08-11
      • 2019-02-17
      • 1970-01-01
      • 2020-06-18
      • 2016-03-25
      • 2020-02-22
      • 1970-01-01
      • 1970-01-01
      • 2019-02-24
      相关资源
      最近更新 更多