之前,在Rancher手动的创建Kubernetes集群。为了做一些测试,我会经常创建/删除集群。如果一直手动做这样的事情会比较痛苦。
在本文中,将介绍创建Rancher Cluster以及后续的操作。
创建一个Cluster
在一个崭新的Rancher上部署一个新的集群。我们需要做如下的事情:
- 创建一个Cloud Credential,之后Node Template需要。
- 创建Kubernetes Master和Worker Node Template。在Rancher 2.3.5 中, 已经支持手动选择配置,比如Datacenter, Datastore, Folder以及Network等。
- 创建一个Cluster.
- (可选)配置Kubernetes Cloud Provider
这是一个重复的过程,因此尝试着使用Terraform将这些可重复的过程代码化,即基础设施即代码(Infrastructure As Code)。我已经将代码保存到了Github上。https://github.com/chengqing-su/vsphere-cluster-on-rancher
如何使用
首先,拉取代码。
1 | git clone [email protected]:chengqing-su/vsphere-cluster-on-rancher.git |
然后,新建一个文件terraform/terraform.tfvars
,编辑如下内容并复制到文件中。
1 | name = "<YOUR-CLUSTER-NAME>" |
然后,运行自动化脚本auto/deploy
一键部署。
当不需要这个集群的时候可以运行auto/destory
一键删除。
创建Cluster之后
在我们创建好了一个Cluster之后,我们还要一些后续的操作帮助我们由更好的体验。
创建一个默认Storage Class
我们知道PV的创建总共由两种方式,第一种是管理员直接创建,第二种是用通过Storage Class动态创建。因此我们经常需要创建一个Storage Class来使用存储资源。
下面是Storage Class的manifest:
1 | apiVersion: storage.k8s.io/v1 |
使用kubectl命令apply一下上面的manifest就可以创建一个默认的Storage Class.
配置Loadbalancer
在创建一个LoadBalancer类型的Service的时候,发现一直不成功。
为了解决这个问题,可以在App种安装一个叫做metallb的应用。安装完成之后,还需要创建一个ConfigMap,内容如下:
1 | apiVersion: v1 |