我想从Kubernetes上的Magento 2获取数据。为了SQL ExecuteQuery,我需要frends我可以在哪里使用myServerAddress?对于这样的连接,我应该考虑什么?我不知道如何执行此操作,所以可能有人有这样的经验,并分享了我在何处可以获得myServerAddress以及我应该在k8s端做些什么来允许对数据库进行此类查询的信息
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,则可以使用服务名称作为连接主机。
1条答案
按热度按时间py49o6xq1#
如果只在集群内的某个位置运行查询,则DB服务名将是myServerAddress。
如果您正在运行外部查询,并且您的数据库位于K8s中且未公开,则可能必须公开您的Db服务。您可以将服务类型更改为LoadBalancer。请确保这将公开数据库。
以下是MySQL的示例
所以服务名是MySQL,如果我想连接到它,我可以在内部使用服务名mysql。
参考:https://kubernetes.io/docs/tasks/run-application/run-single-instance-stateful-application/
如果您在同一K8s群集上安装了一些客户端工具,如Adminer,则可以使用服务名称作为连接主机。