云栖问答

找不到答案?去提问题

集群 metadata type service digitalocean k8s 2019-01-11 14:25:23

digitalocean kubernetes负载均衡器

我已经在DigitalOcean上有限的可用Kubernetes集群上部署了我的应用程序。我有一个Spring Boot应用程序,在端口31744上公开了一个服务,用于外部使用nodeport服务配置。

我使用每个DO链接文件的yaml配置创建了一个Loadbalancer:https://www.digitalocean.com/docs/kubernetes/how-to/add-load-balancer/

但是,我无法连接到我的服务。你能告诉它如何做到这一点我可以从负载均衡器访问我的服务吗?

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

NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
my-springboot NodePort 10.245.6.216 8080:31744/TCP 2d18h
kubernetes ClusterIP 10.245.0.1 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

k8s小能手

要使用暴露你的服务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可用于从kubernetes集群外部访问服务的外部IP 。

1
GO