簡體   English   中英

Traefik Ku​​bernetes:公開非Kubernetes服務

[英]Traefik Kubernetes: Expose non Kubernetes service

我正在將Kubernetes與Traefik用作Ingress Controller。 我的網絡中有一些尚不能容器化的Web服務。 因此,我正在尋找一種通過Traefik Ingress公開我的非Kubernetes Web服務的方法。 我已經沒有公共IP了,因此拆分這兩個環境不是一個選擇。

我已經做了一個端點+服務來解決這個問題,但是當我嘗試連接時,我收到了SSL協議錯誤。 我是在做錯事還是有人有其他解決方案?

這些是我的(測試)端點和服務Yaml:

kind: Endpoints
apiVersion: v1
metadata:
  name: my-service
subsets:
  - addresses:
      - ip: 10.4.0.6
    ports:
      - port: 443
---
kind: Service
apiVersion: v1
metadata:
  name: my-service
spec:
  ports:
  - protocol: TCP
    port: 443
    name: https
    targetPort: 443
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    kubernetes.io/ingress.class: traefik
spec:
  rules:
  - host: host.com
    http:
      paths:
      - path: /*
        backend:
          serviceName: my-service
          servicePort: 443

首先,我敢打賭,當您kubectl describe svc my-service ,即使端點確實存在,您也有空的端點,對嗎?

要解決此問題,您需要調整端點ports密鑰,使其端口定義與服務具有的端口定義相同(名稱,協議等)。 然后,您應該在describe service結果時看到這些端點,並能夠正常使用它。

關於這個問題,我們有多個問題。 首先,我帶着頭盔部署了Traefik。 我發現默認情況下禁用SSL ...

我的values.yaml如下:

imageTag: 1.6.6
rbac:
  enabled: true
dashboard:
  enabled: true
  domain: traefik.dahsboard.local
ssl:
  enabled: true
  insecureSkipVerify: true
  upstream: true

就像Radek提到的那樣,端點和服務的端口定義必須相同。

我的是:

kind: Service
apiVersion: v1
metadata:
  name: my-service
spec:
  ports:
  - protocol: TCP
    port: 443
    targetPort: 443
    name: https
---
kind: Endpoints
apiVersion: v1
metadata:
  name: my-service
subsets:
  - addresses:
    - ip: 10.4.0.6
    ports:
    - protocol: TCP
      port: 443
      name: https

您可以嘗試以下操作:創建類型為ExternalName的K8s服務,該服務綁定到您的外部Web服務,並像使用“本地” K8s服務一樣添加一個Ingress。

外部名稱服務-> https://kubernetes.io/docs/concepts/services-networking/service/#externalname

進出口。

apiVersion: v1
kind: Service 
metadata:
  name: my-service
  namespace: prod
spec:
  type: ExternalName
  externalName: my.database.example.com

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM