如何在Kubernetes中结合负载均衡器?

c4po

我的HTTP / REST服务群集具有以下Kubernetes YAML,是否可以通过同一负载均衡器公开身份,用户和操作服务?

当我认为1足够时,使用下面的配置,它会在AWS中创建4个单独的弹性负载均衡器。我尝试将Kibana设置为NodePort,以便可以从外部访问它,但无法访问,因此将类型设置为LoadBalancer。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: identity-service
  labels:
    app: identity-service
spec:
  replicas: 1
  selector:
    matchLabels:
      app: identity-service
  template:
    metadata:
      labels:
        app: identity-service
    spec:
      containers:
        - name: identity-service
          image: org_name/identity_service
          imagePullPolicy: Always
          ports:
            - containerPort: 5000
          env:
            - name: CONNECTION_STRING
              value: "..."
      imagePullSecrets:
        - name: docker-hub
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: users-service
  labels:
    app: users-service
spec:
  replicas: 1
  selector:
    matchLabels:
      app: users-service
  template:
    metadata:
      labels:
        app: users-service
    spec:
      containers:
        - name: users-service
          image: org_name/users_service
          imagePullPolicy: Always
          ports:
            - containerPort: 5001
          env:
            - name: CONNECTION_STRING
              value: "..."
      imagePullSecrets:
        - name: docker-hub
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: actions-service
  labels:
    app: actions-service
spec:
  replicas: 1
  selector:
    matchLabels:
      app: actions-service
  template:
    metadata:
      labels:
        app: actions-service
    spec:
      containers:
        - name: actions-service
          image: org_name/actions_service
          imagePullPolicy: Always
          ports:
            - containerPort: 5003
          env:
            - name: CONNECTION_STRING
              value: "..."
      imagePullSecrets:
        - name: docker-hub
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: message-queue
  labels:
    app: message-queue
spec:
  replicas: 1
  selector:
    matchLabels:
      app: message-queue
  template:
    metadata:
      labels:
        app: message-queue
    spec:
      containers:
        - name: message-queue
          image: org_name/message_queue
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 5672
            - containerPort: 15672
      imagePullSecrets:
            - name: docker-hub
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: elasticsearch
  labels:
    app: elasticsearch
spec:
  replicas: 1
  selector:
    matchLabels:
      app: elasticsearch
  template:
    metadata:
      labels:
        app: elasticsearch
    spec:
      containers:
        - name: elasticsearch
          image: elasticsearch:7.6.0
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 9200
          env:
            - name: ELASTIC_PASSWORD
              value: ...
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kibana
  labels:
    app: kibana
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kibana
  template:
    metadata:
      labels:
        app: kibana
    spec:
      containers:
        - name: kibana
          image: kibana:7.6.0
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 5601
          env:
            - name: ELASTICSEARCH_HOSTS
              value: http://ELASTICSEARCH_SERVICE_HOST:ELASTICSEARCH_SERVICE_PORT
            - name: ELASTICSEARCH_USERNAME
              value: elastic
            - name: ELASTICSEARCH_PASSWORD
              value: ...
            - name: XPACK_MONITORING_ENABLED
              value: "true"
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: smtp-server
  labels:
    app: smtp-server
spec:
  replicas: 1
  selector:
    matchLabels:
      app: smtp-server
  template:
    metadata:
      labels:
        app: smtp-server
    spec:
      containers:
        - name: smtp-server
          image: mailhog/mailhog
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 1025
            - containerPort: 8025
---
apiVersion: v1
kind: Service
metadata:
  name: identity-service
  labels:
    app: identity-service
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:eu-west-2:...:certificate/...
spec:
  ports:
    - port: 443
      targetPort: 5000
      protocol: TCP
  selector:
    app: identity-service
  type: LoadBalancer
---
apiVersion: v1
kind: Service
metadata:
  name: users-service
  labels:
    app: users-service
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:eu-west-2:...:certificate/...
spec:
  ports:
    - port: 443
      targetPort: 5001
      protocol: TCP
  selector:
    app: users-service
  type: LoadBalancer
---
apiVersion: v1
kind: Service
metadata:
  name: actions-service
  labels:
    app: actions-service
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:eu-west-2:...:certificate/...
spec:
  ports:
    - port: 443
      targetPort: 5003
      protocol: TCP
  selector:
    app: actions-service
  type: LoadBalancer
---
apiVersion: v1
kind: Service
metadata:
  name: kibana
  labels:
    app: kibana
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:eu-west-2:...:certificate/...
spec:
  ports:
    - port: 5601
      targetPort: 5601
      protocol: TCP
  selector:
    app: kibana
  type: LoadBalancer
---
apiVersion: v1
kind: Service
metadata:
  name: elasticsearch
  labels:
    app: elasticsearch
  annotations:
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: arn:aws:acm:eu-west-2:...:certificate/...
spec:
  ports:
    - port: 9200
      targetPort: 9200
      protocol: TCP
  selector:
    app: elasticsearch
  type: ClusterIP
马特

使用单个入口控制器使用入口定义公开每个服务在AWS上,您可以将ALB用作入口端点

