【Kubernetes基础】Helm工具入门与使用

前言

Helm是Kubernetes包管理工具,类似CentOS的yum包管理工具

学习Kubernetes,了解如何通过Helm安装跟管理Kubernetes应用很有必要,下面就来介绍Helm的入门使用。

一、Helm基本管理

1.1 检查Helm版本

helm version

helm version

二、配置Helm仓库

Helm可以通过添加仓库源来使用公共的 Chart仓库

2.1 添加官方稳定Chart仓库

Helm repo add

helm repo add stable https://charts.helm.sh/stable

helm repo add stable-hub https://hub.helm.sh/stable

常见问题

#国内直接配置stable仓库报错

#报错提示一
Error: looks like "https://charts.helm.sh/stable" is not a valid chart repository or cannot be reached: Get "https://charts.helm.sh/stable/index.yaml": dial tcp: lookup charts.helm.sh: no such host

#报错提示二
Error: looks like "https://charts.helm.sh/stable" is not a valid chart repository or cannot be reached: Get "https://charts.helm.sh/stable/index.yaml": dial tcp [2606:50c0:8002::153]:443: connect: no route to host


#报错提示三
Error: looks like "https://charts.helm.sh/stable" is not a valid chart repository or cannot be reached: context deadline exceeded (Client.Timeout or context cancellation while reading body)

解决思路

由于国内网络访问的限制,建议配置私有仓库,或者国内可用的Helm仓库,参考如下2.2部分

2.2 添加国内Helm仓库

#配置国内常用的Helm仓库
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

helm repo add azure http://mirror.azure.cn/kubernetes/charts

helm repo add kaiyuanshe http://mirror.kaiyuanshe.cn/kubernetes/charts

helm repo add bitnami https://charts.bitnami.com/bitnami

#arthub上ingress-nginx
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx

2.2.1 本地Docker Desktop添加Chart仓库

aliyun

kaiyuanshe

bitnami(Vmware)

2.2.2 常用Helm Chart包

ingress-nginx(kubernetes仓库)

k8s-dashboard(kubernetes仓库)

harbor(harbor官方)
helm repo add harbor https://helm.goharbor.io


2.2.3 云服务器添加chart仓库

添加仓库

更新仓库

2.3 查看已添加的仓库

Helm repo list

helm repo list

2.4 刷新仓库本地缓存

Helm repo update

helm repo update

三、Helm安装应用

3.1 Helm搜索Chart包

helm search repo nginx

helm search repo nginx

3.2 查看安装包内容

Helm inspect values

helm inspect values

3.3 Helm安装Chart包(安装ingress-nginx)

helm install my-ingress-nginx

helm install mynginx stable/nginx

helm install stable/nginx-ingress

helm install --name my-release stable/nginx-ingress

查看pod安装情况

查看deployment安装情况

查看service创建情况

Nginx安装主要资源对象

访问Nginx服务

安装问题记录

常见问题 Init:ImagePullBackOff
解决思路

1. kubectl describe pod,查看pod异常事件,提示拉取镜像失败

2. 尝试手动pull镜像

3. 手动拉取镜像成功

4. 检查pod状态,手动拉取镜像后,pod状态正常拉起

3.4 Helm安装kubernetes-dashboard

3.4.1 helm install my-kubernetes-dashboard 

helm install my-kubernetes-dashboard k8s-dashboard/kubernetes-dashboard --version 7.5.0

kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard-kong-proxy 8443:443            #访问Dashboard执行

kubectl -n default get svc

https://localhost:8443
查看deployment情况

查看pod情况

查看service情况

3.4.2 端口转发port-forward 8443->443

kubectl port-forward svc/my-kubernetes-dashboard-kong-proxy 8443:443

3.4.3 创建sa账号dashboard

1. 创建sa serviceaccount
kubectl create serviceaccount dashboard -n kubernetes-dashboard
2. 创建rolebinding
kubectl create rolebinding def-ns-admin --clusterrole=admin --serviceaccount=default:def-ns-admin
3. 创建clusterrolebinding
kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard

4. 创建secret(注意:1.24版本后不会自动创建secret,需手动创建)
cat<<EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
type: kubernetes.io/service-account-token
metadata:
  name: dashboard
  annotations:
    kubernetes.io/service-account.name: "dashboard"
EOF

5. 查看sa的token
kubectl describe sa dashboard

6. 查看secret dashboard


3.4.4 创建sa账号dashboard-admin

1. 创建sa serviceaccount
kubectl create serviceaccount dashboard-admin -n kube-system        #创建dashboard管理用户

2. 绑定用户为集群管理用户
kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin

3. 创建secret给dashboard-admin(注意:1.24版本后不会自动创建secret,需手动创建)
cat<<EOF | kubectl apply -f -
apiVersion: v1
kind: Secret
type: kubernetes.io/service-account-token
metadata:
  name: dashboard-admin-token
  annotations:
    kubernetes.io/service-account.name: "dashboard-admin"
EOF

4. 查看secret dashboard-admin-token


3.4.5 访问Kubernets-Dashboard

3.5 Helm安装harbor

Helm install my-harbor

helm install my-harbor harbor/harbor --version 1.15.1

查看pod安装情况

查看deployment安装情况

查看statefulset安装情况

查看ingress安装情况

查看service安装情况

查看pv创建情况

查看pvc创建情况

Harbor安装主要资源对象

查看node节点的外部IP

4 管理Helm安装列表

4.1 查看安装列表

helm list

helm list

helm list --all

4.2 查看Release状态

helm status my-harbor

helm status my-harbor

4.3 查看Release具体信息

Helm get notes <release>

helm get notes my-harbor

Helm get manifest <release>

helm get manifest <release>

5 查看应用Chart 可配置参数

5.1 查看应用Chart

Helm show chart <repo>/<chart-id>

Helm show chart <repo>/<chart-id>

5.2 查看应用可配置参数Values

Helm show values <repo>/<chart-id>
Helm show values <repo>/<chart-id>

6 Helm升级应用Chart包

6.1 Helm升级Chart

Helm upgrade my-harbor

helm upgrade my-harbor


写在最后

Helm作为Kubernetes的包管理工具,学习掌握Helm的使用对Kubernetes上的应用管理很有帮助,快来试试,用Helm搭建你的Kubernetes应用,大大提高效率哦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值