2

私は 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] に接続できないことです!

誰かがこの問題を解決するのを手伝ってくれますか?

前もって感謝します!

4

1 に答える 1