helm安装

50 篇文章 1 订阅
25 篇文章 0 订阅

helm就是k8s的包管理工具 ,前提是先安装好k8s

使用kubeode快速部署k8s_我是一只代码狗的博客-CSDN博客

然后我们安装helm 

yum install -y wget

mkdir -p /usr/local/helm

cd /usr/local/helm

wget https://get.helm.sh/helm-v3.10.0-linux-amd64.tar.gz

tar zxvf helm-v3.10.0-linux-amd64.tar.gz

mv -f linux-amd64/helm /usr/bin

然后我们访问

https://artifacthub.io

 他是helm的镜像仓库站,比如说我们要部署nginx

我们输入nginx,然后点击进去详情

 点击install 可以看到具体的命令

 添加仓库 nginx-test 自己定义

helm repo add nginx-test http://175.24.198.168:8080

安装图表 my-nginx你可以随便起名 版本号 可以选择右侧的历史版本

helm install my-nginx nginx-test/nginx --version 13.2.12

nginx-test/nginx前面的nginx-test,要和上面仓库的nginx-test一样的名字

 如果已经安装了,想要卸载可以使用

helm uninstall my-nginx

接下来我们看下pod

kubectl get pods

 可以看到已经在pods中存在了,通过一句话就搞定了

我们在看下服务和部署的信息

kubectl get deployment

kubectl get service

可以看到都有了,我们访问下nginx

http://192.168.184.128:43637/

 可以看到,是不是很方便一行命令就搞定了所有

接下来我们查看下helm都部署了那些东西

helm list

 

 我们要看到详细信息可以使用

helm status my-nginx

 my-nginx就是helm list查询出来的name

我们要是对pod进行扩容 可以使用

helm upgrade my-nginx nginx-test/nginx --version 13.2.12 --set replicaCount=3

就是把install换成了upgrade 后面加set 修改 副本数量=多少个

再次查看就变成了3个

kubectl get deploy

 我们也可以缩容,就是把3变成1 然后再看下,就变成了1个

 deployment和deploy是一样的,deploy就是简写

所以可以使用kubectl get deploy

接下来我们构建helm私有仓库发布自定义charts

在jenkins这台服务器上面启动chartmuseum

docker run -p 18080:8080 --name chartmuseum --restart=always -d bitnami/chartmuseum:0.15.0

浏览器输入http://192.168.184.136:18080/

 可以看到启动成功了

接下来,我们在回到k8s的服务器,因为k8s服务器安装了helm

mkdir -p /usr/local/charts

cd /usr/local/charts

helm create my-charts

cd /usr/local/charts/my-charts

我们可以看到,helm已经给我们创建好了这些文件

 charts 基本信息

Chart.yaml 核心配置项

templates 模板

values.yaml 模板所需要传入的数据

我们可以看下Chart.yaml

cat Chart.yaml

 看着有2个版本 是不是很绕 我们对文件进行修改

vi Chart.yaml

把 appVersion:变成stable稳定版本

再次查看,是不是就区分出了

 version 是图表版本,生成压缩包的时候会自动带上

appVersion 是正在部署的应用程序的版本号

然后进入模板目录下 把所有文件删除掉

cd templates

rm -rf deployment.yaml

rm -rf _helpers.tpl

rm -rf hpa.yaml

rm -rf ingress.yaml

rm -rf NOTES.txt

rm -rf serviceaccount.yaml

rm -rf service.yaml

rm -rf tests

然后把我们的部署和服务脚本拿过来

cat > deployment.yaml <<-'EOF'
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      app: my-pod
  template:
    metadata:
      labels:
        app: my-pod
    spec:
      containers:
        - name: demo3
          image: 192.168.184.136:80/public/mydemo3:webhook-0.6
          ports:
            - containerPort: 9003
EOF
cat > service.yaml <<- 'EOF'
apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  type: NodePort
  ports:
    - port: 9003
      name: service-port
      nodePort: 31000
  selector:
    app: my-pod
EOF
ll

 注意这里的名字 不要随便改动,deploymen.yaml和service.yaml是固定的名字

然后我们回到私有仓库的根目录

cd /usr/local/charts/my-charts

对当前目录构建压缩包,别忘了后面还有个点 

helm package .

 接下来我们把压缩包上传到chartmuseum私有仓库,也就是在jenkins那台服务器安装好的

curl --data-binary "@my-charts-0.1.0.tgz" http://192.168.184.136:18080/api/charts

 注意@符号不要丢

18080就是chartmuseum的端口

 我们在浏览器输入

http://192.168.184.136:18080/api/charts

 可以看到数据已经上传成功了

接下来我们回到k8s的服务器

我们先把之前的容器和服务删除掉

kubectl delete deployment my-deployment
kubectl delete service my-service

安装helm私有仓库

helm repo add my-repo http://192.168.184.136:18080/

更新仓库

helm repo update

安装图表,my-repo要和安装的私有仓库一致,my-charts就是我们之前创建的目录

helm install xm my-repo/my-charts

我们要搜索仓库可以使用

helm search repo my-repo

我们来看下安装后的信息

helm list

 然后我们看一下服务和容器信息

kubectl get service

kubectl get pods

 我们访问下微服务的接口

http://192.168.184.128:31000/aa

 可以看到发布成功了

如果想要卸载图表可以使用

helm uninstall xm

如果想要删除仓库,可以使用

helm repo remove my-repo

之前我们做的是写死的标签,接下来我们动态的传值

接下来我们进入my-charts目录

cd /usr/local/charts/my-charts

修改values.yaml

vi values.yaml

里面的数据全部清空

放入副本数,标签,节点端口

replicas: 3
tag: webhook-0.6
nodePort: 31000

然后进入模板目录 

cd /usr/local/charts/my-charts/templates

修改部署脚本

vi deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
spec:
  replicas: {{.Values.replicas}}
  selector:
    matchLabels:
      app: my-pod
  template:
    metadata:
      labels:
        app: my-pod
    spec:
      containers:
        - name: demo3
          image: 192.168.184.136:80/public/mydemo3:{{.Values.tag}}
          ports:
            - containerPort: 9003

 我们这里使用{{.Values.xxx}}的形式传数据

Values就是values.yaml文件

其他的都是文件的内容,这里是V是大写开头要注意

我们在修改下service

vi service.yaml
apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  type: NodePort
  ports:
    - port: 9003
      name: service-port
      nodePort: {{.Values.nodePort}}
  selector:
    app: my-pod

我们要把之前发布的删除掉

curl -X DELETE http://192.168.184.136:18080/api/charts/my-charts/0.1.0

回到图表目录 

cd /usr/local/charts/my-charts

重新打压缩包

helm package .

上传压缩包到chartmuseum

curl --data-binary "@my-charts-0.1.0.tgz" http://192.168.184.136:18080/api/charts

我们先卸载掉之前安装好的xm

helm uninstall xm

更新仓库才能看到最新的压缩包

helm repo update

然后我们安装xm,在set 动态设置副本数 和标签

helm install xm my-repo/my-charts --set replicas=3 --set tag=dev-0.3

我们可以看到,副本数已经发生了变化

 我们访问

http://192.168.184.128:31000/aa

 我们可以对其进行改动

helm upgrade xm my-repo/my-charts --set replicas=1 --set tag=webhook-0.6

 可以看到已经发生了变化

在看下标签对应的微服务

成功更新了 

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值