k8skubernetes

k8s实战-helm3 入门(一)

2020-04-05  本文已影响0人  lodestar

功能:
    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
上一篇下一篇

猜你喜欢

热点阅读