数字海洋kubernetes负载均衡器

时间:2018-12-31 04:03:57

标签: kubernetes digital-ocean

我已经在DigitalOcean上有限的可用Kubernetes集群上部署了我的应用程序。 我有一个Spring Boot应用程序,该服务在端口31744上公开了一个服务,供使用nodeport service config进行外部访问。

我根据每个DO链接文档https://www.digitalocean.com/docs/kubernetes/how-to/add-load-balancer/

使用yaml配置创建了一个Loadbalancer

但是,我无法使用我的服务。您能建议如何做到这一点,以便我可以从负载均衡器访问我的服务吗?

以下是我的应用程序服务的“ kubectl get svc”输出:

NAME                   TYPE           CLUSTER-IP      EXTERNAL-IP      PORT(S)          AGE
my-springboot          NodePort       10.245.6.216    <none>           8080:31744/TCP   2d18h
kubernetes             ClusterIP      10.245.0.1      <none>           443/TCP          3d20h
sample-load-balancer   LoadBalancer   10.245.53.168   58.183.251.550   80:30495/TCP     2m6s

以下是我的loadbalancer.yaml:

apiVersion: v1
kind: Service
metadata:
  name: sample-load-balancer
spec:
  type: LoadBalancer
  ports:
    - protocol: TCP
      port: 80
      targetPort: 31744
      name: http

我的service.yaml:

apiVersion: v1
kind: Service
metadata:
  name: my-springboot
  labels:
    app: my-springboot
    tier: backend
spec:
  type: NodePort
  ports:
    # the port that this service should serve on
  - port: 8080
  selector:
    app: my-springboot
    tier: backend

谢谢

1 个答案:

答案 0 :(得分:2)

要使用LoadBalancer而不是NodePort公开服务,您需要以type的身份提供LoadBalancer在服务中。因此,您的新服务配置yaml为:

apiVersion: v1
kind: Service
metadata:
  name: my-springboot
  labels:
    app: my-springboot
    tier: backend
spec:
  type: LoadBalancer
  ports:
    # the port that this service should serve on
  - port: 8080
  selector:
    app: my-springboot
    tier: backend

一旦应用了以上服务yaml文件,您将在kubectl get svc中获得外部IP,该外部IP可用于从kubernetes集群外部访问该服务。