首页 > 其他分享 >【Kubernetes基础】Helm工具入门与使用

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

时间:2024-09-23 12:49:47浏览次数:9  
标签:入门 查看 kubernetes repo helm dashboard Helm Kubernetes

前言

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应用,大大提高效率哦~

标签:入门,查看,kubernetes,repo,helm,dashboard,Helm,Kubernetes
From: https://blog.csdn.net/qq_42567701/article/details/142439939

相关文章

  • AI大模型教程 Prompt提示词工程 AI原生应用开发零基础入门到实战【2024超细超全,建议收
    在AGI(通用人工智能)时代,那些既精通AI技术、又具备编程能力和业务洞察力的复合型人才将成为最宝贵的资源。为此,我们提出了‘AI全栈工程师’这一概念,旨在更精准地描述这一复合型人才群体,而非过分夸大其词。学习目标:这门课的目标,就是培养「AI全栈」人才。通过这门课程的学习,我们......
  • Python 类型提示全解析:从入门到精通的必备技巧(如何让Python代码更清晰、错误更少)
    文章目录......
  • Spring Boot入门
    SpringBoot是一个用于简化Spring应用程序开发的框架,它提供了快速构建、开箱即用的特性,使得开发人员可以更快速地搭建和部署应用程序。SpringBoot的核心理念是“约定优于配置”,它通过自动化配置和预定义的依赖项,减少了开发人员在项目配置上的工作量。入门SpringBoot的......
  • 程序员入门大模型的路径和资源,这篇足够了
    随着人工智能技术的加速演进,AI大模型已成为全球科技竞争的新高地,发展潜力巨大。通用大模型、行业大模型、端侧大模型等如雨后春笋般涌现,广泛应用于经济社会多个领域,如金融、医疗、电商、影视、传媒等,打开了通用人工智能的大门,推动了新一轮的科技革命与产业变革。今天给大......
  • 【TS】TypeScript基础入门篇以及实践案例
    Array和Tuple//最简单的方法是使用「类型+方括号」来表示数组:letarrOfNumbers:number[]=[1,2,3,4]//数组的项中不允许出现其他的类型://数组的一些方法的参数也会根据数组在定义时约定的类型进行限制:arrOfNumbers.push(3)arrOfNumbers.push('abc')//报错//元......
  • Java 入门基础篇08 - Java的变量与数据类型的认识
    1.变量概述什么是变量在程序运行的过程中其值可以在某个范围改变的量变量的作用在程序运行过程中存放某一个不断发生改变的值,在运行时JVM会为变量分配一块内存空间如何定义变量数据类型变量名=变量值;在java中定义变量时必须指定数据类型1. 数据类型数据类型概述......
  • C++入门——类和对象(上)
    文章目录一、类的定义1.1类的定义格式1.2访问限定符1.3类域二、实例化2.1实例化概念2.2对象大小三、this指针四、C++和C语言实现Stack栈的对比总结一、类的定义1.1类的定义格式class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后⾯分......
  • Kubernetes最新版本部署完整过程(1.31)
    参考官方文档进行部署:Kubernetes一、环境准备本次实验使用的操作系统为:Centosstream91.1节点规划一台兼容的Linux主机。Kubernetes项目为基于Debian和RedHat的Linux发行版以及一些不提供包管理器的发行版提供通用的指令。每台机器2GB或更多的RAM(......
  • C语言入门到精通(第六版)——第一章
    1.1C语言发展史1.1.1C语言简述    1、机器语言:机器语言是低级语言,也被称为二进制语言,通过01表示的二进制语言编写的代码。机器语言的特点是可以通过计算机直接识别,不需要编译。    2、汇编语言:汇编语言是面向机器的程序设计语言,通过英文或字符串替代二进......
  • 优秀的拆分(csp2020入门级1)
    一般来说,一个正整数可以拆分成若干个正整数的和。例如,1=1,10=1+2+3+4等。 对于正整数n的一种特定拆分,我们称它为“优秀的”,当且仅当在这种拆分下,n被分解为了若干个不同的2的正整数次幂。注意,一个数x能被表示成2的正整数次幂,当且仅当x能通过正整数个2相乘在一起得到。 例如,10......