安装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的角色