我在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
这两种产品都有各自的特点,可以解决不同类型的问题。因此,将它们都安装在群集上没有问题。
称他们为Ingress Controller不正确:-Nginx是著名的Web服务器-Nginx入口控制器是基于Nginx的Kubernetes入口控制器的实现(负载平衡,HTTPS终止,身份验证,流量路由等)-Istio是一个服务网格(微服务架构众所周知,并用于以标准方式解决跨领域问题-在POD级别进行日志记录,跟踪,Https终止等)
您能否提供更多详细信息来说明“ K8S突然掉线”的含义。您是在谈论集群节点或内部运行的POD吗?
谢谢。