我嘗試phpmyadmin在 Kubernetes 集群中本地部署官方鏡像時出錯。請看我的yaml配置。我不知道我做錯了什么。我試過phpmyadmin/phpmyadmin影像,但 404 錯誤仍然存??在。我也查看了其他人的配置,但它與我的沒有什么不同。這是我第一次接觸 Kubernetes,所以可能我不知道一些開發方法。

入口服務.yaml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-service
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/use-regex: "true"
spec:
rules:
- http:
paths:
- path: /phpmyadmin/?(.*)
pathType: Prefix
backend:
service:
name: phpmyadmin-cluster-ip-service
port:
number: 80
phpmyadmin-cluster-ip-service.yaml
apiVersion: v1
kind: Service
metadata:
name: phpmyadmin-cluster-ip-service
spec:
type: ClusterIP
selector:
app: phpmyadmin
ports:
- port: 80
targetPort: 80
protocol: TCP
phpmyadmin-deployment.yaml ip 192.168.64.7 是minikube給的。
apiVersion: apps/v1
kind: Deployment
metadata:
name: phpmyadmin-deployment
labels:
tier: backend
spec:
replicas: 1
selector:
matchLabels:
app: phpmyadmin
tier: backend
template:
metadata:
labels:
app: phpmyadmin
tier: backend
spec:
restartPolicy: Always
containers:
- name: phpmyadmin
image: phpmyadmin:latest
ports:
- name: phpmyadmin
containerPort: 80
protocol: TCP
imagePullPolicy: Always
env:
- name: PMA_ABSOLUTE_URI
value: "http://192.168.64.7/phpmyadmin/"
- name: PMA_VERBOSE
value: "PhpMyAdmin"
- name: PMA_HOST
value: mysql-service
- name: PMA_PORT
value: "3306"
- name: UPLOAD_LIMIT
value: "268435456"
- name: PMA_ARBITRARY
value: "0"
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-secret
key: MYSQL_ROOT_PASSWORD
我省略了 MySQL配置,認為它與問題yaml無關,phpmyadmin但如果它們可以提供幫助,我也會 pushlish 它。
uj5u.com熱心網友回復:
在這種情況下,添加注釋nginx.ingress.kubernetes.io/rewrite-target: /$1將修復它。如何?(注意:我將服務埠更改為8080以更好地區分 和 的埠container)Service。
- 你
http://<MINIKUBE IP>/phpmyadmin/在瀏覽器上訪問。 - NGINX Ingress 控制器收到您的請求,并將路徑重寫
/phpmyadmin/為/.ServiceNGINX Ingress 控制器創建對inphpmyadmin-cluster-ip-serviceat 埠8080(服務埠)的請求,該埠具有包含標簽的 pod 的targetPortat80(容器埠)app: phpmyadmin。其中一個匹配的 pod 恰好位于172.17.0.4:
"GET /phpmyadmin/favicon.ico HTTP/1.1" 200 22486 "-" ... 492 0.001 [default-phpmyadmin-cluster-ip-service-8080] [] 172.17.0.4:80 22486 0.000 200 ...
- 因為請求現在使用
phpmyadmin服務器的正確路徑,所以它回應200請求的資源。我們在phpmyadmin中也可以看到相應的日志:
172.17.0.3 - - [14/Nov/2022:21:58:43 0000] "GET /favicon.ico HTTP/1.1" 200 22733 "-" ...
IP172.17.0.3屬于 NGINX Ingress Controller。
還有一個類似的問題,答案更詳細。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/534617.html
