上QQ阅读APP看书,第一时间看更新
2.10.1 创建第一个template文件
我们创建的第一个template文件就是ConfigMap。在Kubernetes中,ConfigMap的作用是存放一些配置信息,这样其他的Pod就可以通过挂载ConfigMap来读取信息。创建ConfigMap文件如下:
#myChart/templates/configmap.yaml apiVersion: v1 kind: ConfigMap metadata: name: myChart-configmap data: myvalue: "Hello World"
上例创建的是一个非常简单的ConfigMap,Tiller在收到这个信息后,可以很简单地直接将其提交到Kubernetes apiServer中,下面我们尝试安装ConfigMap。
[root@iZ8vb0qditk1qw27yu4k5nZ myChart]# helm install ../myChart/ NAME: deadly-raccoon LAST DEPLOYED: Tue Aug 27 20:17:36 2019 NAMESPACE: default STATUS: DEPLOYED RESOURCES: ==> v1/ConfigMap NAME DATA AGE myChart-configmap 1 0s
在上面的输出中,我们可以看到ConfigMap已经被创建出来了,下面我们使用Helm命令行查看一下提交的资源信息。
[root@iZ8vb0qditk1qw27yu4k5nZ myChart]# helm get manifest deadly-raccoon --- # Source: myChart/templates/configmap.yaml apiVersion: v1 kind: ConfigMap metadata: name: myChart-configmap data: myvalue: "Hello World"
helm get manifest命令通过读取Release名称,能够输出所有提交给Kubernetes集群的资源信息。每个资源之间通过“---”分隔符分割,这里输出的都是被Helm解析完毕的yaml,即可以直接被Kubernetes集群识别。
下面再通过Kubernetes命令行验证资源的提交情况。
[root@iZ8vb0qditk1qw27yu4k5nZ myChart]# kubectl get cm NAME DATA AGE myChart-configmap 1 6m56s [root@iZ8vb0qditk1qw27yu4k5nZ myChart]# kubectl get cm myChart-configmap -o yaml apiVersion: v1 data: myvalue: Hello World kind: ConfigMap metadata: creationTimestamp: 2019-08-27T12:17:36Z name: myChart-configmap namespace: default resourceVersion: "4716216" selfLink: /api/v1/namespaces/default/configmaps/myChart-configmap uid: a7bcd6d9-c8c4-11e9-a8fb-00163e04d480
通过输出可以看出,这个ConfigMap确实已经被提交到Kubernetes集群了,而且内容都是正确的。下面我们可以使用helm delete deadly-raccoon--purge命令删除这个Release了。