同一K8S集群上的两个入口控制器

问题描述 投票:1回答:1

我在DigitalOcean管理的K8S群集上安装了以下两个不同的入口控制器:

  • Nginx

  • Istio

并且它们已分配给两个不同的IP地址。我的问题是,在同一个K8S集群上拥有两个不同的入口控制器是否错误?

之所以这样做,是因为nginx用于港口,argocd等工具,而istio用于微服务。

我也已经弄清楚了,当两者并排安装时,有时在部署过程中,K8S突然掉线了。

例如,我已经部署:

apiVersion: v1
kind: Service
metadata:
  name: hello-kubernetes-first
  namespace: dev
spec:
  type: ClusterIP
  ports:
    - port: 80
      targetPort: 8080
  selector:
    app: hello-kubernetes-first
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: hello-kubernetes-first
  namespace: dev
spec:
  replicas: 3
  selector:
    matchLabels:
      app: hello-kubernetes-first
  template:
    metadata:
      labels:
        app: hello-kubernetes-first
    spec:
      containers:
        - name: hello-kubernetes
          image: paulbouwer/hello-kubernetes:1.7
          ports:
            - containerPort: 8080
          env:
            - name: MESSAGE
              value: Hello from the first deployment!
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: istio
  name: helloworld-ingress
  namespace: dev
spec:
  rules:
    - host: hello.service.databaker.io
      http:
        paths:
          - path: /*
            backend:
              serviceName: hello-kubernetes-first
              servicePort: 80
---

然后我得到:

Error from server (InternalError): error when creating "istio-app.yml": Internal error occurred: failed calling webhook "validate.nginx.ingress.kubernetes.io": Post https://ingress-nginx-controller-admission.nginx.svc:443/extensions/v1beta1/ingresses?timeout=30s: dial tcp 10.245.107.175:443: i/o timeout  
nginx kubernetes kubernetes-ingress istio
1个回答
0
投票

这两种产品都有各自的特点,可以解决不同类型的问题。因此,将它们都安装在群集上没有问题。

称他们为Ingress Controller不正确:-Nginx是著名的Web服务器-Nginx入口控制器是基于Nginx的Kubernetes入口控制器的实现(负载平衡,HTTPS终止,身份验证,流量路由等)-Istio是一个服务网格(微服务架构众所周知,并用于以标准方式解决跨领域问题-在POD级别进行日志记录,跟踪,Https终止等)

您能否提供更多详细信息来说明“ K8S突然掉线”的含义。您是在谈论集群节点或内部运行的POD吗?

谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.