私は Kubernetes を初めて使用し、社内のコンピューティング サービス システムで Kubernetes を使用してアプリケーションをホストしようとしています。
内部コンピューティング サービスはrewrite-target
アノテーションをサポートしていないため、リバース プロキシを使用して書き換えを処理する必要があります。
したがって、私が持っているフローは次のとおりです。VIP -> サービス -> Pod [nginx 書き換えのあるサイドカー] -> 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] に接続できないことです!
誰かがこの問題を解決するのを手伝ってくれますか?
前もって感謝します!