每个服务将需要不同的主机名或/ path来区分它们。

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: test-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - http:
      paths:
      - path: /identity
        backend:
          serviceName: identity-service
          servicePort: 5000
      - path: /users
        backend:
          serviceName: users-service
          servicePort: 5001
      - path: /actions
        backend:
          serviceName: actions-service
          servicePort: 5003
      - path: /kibana
        backend:
          serviceName: kibana
          servicePort: 5601

然后将type每个服务的更改ClusterIP

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在AWS上创建Kubernetes负载均衡器

来自分类Dev

如何在Jelastic的kubernetes集群中添加Nginx负载均衡器?

来自分类Dev

如何在 Azure 中为 Kubernetes Ingress 控制器创建负载均衡器 (IAAS)

来自分类Dev

如何在java中实现负载均衡器

来自分类Dev

如何在 .ebextensions 中获取负载均衡器的 ARN?

来自分类Dev

如何在AWS上获取kubernetes负载均衡器服务的永久IP地址?

来自分类Dev

如何在负载均衡器后面配置 Docker 容器?

来自分类Dev

如何修复我的负载均衡器中的504错误

来自分类Dev

如何在Azure中为云服务创建内部负载均衡器(经典)?

来自分类Dev

如何在stackdriver中获取负载均衡器的延迟详细信息?

来自分类Dev

如何在Apache骆驼中记录负载均衡器的实际目标端点

来自分类Dev

如何在 AWS Elastic Beanstalk 环境中配置负载均衡器?

来自分类Dev

如何在弹性均衡器之类的负载均衡器后面设置双http和https服务器

来自分类Dev

如何在Rhythmbox中安装均衡器?

来自分类Dev

如何在Rhythmbox中安装均衡器?

来自分类Dev

如何在命令行中控制均衡器?

来自分类Dev

AWS负载均衡器

来自分类常见问题

Azure Kubernetes-Istio多个负载均衡器?

来自分类Dev

GCP负载均衡器或Kubernetes类型= LoadBalancer

来自分类Dev

Kubernetes DigitalOcean上的外部负载均衡器服务

来自分类Dev

Azure Kubernetes-Istio多个负载均衡器?

来自分类Dev

Kubernetes Ingress-负载均衡器流量拆分

来自分类Dev

Kubernetes 上的 Azure 负载均衡器未加载端点

来自分类Dev

为 Kubernetes HA 集群选择 AWS 负载均衡器

来自分类Dev

LetsEncrypt不通过AWS EKS中的Kubernetes入口和负载均衡器进行验证

来自分类Dev

无法访问外部具有负载均衡器的Kubernetes集群中的文件

来自分类Dev

Kubernetes 中没有负载均衡器的 Nginx 入口控制器

来自分类Dev

如何在负载均衡器(ssl_termination)后面使用Laravel 5配置SSL?

来自分类Dev

如何在不带负载均衡器的GCP上配置静态网站(仅http)?

Related 相关文章

  1. 1

    如何在AWS上创建Kubernetes负载均衡器

  2. 2

    如何在Jelastic的kubernetes集群中添加Nginx负载均衡器?

  3. 3

    如何在 Azure 中为 Kubernetes Ingress 控制器创建负载均衡器 (IAAS)

  4. 4

    如何在java中实现负载均衡器

  5. 5

    如何在 .ebextensions 中获取负载均衡器的 ARN?

  6. 6

    如何在AWS上获取kubernetes负载均衡器服务的永久IP地址?

  7. 7

    如何在负载均衡器后面配置 Docker 容器?

  8. 8

    如何修复我的负载均衡器中的504错误

  9. 9

    如何在Azure中为云服务创建内部负载均衡器(经典)?

  10. 10

    如何在stackdriver中获取负载均衡器的延迟详细信息?

  11. 11

    如何在Apache骆驼中记录负载均衡器的实际目标端点

  12. 12

    如何在 AWS Elastic Beanstalk 环境中配置负载均衡器?

  13. 13

    如何在弹性均衡器之类的负载均衡器后面设置双http和https服务器

  14. 14

    如何在Rhythmbox中安装均衡器?

  15. 15

    如何在Rhythmbox中安装均衡器?

  16. 16

    如何在命令行中控制均衡器?

  17. 17

    AWS负载均衡器

  18. 18

    Azure Kubernetes-Istio多个负载均衡器?

  19. 19

    GCP负载均衡器或Kubernetes类型= LoadBalancer

  20. 20

    Kubernetes DigitalOcean上的外部负载均衡器服务

  21. 21

    Azure Kubernetes-Istio多个负载均衡器?

  22. 22

    Kubernetes Ingress-负载均衡器流量拆分

  23. 23

    Kubernetes 上的 Azure 负载均衡器未加载端点

  24. 24

    为 Kubernetes HA 集群选择 AWS 负载均衡器

  25. 25

    LetsEncrypt不通过AWS EKS中的Kubernetes入口和负载均衡器进行验证

  26. 26

    无法访问外部具有负载均衡器的Kubernetes集群中的文件

  27. 27

    Kubernetes 中没有负载均衡器的 Nginx 入口控制器

  28. 28

    如何在负载均衡器(ssl_termination)后面使用Laravel 5配置SSL?

  29. 29

    如何在不带负载均衡器的GCP上配置静态网站(仅http)?

热门标签

归档