[英]Can I use "kube-ingress-aws-controller" without "skipper" ingress?
我正在嘗試在使用 Kops 構建的 AWS 集群上使用 kubernetes 的入口。
我正在關注此文檔: https : //github.com/kubernetes/kops/tree/master/addons/kube-ingress-aws-controller 。
如您所見,我將kube-ingress-aws-controller與船長 ingress 一起使用。
對於kube-ingress-aws-controller,我有以下腳本:
apiVersion: apps/v1
kind: Deployment
metadata:
name: kube-ingress-aws-controller
namespace: kube-system
labels:
application: kube-ingress-aws-controller
component: ingress
spec:
replicas: 1
selector:
matchLabels:
application: kube-ingress-aws-controller
component: ingress
template:
metadata:
labels:
application: kube-ingress-aws-controller
component: ingress
spec:
serviceAccountName: kube-ingress-aws
containers:
- name: controller
image: registry.opensource.zalan.do/teapot/kube-ingress-aws-controller:latest
env:
- name: AWS_REGION
value: eu-central-1
對於船長 ingress ,腳本是這樣的:
apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
name: skipper-ingress
namespace: kube-system
labels:
component: ingress
spec:
selector:
matchLabels:
component: ingress
updateStrategy:
type: RollingUpdate
template:
metadata:
name: skipper-ingress
labels:
component: ingress
application: skipper
spec:
hostNetwork: true
serviceAccountName: skipper-ingress
containers:
- name: skipper-ingress
image: registry.opensource.zalan.do/pathfinder/skipper:latest
ports:
- name: ingress-port
containerPort: 9999
hostPort: 9999
- name: metrics-port
containerPort: 9911
args:
- "skipper"
- "-kubernetes"
- "-kubernetes-in-cluster"
- "-address=:9999"
- "-proxy-preserve-host"
- "-serve-host-metrics"
- "-enable-ratelimits"
- "-experimental-upgrade"
- "-metrics-exp-decay-sample"
- "-lb-healthcheck-interval=3s"
- "-metrics-flavour=codahale,prometheus"
- "-enable-connection-metrics"
resources:
requests:
cpu: 200m
memory: 200Mi
readinessProbe:
httpGet:
path: /kube-system/healthz
port: 9999
initialDelaySeconds: 5
timeoutSeconds: 5
之后,我又應用了一些腳本來對概念進行功能驗證,並且一切正常。
有兩個入口有什么意義? 一號船長在做什么?
kube-ingress-aws-controller 不應該足夠嗎?
普通 AWS 負載均衡器支持 TLS 終止、自動證書輪換、可能的 WAF 和安全組,但 HTTP 路由功能非常有限。
與其他 HTTP 路由器相比,Skipper 的主要優點是:
HAproxy 和 Nginx 是很好理解的很好的 TCP/HTTP 代理,它們是在 Kubernetes 之前構建的。 但它們有以下缺點:
船長旨在:
但是,有些功能在 aws-alb-ingress-controller、HAproxy 和 nginx 中得到了更好的支持。 例如 sendfile() 操作。 如果您需要流式傳輸一個大文件或大量文件,那么您可能需要選擇這些選項之一。
Aws-alb-ingress-controller 將流量直接路由到您的 Kubernetes 服務,這有好處也有壞處,因為它可以減少延遲,但存在依賴 kube-proxy 路由的風險。 kube-proxy 路由最多需要 30 秒,ETCD ttl,用於從死節點中查找 pod。 Skipper 啟用:被動觀察端點的錯誤,並能夠從負載均衡器成員中刪除這些錯誤。 主動檢查成員池,如果從船長的角度來看它們再次健康,這將啟用端點。
此外,aws-alb-ingress-controller 不支持可降低成本的 ALB 共享或服務器名稱指示等功能。 目前也不支持路徑重寫等功能。
Traefik擁有良好的社區和對 Kubernetes 的支持。 Skipper 起源於 2015 年啟動的 Project Mosaic。 當時 Traefik 還不是一個成熟的項目,距離 v1.0.0 發布還有時間。 Traefik 目前也不支持我們的 Opentracing 提供商。 當我們啟動 stackset-controller 進行自動流量切換時,它也不支持流量拆分。 我們最近還在將 Skipper 作為 Kubernetes 中的 API 網關運行方面做了大量工作,這可能會幫助許多在 Kubernetes 上運行許多小型服務的團隊。 Skipper 謂詞和過濾器是一種強大的抽象,可以輕松增強系統。
因此,如您所見,與其他類似解決方案相比,帶有船長入口的kube-ingress-aws-controller具有更多的優勢和可能性。
您可以在此處找到更多信息: skipper-ingress-controller 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.