我是 Kubernetes 新手,我正在尝试在我们的内部计算服务系统中使用 Kubernetes 托管一个应用程序。
由于我们的内部计算服务不支持rewrite-target
注释,我必须使用反向代理来处理重写。
所以,我的流程是:VIP -> 服务 -> Pod [有 nginx 重写的 Sidecar] -> Pod [应用程序容器]
这是清单:
# Source: reportportal/templates/gateway-ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: reportportal-gateway-ingress
labels:
heritage: "Helm"
release: "reportportal"
chart: reportportal-5.2.1
app: "reportportal"
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: reportportal-ui
servicePort: headless
---
# Source: reportportal/templates/ui-service.yaml
apiVersion: v1
kind: Service
metadata:
name: reportportal-ui
labels:
heritage: "Helm"
release: "reportportal"
chart: reportportal-5.2.1
app: "reportportal"
annotations:
service: ui
infoEndpoint: /info
spec:
ports:
- name: headless
port: 5000
protocol: TCP
targetPort: 5000
selector:
component: reportportal-ui
type: ClusterIP
---
# Source: reportportal/templates/ui-config-map.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: ui-nginx-conf
labels:
sdr.appname: reportportal
data:
nginx.conf: |-
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
keepalive_timeout 65;
upstream ui {
server 127.0.0.1:8080;
}
server {
listen 5000;
location / {
#rewrite /(ui)/?(.*) /$2;
proxy_pass http://ui;
proxy_redirect off;
}
}
}
---
# Source: reportportal/templates/ui-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: reportportal-ui
labels:
heritage: "Helm"
release: "reportportal"
chart: reportportal-5.2.1
app: "reportportal"
spec:
replicas: 1
selector:
matchLabels:
component: reportportal-ui
template:
metadata:
labels:
component: reportportal-ui
annotations:
spec:
containers:
- name: uinginx
image: nginx:alpine
ports:
- containerPort: 5000
protocol: TCP
volumeMounts:
- name: nginx-proxy-config
mountPath: /etc/nginx/nginx.conf
subPath: nginx.conf
- name: ui
image: "reportportal/service-ui:5.2.2"
env:
- name: RP_SERVER_PORT
value: "8080"
resources:
requests:
cpu: 100m
memory: 64Mi
limits:
cpu: 200m
memory: 128Mi
readinessProbe:
httpGet:
path: "/health"
port: 8080
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 3
volumes:
- name: nginx-proxy-config
configMap:
name: ui-nginx-conf
securityContext:
{}
serviceAccountName:
...
我正在使用 Minikube(在我的本地机器上),当我尝试点击 URL 时,我得到“404 not found”页面。
这里的问题是,Service 无法连接 Pod[Sidecar]!
有人可以帮忙解决这个问题吗?
提前致谢!