Kubernetes 库伯内特斯多容器吊舱 你好,我试着有一个2容器的容器,一个是C++应用程序,一个是MySQL数据库。我曾经让mysql部署在自己的服务中,但我遇到了延迟问题。所以我想试试多容器吊舱

Kubernetes 库伯内特斯多容器吊舱 你好,我试着有一个2容器的容器,一个是C++应用程序,一个是MySQL数据库。我曾经让mysql部署在自己的服务中,但我遇到了延迟问题。所以我想试试多容器吊舱,kubernetes,google-kubernetes-engine,Kubernetes,Google Kubernetes Engine,但我一直在努力通过localhost将我的应用程序和mysql连接起来。上面写着 无法通过套接字连接到本地MySQL服务器 \'/var/run/mysqld/mysqld.sock 这是我的kubernetes.yaml。请告诉我需要帮助:( 您的MySQL客户端被配置为使用套接字,而不是通过网络堆栈进行对话,参见: 在Unix上,MySQL程序以特定的方式处理主机名localhost 这种方式很可能与您所期望的其他方式不同 基于网络的程序。对于与本地主机的连接,MySQL程序 尝试使用Uni

但我一直在努力通过localhost将我的应用程序和mysql连接起来。上面写着

无法通过套接字连接到本地MySQL服务器 \'/var/run/mysqld/mysqld.sock

这是我的kubernetes.yaml。请告诉我需要帮助:(


您的MySQL客户端被配置为使用套接字,而不是通过网络堆栈进行对话,参见:

在Unix上,MySQL程序以特定的方式处理主机名localhost 这种方式很可能与您所期望的其他方式不同 基于网络的程序。对于与本地主机的连接,MySQL程序 尝试使用Unix套接字文件连接到本地服务器。 即使提供了--port或-P选项来指定端口,也会发生这种情况 确保客户端与服务器建立TCP/IP连接 本地服务器,使用--host或-h指定主机名值 127.0.0.1或本地服务器的IP地址或名称。您还可以通过 使用--protocol=TCP选项

如果您仍然希望
摄像头服务
通过文件系统插槽进行对话,则还需要为
摄像头服务
安装文件系统。目前您仅为
db摄像头
安装文件系统

# Database setup
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: storage-camera
  labels:     
    group: camera
provisioner: kubernetes.io/gce-pd
parameters:
  type: pd-ssd
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: camera-pv
  labels:     
    group: camera
spec:
  storageClassName: db-camera
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi
  storageClassName: storage-camera
---
# Service setup
apiVersion: v1
kind: Service
metadata:
  name: camera-service
  labels:
    group: camera
spec:
  ports:
    - port: 50052
      targetPort: 50052
  selector:
    group: camera
    tier: service
  type: LoadBalancer
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: camera-service
  labels:
    group: camera
    tier: service
spec:
  replicas: 1
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 0
      maxSurge: 1
  minReadySeconds: 60
  template:
    metadata:
      labels:
        group: camera
        tier: service
    spec:
      containers:
      - image: asia.gcr.io/test/db-camera:latest
        name: db-camera
        env:
        - name : MYSQL_ROOT_PASSWORD
          value : root
        ports:
        - containerPort: 3306
          name: mysql
        volumeMounts:
        - name: camera-persistent-storage
          mountPath: /var/lib/mysql
      - name: camera-service
        image: asia.gcr.io/test/camera-service:latest
        env:
        - name : DB_HOST
          value : "localhost"
        - name : DB_PORT
          value : "3306"
        - name : DB_NAME
          value : "camera"
        - name : DB_ROOT_PASS
          value : "password"
        ports:
        - name: http-cam
          containerPort: 50052
      volumes:
      - name: camera-persistent-storage
        persistentVolumeClaim:
          claimName: camera-pv
      restartPolicy: Always