我想將 Strapi CMS 部署到 Kubernetes。在我的本地機器上,我正在嘗試使用 Minikube 來執行此操作。該專案的結構是集群外不同容器中的 MySQL。我想通過這個 IP 從集群內部訪問 MySQL 資料庫172.17.0.2:3306
資料庫位于集群外部,位于 docker 容器中。但是 Strapi 專案存在于 Kubernetes 集群中。
這是我用于 Kubernetes 的部署 YAML 檔案:
apiVersion: apps/v1
kind: Deployment
metadata:
name: cg-api
spec:
selector:
matchLabels:
app: cg-api
replicas: 2
template:
metadata:
labels:
app: cg-api
spec:
containers:
- name: cg-api
image: alirezahd/cg-api
env:
- name: DATABASE_HOST
value: "172.17.0.2"
- name: DATABASE_PORT
value: "3306"
ports:
- containerPort: 1337
uj5u.com熱心網友回復:
首先,您應該將 MySQL 埠 3306 暴露給容器外部。假設 Docker 運行 MySQL 容器的主機的 IP 地址為 192.168.0.100。然后您可以telnet 192.168.0.100:3306以確保埠已公開且可用。
這是Dockers 檔案中的一個示例:
docker run -p 192.168.0.100:3306:3306/tcp mysql-container-name bash
這會將容器的 3306 埠系結到主機 192.168.0.100 上的 TCP 埠 3306。
然后你的 CMS 可以在 minikube 中連接到它。
嘗試在minikube下部署 dnsutils。它提供了 nslookup、telnet 等網路工具。它非常有助于解決 minikube 中的網路問題。您可以連接到它sudo k exec -it dnsutils -n default -- bash。
uj5u.com熱心網友回復:
您可以嘗試使用特殊的 minikube 主機來訪問您的根計算機。假設你已經使用 -p 在你的根機器上暴露了 docker mysql 容器3306:3306
env:
- name: DATABASE_HOST
value: "host.minikube.internal"
https://minikube.sigs.k8s.io/docs/handbook/host-access/#hostminikubeinternal 看起來你需要minikube v1.10
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/526093.html
標籤:mysql码头工人Kubernetes迷你库贝斯特拉皮
