近日测试 openstack
作为 kubernetes
的基础设施平台为 kubernetes
提供基础服务(storage, loadbalancer)
目标:
- 为
kubernetes
提供cinder
作为持久卷 - 通过
openstack
的 LBAAS v2 为kubernetes
提供LoadBalancer
集群架构
遇到的问题
x509: cannot validate certificate for <ipaddress> because it doesn't contain any IP SANs |
这个问题没有解决,最后通过创建一个新的 openstack region,让 cinder, neutron, compute 的接口都不走 https 来规避这个问题
cloud-config
由于是通过 rancher
进行管理,所以 cloud-config 直接写在 rancher
集群配置文件中即可
如果是原始的 kubernetes
集群,需要在 kubelet 启动时指定 cloud-config 文件
cloud_provider: |
cinder storageclass
cinder 作为持久卷要指定 volume type 作为参数
apiVersion: storage.k8s.io/v1 |
openstack volume list # 持久卷在 openstack 中的展现 |
LoadBalancer
neutron lbaas-member-list 2e75b034-d291-4e87-b9bf-2421bce1fc3a # LoadBalancer 服务在 openstack 中的展现 |
kubernetes
LoadBalancer 的原理就是通过外部服务对 service 的 NodePort 进行反代,NodePort 是通过 Kube-Proxy 做转发的,无法获取真实客户端的 IP 地址,最好还是通过 ingress 服务访问集群中的服务