Rancher K8s Helm使用体验

潇潇洒洒玩一玩

引言

之前的文章已经阐述了Rancher K8s中国区的使用优化, http://niusmallnan.com/2017/01/19/optimize-rancher-k8s-in-china/, 本文则是选取一个特殊的组件Helm,深入一些体验使用过程。Helm是K8s中类似管理catalog的组件, 在较新的Rancher K8s版本中,Helm已经默认集成可直接使用。

初始化CLI环境

如果已经习惯使用Rancher UI上自带的kubectl tab,那么可以跳过此步。 大部分玩家还是更喜欢在自己的机器上使用kubectl和helm CLI来做管理的。 在自己的机器上部署kubectl和helm命令行工具,有一个比较偷懒的方法, 就是直接到kubectld容器拷贝出来,主要过程如下:

# kubectrld容器ID为 42291346c064
$ docker cp 42291346c064:/usr/bin/kubectl /usr/local/bin/kubectl
$ docker cp 42291346c064:/usr/bin/helm /usr/local/bin/helm
$ docker cp 42291346c064:/tmp/.helm ~/.helm

当然也不要忘记kubectl的配置文件,在Rancher UI上生成,然后拷贝到对应的本地目录上。

基于Helm部署Mysql

K8s官方的Charts中已经有了mysql这个应用, 这里https://github.com/kubernetes/charts/tree/master/stable可以找到, 几乎所有的Chart都需要依赖PersistentVolumeClaim提供卷,所以在一切开始之前, 我们需要先创建一个PersistentVolume,来提供一个数据卷池。这里可以选择部署比较方便的NFS。

选择一台主机,安装nfs-kernel-server,并做相应配置:

$ apt-get install nfs-kernel-server

# 配置卷
# 修改 /etc/exports,添加如下内容
/nfsexports *(rw,async,no_root_squash,no_subtree_check)

# 重启nfs-server
service nfs-kernel-server restart

使用kubectl创建PV,文件内容如下:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv0003
  annotations:
    volume.beta.kubernetes.io/storage-class: "slow"
spec:
  capacity:
    storage: 2Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  nfs:
    path: /nfsexports #NFS mount path
    server: 172.31.17.169 #NFS Server IP

安装mysql之前,需要准备一份mysql chart的配置文件,也就是对应的values.yaml, 其他内容https://github.com/kubernetes/charts/blob/master/stable/mysql/values.yaml基本不变, 主要修改persistence部分,这样所依赖的PVC才能bound到对应的PV上,如下:

persistence:
  enabled: true
  storageClass: slow
  accessMode: ReadWriteMany
  size: 1Gi

一切准备妥当,就可以进行Mysql Chart的安装,执行过程如下:helm install --name ddb -f values.yaml stable/mysql

安装完毕后,在Rancher UI和K8s Dashboard上都可以看到。

分享 评论
comments powered by Disqus