Как получить доступ к модулю mysql в другом модуле (busybox)?

#kubernetes #kubernetes-pod

Вопрос:

Мне была поставлена задача подключить модуль mysql к любому другому рабочему модулю (предпочтительно busybox), но я не смог этого сделать. Есть ли способ выполнить эту задачу. Я ссылался на многие места, но объяснения были немного сложными, поскольку я новичок в Kubernetes.

Комментарии:

1. мы были бы признательны, если бы вы могли уточнить "but was not able to that." , что вы уже пробовали. Кроме того, когда вы говорите access/connecting , что вы на самом деле имеете в виду? (Например: exec , REST , kubectl ??)

2. Пожалуйста, отредактируйте вопрос, чтобы ограничить его конкретной проблемой с достаточной детализацией для определения адекватного ответа.

Ответ №1:

Конфигурация MySQL YAML для Kubernets

 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 из контейнера busy box

 kubectl run -i --tty busybox --image=busybox --restart=Never -- sh   
 

приведенная выше команда запустит один контейнер Busy box.

запустите kubectl get pods , чтобы проверить состояние обоих модулей.

В контейнере Busy вы сможете запустить команду для подключения к MySQL

 mysql -h <MySQL service name> -u <Username> -p<password>
 

Ссылка на документ: MySQL: https://kubernetes.io/blog/2015/10/some-things-you-didnt-know-about-kubectl_28 /

Окно занятости: https://kubernetes.io/blog/2015/10/some-things-you-didnt-know-about-kubectl_28 /

Комментарии:

1. Когда я запускаю mysql cmd в окне занятости, он выдает эту ошибку «sh: mysql: не найден» должен ли я использовать какое-либо другое изображение вместо busybox?

2. вы можете использовать другой образ или установить клиент MySQL в образ busy box, надеюсь, вы знаете команду для установки клиента mysq. считайте, что окно занято, поскольку система Ubuntu открыта, вы можете использовать и установить CLI apt-get install myql ….. client или любую другую команду

3. Я попытался установить в busybox, но не смог добиться успеха, вместо этого я использовал ubuntu image, следуя инструкциям, упомянутым u. Наконец-то он был выполнен. Ответ был действительно полезным. Приветствия!

4. рад слышать, что проблема решена. вы также можете проголосовать за ответ, если сочтете его полезным.