我可以在没有“船长”进入的情况下使用“ kube-ingress-aws-controller”吗?

我正在尝试在使用Kops构建的AWS集群上使用kubernetes的入口。
我正在遵循此文档:https://github.com/kubernetes/kops/tree/master/addons/kube-ingress-aws-controller
如您所见,我正在将 kube-ingress-aws-controller skipper入口一起使用。

对于 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

对于船长进入,脚本是这样的:

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-inress-aws-controller不够吗?

linshi0 回答:我可以在没有“船长”进入的情况下使用“ kube-ingress-aws-controller”吗?

普通的AWS负载平衡器支持TLS终止,自动证书轮换,可能的WAF和安全组,但是HTTP路由功能非常有限。

Skipper与其他HTTP路由器相比的主要优势是:

  • 匹配和更改HTTP
  • 默认情况下与kube-ingress-aws-controller一样,可以正常工作 期待。

HAproxy和Nginx是众所周知的,并且是在Kubernetes之前构建的良好的TCP / HTTP代理。但是它们具有以下缺点:

  • 对静态配置文件的依赖来自 路由及其配置为
  • 相对静态的注释列表,甚至可以实现基本的 功能对于用户来说已经是一个很大的清单

Skipper被构建为:

  • 支持动态更改路由配置,这种情况会发生 在Kubernetes中很常见
  • 具有轻松实施自动金丝雀部署的能力, 自动化的蓝绿色部署或影子流量

但是,在aws-alb-ingress-controller,HAproxy和nginx中有一些功能具有更好的支持。例如sendfile()操作。如果您需要流式传输一个大文件或大量文件,则可能需要使用以下选项之一。

Aws-alb-ingress-controller直接将流量路由到您的Kubernetes服务,这是好是坏,因为它可以减少延迟,但存在依赖于kube-proxy路由的风险。从死节点中查找Pod的kube-proxy路由最多可能需要30秒,ETCD ttl。船长能够: 被动地观察来自端点的错误,并能够从负载平衡器成员中删除这些错误。 主动检查的成员池,如果从船长的角度来看这些端点再次健康,它将启用端点。

另外,aws-alb-ingress-controller不支持ALB共享或服务器名称指示等功能,这些功能可以降低成本。当前也不支持路径重写之类的功能。

Traefik拥有良好的社区并支持Kubernetes。 Skipper起源于2015年启动的Project Mosaic。当时,Traefik还不是一个成熟的项目,在发布v1.0.0之前仍有时间。 Traefik目前还不支持我们的Opentracing提供程序。当我们启动stackset-controller进行自动流量切换时,它也不支持流量拆分。我们最近在Kubernetes上将Skipper作为API网关运行方面也做了大量工作,这可能会帮助许多在Kubernetes上运行许多小型服务的团队。队长谓词和过滤器是功能强大的抽象,可以轻松增强系统。

因此,您可以看到具有 skipper入口 kube-ingress-aws-controller 与其他类似解决方案相比,具有更多的优势和可能性。

您可以在这里找到更多信息:skipper-ingress-controller

本文链接:https://www.f2er.com/2978533.html

大家都在问