Helm部署Wordpress应用实例

前置工作:安装和部署Helm

安装Helm客户端

所有运行kubectl的节点均需要安装Helm客户端。

# 使用curl下载Helm脚本并执行安装
curl https://raw.githubusercontent.com/helm/helm/master/scripts/get | bash

安装完成后,可以通过以下命令验证安装:

helm version

安装Tiller服务器

1. 导入tiller镜像

docker load -i tiller.tar

2. 创建Helm服务账号

创建tiller-rbac-config.yaml文件,并加入以下内容:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: tiller
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: tiller
    namespace: kube-system

运行以下命令创建tiller服务账号:

kubectl apply -f tiller-rbac-config.yaml

3. 部署Tiller

执行helm init命令部署Tiller,并指定服务账号:

helm init --service-account tiller

使用Helm安装Wordpress

1. 搜索chart

搜索wordpress的charts:

helm search wordpress

2. 查看chart的存储信息

查看stable/wordpress chart的values信息:

helm inspect values stable/wordpress

3. 手动创建chart所需的pv

创建create-pv.yml文件,并输入以下内容:

apiVersion: v1
kind: PersistentVolume
metadata:
  name: mariadb-pv
spec:
  capacity:
    storage: 8Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  nfs:
    path: /nfsdata/mariadb-pv
    server: 172.20.6.116
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: wordpress-pv
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  nfs:
    path: /nfsdata/wordpress-pv
    server: 172.20.6.116

创建pv:

kubectl apply -f create-pv.yml

4. 安装chart

安装wordpress chart:

helm install --name wordpress stable/wordpress

5. 访问wordpress

使用http://nodeip:service_port访问wordpress,例如:

http://node:port/

总结

Helm的使用简化了部署一个应用的流程。对于使用者而言,使用Helm后不需要了解Kubernetes的yaml语法并编写应用部署文件,也无需考虑应用的各种依赖,可以直接通过Helm下载并在kubernetes上安装需要的应用。除此以外,Helm还提供了kubernetes上的软件部署、删除、升级、回滚应用的强大功能。

打 赏