Переглянути джерело

Merge pull request #4902 from chengshiwen/improve-k8s-compatibility

[Improvement][K8s] Check compatibility in all Kubernetes 1.12+ and optimize ingress compatibility
xingchun-chen 4 роки тому
батько
коміт
4706de717c

+ 1 - 2
docker/kubernetes/dolphinscheduler/README.md

@@ -253,9 +253,8 @@ The Configuration file is `values.yaml`, and the following tables lists the conf
 |                                                                                   |                                                                                                                                |                                                       |
 | `ingress.enabled`                                                                 | Enable ingress                                                                                                                 | `false`                                               |
 | `ingress.host`                                                                    | Ingress host                                                                                                                   | `dolphinscheduler.org`                                |
-| `ingress.path`                                                                    | Ingress path                                                                                                                   | `/`                                                   |
+| `ingress.path`                                                                    | Ingress path                                                                                                                   | `/dolphinscheduler`                                   |
 | `ingress.tls.enabled`                                                             | Enable ingress tls                                                                                                             | `false`                                               |
-| `ingress.tls.hosts`                                                               | Ingress tls hosts                                                                                                              | `dolphinscheduler.org`                                |
 | `ingress.tls.secretName`                                                          | Ingress tls secret name                                                                                                        | `dolphinscheduler-tls`                                |
 
 ## FAQ

+ 1 - 1
docker/kubernetes/dolphinscheduler/templates/deployment-dolphinscheduler-api.yaml

@@ -69,7 +69,7 @@ spec:
             - "api-server"
           ports:
             - containerPort: 12345
-              name: tcp-port
+              name: "api-port"
           env:
             - name: TZ
               value: {{ .Values.timezone }}

+ 18 - 4
docker/kubernetes/dolphinscheduler/templates/ingress.yaml

@@ -15,7 +15,13 @@
 # limitations under the License.
 #
 {{- if .Values.ingress.enabled }}
+{{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
+apiVersion: networking.k8s.io/v1
+{{- else if .Capabilities.APIVersions.Has "networking.k8s.io/v1beta1/Ingress" }}
 apiVersion: networking.k8s.io/v1beta1
+{{- else }}
+apiVersion: extensions/v1beta1
+{{- end }}
 kind: Ingress
 metadata:
   name: {{ include "dolphinscheduler.fullname" . }}
@@ -30,14 +36,22 @@ spec:
       paths:
         - path: {{ .Values.ingress.path }}
           backend:
+            {{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
+            service:
+              name: {{ include "dolphinscheduler.fullname" . }}-api
+              port:
+                name: api-port
+            {{- else }}
             serviceName: {{ include "dolphinscheduler.fullname" . }}-api
-            servicePort: tcp-port
+            servicePort: api-port
+            {{- end }}
+          {{- if .Capabilities.APIVersions.Has "networking.k8s.io/v1/Ingress" }}
+          pathType: Prefix
+          {{- end }}
   {{- if .Values.ingress.tls.enabled }}
   tls:
     hosts:
-      {{- range .Values.ingress.tls.hosts }}
-      - {{ . | quote }}
-    {{- end }}
+      - {{ .Values.ingress.host }}
     secretName: {{ .Values.ingress.tls.secretName }}
   {{- end }}
 {{- end }}

+ 2 - 2
docker/kubernetes/dolphinscheduler/templates/svc-dolphinscheduler-api.yaml

@@ -25,9 +25,9 @@ metadata:
 spec:
   ports:
     - port: 12345
-      targetPort: tcp-port
+      targetPort: api-port
       protocol: TCP
-      name: tcp-port
+      name: api-port
   selector:
     app.kubernetes.io/name: {{ include "dolphinscheduler.fullname" . }}-api
     app.kubernetes.io/instance: {{ .Release.Name }}

+ 1 - 3
docker/kubernetes/dolphinscheduler/values.yaml

@@ -390,9 +390,7 @@ api:
 ingress:
   enabled: false
   host: "dolphinscheduler.org"
-  path: "/"
+  path: "/dolphinscheduler"
   tls:
     enabled: false
-    hosts:
-      - "dolphinscheduler.org"
     secretName: "dolphinscheduler-tls"