美文网首页k8skubernetes
k8s实战-helm3 入门(一)

k8s实战-helm3 入门(一)

作者: lodestar | 来源:发表于2020-04-05 20:33 被阅读0次

    功能:
        helm类似linux下面的包管理器apt-get/yum,能够快速的把yaml文件安装进k8s,且能够方便解决不同环境的配置问题。

    前提:
    已经安装k8s
    熟练使用kubectl及yaml配置文件

    安装:
    helm版本地址
    https://github.com/helm/helm/releases/tag/v3.1.2

    [root@web-test-01 ~]
    wget https://get.helm.sh/helm-v3.1.2-linux-amd64.tar.gz
    tar zxvf helm-v3.1.2-linux-amd64.tar.gz
    cd linux-amd64
    cp helm /usr/bin/helm
    

    helm3就安装好了,测试下

    helm version
    version.BuildInfo{Version:"v3.1.2", GitCommit:"d878d4d45863e42fd5cff6743294a11d28a9abce", GitTreeState:"clean", GoVersion:"go1.13.8"}
    

    怎么使用helm呢?

    [root@web-test-01]# helm create demo
    [root@web-test-01 demo]# tree
    .
    ├── charts         #这个 charts 依赖的其他 charts,始终被安装
    ├── Chart.yaml     #描述这个 Chart 的相关信息、包括名字、描述信息、版本
    ├── templates
    │   ├── deployment.yaml
    │   ├── _helpers.tpl           #模版助手
    │   ├── ingress.yaml
    │   ├── NOTES.txt
    │   ├── serviceaccount.yaml
    │   ├── service.yaml
    │   └── tests
    │       └── test-connection.yaml
    └── values.yaml      #模板变量文件
    

    进入demo目录

    [root@web-test-01 demo]#helm install -f values.yaml mydemo .
    NAME: mydemo
    LAST DEPLOYED: Sun Apr  5 17:16:56 2020
    NAMESPACE: default
    STATUS: deployed
    REVISION: 1
    NOTES:
    1. Get the application URL by running these commands:
      export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=demo,app.kubernetes.io/instance=mydemo" -o jsonpath="{.items[0].metadata.name}")
      echo "Visit http://127.0.0.1:8080 to use your application"
      kubectl --namespace default port-forward $POD_NAME 8080:80
    

    根据提示操作,查看创建是否成功

    [root@web-test-01 demo]# kubectl get pods -A
    NAMESPACE     NAME                      READY   STATUS    RESTARTS   AGE
    default       mydemo-856c65db6b-tm8dp   1/1     Running   0          44m
    

    那我们接下来修改下配置文件

    helm create demo2
    

    values.yaml里面就是配置的变量,将里面的内容修改为

    message: "hello helm3"
    

    将templates文件夹下面的内容全部删除
    新建NOTES.txt,修改为

    Welcome to my blog, This is  testing, {{ .Values.message }}
    

    新建 config-map.yaml

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: {{ .Release.Name }}-configmap
    data:
      myvalue: {{ .Values.message }}
    

    检查语法

    [root@web-test-01 demo2]#helm lint
    ==> Linting .
    [INFO] Chart.yaml: icon is recommended
    
    1 chart(s) linted, 0 chart(s) failed
    

    开始安装

    [root@web-test-01 demo2]#helm install -f values.yaml demo2 .
    NAME: demo2
    LAST DEPLOYED: Sun Apr  5 19:41:51 2020
    NAMESPACE: default
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    NOTES:
    Welcome to my blog, This is  testing hello helm3
    [root@web-test-01 demo2]# kubectl get cm
    NAME              DATA   AGE
    demo2-configmap   1      4m
    

    查看和删除部署的helm

    [root@web-test-01 demo2]# helm list
    NAME    NAMESPACE   REVISION    UPDATED                                 STATUS      CHART       APP VERSION
    demo2   default     1           2020-04-05 19:41:51.645910504 +0800 CST deployed    demo2-0.1.0 1.16.0
    [root@web-test-01 demo2]# helm uninstall demo2
    release "demo2" uninstalled
    

    相关文章

      网友评论

        本文标题:k8s实战-helm3 入门(一)

        本文链接:https://www.haomeiwen.com/subject/mwnuphtx.html