kubernetes 如何从放置在k8s上的数据库中获取数据?

sqyvllje  于 2023-03-07  发布在  Kubernetes
关注(0)|答案(1)|浏览(217)

我想从Kubernetes上的Magento 2获取数据。为了SQL ExecuteQuery,我需要frends
我可以在哪里使用myServerAddress?对于这样的连接,我应该考虑什么?
我不知道如何执行此操作,所以可能有人有这样的经验,并分享了我在何处可以获得myServerAddress以及我应该在k8s端做些什么来允许对数据库进行此类查询的信息

py49o6xq

py49o6xq1#

如果只在集群内的某个位置运行查询,则DB服务名将是myServerAddress
如果您正在运行外部查询,并且您的数据库位于K8s中且未公开,则可能必须公开您的Db服务。您可以将服务类型更改为LoadBalancer。请确保这将公开数据库。
以下是MySQL的示例

apiVersion: v1
kind: Service
metadata:
  name: mysql
spec:
  ports:
  - port: 3306
  selector:
    app: mysql
  clusterIP: None
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql
spec:
  selector:
    matchLabels:
      app: mysql
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - image: mysql:5.6
        name: mysql
        env:
          # Use secret in real usage
        - name: MYSQL_ROOT_PASSWORD
          value: password
        ports:
        - containerPort: 3306
          name: mysql
        volumeMounts:
        - name: mysql-persistent-storage
          mountPath: /var/lib/mysql
      volumes:
      - name: mysql-persistent-storage
        persistentVolumeClaim:
          claimName: mysql-pv-claim

所以服务名是MySQL,如果我想连接到它,我可以在内部使用服务名mysql
参考:https://kubernetes.io/docs/tasks/run-application/run-single-instance-stateful-application/
如果您在同一K8s群集上安装了一些客户端工具,如Adminer,则可以使用服务名称作为连接主机。

相关问题