kubernetes 设置 service 类型为loadbalance

安装kubernetes

用kubeadmin

kubernetes的service

Service 默认有两种方式可以提供服务
1. 集群内部
2. 集群外部(需要cloud provider提供负载均衡器的支持)

大家都知道,kubernetes在对外提供服务时候有3种方式
1. node proxy
2. node port
3. nginx ingress (需要load balancer不然就需要nodeport)

使用nginx ingress

在做kubernetes时,由于时在内网,并且想使用service为loadbalancer,不想基于节点上的机子暴露其他的端口,因为刚好机子上的端口被占用了,80和443,所以萌生出自己提供cloud provider来实现service的loadbalance的方式

这里用了github上的一个开源组件,实现了kubernetes的cloud provider的负载均衡功能,可以分配IP的功能
keepalived-cloud-provider

这个组件需要kube-keepalived-vip 这个keepalived的组件,这个组件默认的组件不太好用,换了个,其他的同样功能的keepalived的组件 aledbf/kube-keepalived-vip:0.23

  • name: KEEPALIVED_SERVICE_CIDR
    value: 10.100.100.166/26 # pick a CIDR that is explicitly reserved for keepalived

设置完后,直接就可以建一个service为的type为loadbalance然后就可以取得设置的IP。IP从KEEPALIVED_SERVICE_CIDR设置的范围中取值

这个地方默认装完之后,如果开启RBAC的话,系统默认的ServideAccount可能权限不够,需要绑定重新之前rbac角色,并绑定为Admin的角色

你可能感兴趣的:(kubernetes,做技术的,小笔记,nginx,ingress,cloud,provider)