nginx-inress控制器不进行循环

时间:2019-12-16 20:02:57

标签: kubernetes nginx-ingress

我是Kubernetes集群的新手,正在尝试设置我的第一个kubernetes集群和第一个负载均衡服务。 我有一个混合环境,其中包含两个Windows和两个CentOS节点+ 1个CentOs主节点

就Kubernetes而言,一切工作正常。我将nginx-ingress控制器部署为仅在Linux服务器上运行的守护程序集。我遵循以下教程: https://github.com/nginxinc/kubernetes-ingress/blob/master/docs/installation.md仅有一个区别,即在Deployments / deployment / nginx-ingress.yml中,我限制使用nodeselector在Linux机器上运行

我创建了具有2个副本和该部署服务的部署。我还创建了入口资源,但是当我创建服务时,它总是转到一个节点上的Pod。这是我的代码:

服务和部署:

apiVersion: v1
kind: Service
metadata:
  name: myservice-1
  labels:
    app: myservice-1
spec:
  ports:
    # the port that this service should serve on
  - port: 9034
    targetPort: 80
  selector:
    app: myservice-1 
---
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: myservice-1
  name: myservice-1
spec:
  selector:
    matchLabels:
      app: myservice-1
  replicas: 2
  template:
    metadata:
      labels:
        app: myservice-1
        run: with-creds        
      name: myservice-1
    spec:
      containers:
      - name: myservice-1
        securityContext:
          windowsOptions:
            gmsaCredentialSpecName: gmsa-dev-credspec
        image: secure-myprivaterepo:443/docker/library/myservice-1        
      nodeSelector:
        beta.kubernetes.io/os: windows

这是我的入口资源

入口资源:

kind: Ingress
apiVersion: networking.k8s.io/v1beta1
metadata:
  name: myservice-1-ingress  
spec:
  rules:
    - host: myservice1
      http:
        paths:
          - backend:
              serviceName: myservice-1
              servicePort: 9034

我看到两个副本都无法在两个不同的Windows节点上工作。 我使用HAProxy将请求轮循到我的两个Linux节点,以便它可以命中在那些节点上运行的Nginx-ingress控制器。从日志中,我可以看到请求正在以某种方式路由到这两种服务器。这是我的HAProxy配置。

HAProxy前端和后端配置

HAProxy front end and backend config

HA代理默认设置:

HA Proxy Defaults

更多详细信息(PjoterS要求):

问题:

我当前在本地计算机上创建了一个主机条目,指向我的HAProxy iP,并访问站点http://myservice1,并且Windows服务正常运行,但是当我执行每个pod并查看应用程序日志时,我看到日志仅在一个Pod上生成,而另一个节点上的Pod甚至没有被调用一次。我尝试了100多个请求,并且每次节点1都会响应,而节点2根本不会被调用。

我是否需要做任何特定的事情,以便入口控制器真正以循环方式转发流量?我尝试在博客上搜索,但根本找不到任何答案

0 个答案:

没有答案