Helm的安装和调试(常见错误解决)

第 1 篇 Helm 简介及安装 Helm 入门,先介绍,再安装。 阅读详情

Helm整体架构:
在这里插入图片描述
1.为什么要用?

首先在原来项目中都是基于yaml文件来进行部署发布的,而目前项目大部分微服务化或者模块化,会分成很多个组件来部署,每个组件可能对应一个deployment.yaml,一个service.yaml,一个Ingress.yaml还可能存在各种依赖关系,这样一个项目如果有5个组件,很可能就有15个不同的yaml文件,这些yaml分散存放,如果某天进行项目恢复的话,很难知道部署顺序,依赖关系等,而所有这些包括

基于yaml配置的集中存放
基于项目的打包
组件间的依赖

都可以通过helm来进行解决。

2.Helm 基本概念

Helm 可以理解为 Kubernetes 的包管理工具,可以方便地发现、共享和使用为Kubernetes构建的应用,它包含几个基本概念

Chart:一个 Helm 包,其中包含了运行一个应用所需要的镜像、依赖和资源定义等,还可能包含 Kubernetes 
           集群中的服务定义
Release: 在 Kubernetes 集群上运行的 Chart 的一个实例。在同一个集群上,一个 Chart 可以安装很多次。每次
               安装都会创建一个新的 release。例如一个 MySQL Chart,如果想在服务器上运行两个数据库,就可以
               把这个 Chart 安装两次。每次安装都会生成自己的 Release,会有自己的 Release 名称。
Repository:用于发布和存储 Chart 的仓库。

3.Helm 组件及架构

Helm 采用客户端/服务器架构,有如下组件组成:

Helm CLI 是 Helm 客户端,可以在本地执行
Tiller 是服务器端组件,在 Kubernetes 群集上运行,并管理 Kubernetes 应用程序的生命周期
Repository 是 Chart 仓库,Helm客户端通过HTTP协议来访问仓库中Chart的索引文件和压缩包。

在这里插入图片描述
4.Helm的安装

在下列网站下载helm的相关版本

https://github.com/kubernetes/helm/releases

tar -xvzf $HELM.tar.gz

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

在K8s节点上配置.kube/config(我是因为之前没搞这些,大家如果搞过就直接忽略)


[root@k8s-node-1 ~]# kubectl config set-cluster kubernetes --server=http://192.168.0.104:8080
Cluster "kubernetes" set.


[root@k8s-node-1 ~]# kubectl config set-credentials admin
User "admin" set.

[root@k8s-node-1 ~]# kubectl config set-context kubernetes \
> --cluster=kubernetes \
> --user=admin
Context "kubernetes" set.


[root@k8s-node-1 ~]# kubectl config use-context kubernetes
Switched to context "kubernetes".

运行安装

先创建用户和角色。

apiVersion: v1
kind: ServiceAccount
metadata:
  name: tiller
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: tiller
    namespace: kube-system

[root@k8s-node-1 ~]# helm init -i --service-account tiller registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.10.0 (我使用的)
或
helm init --service-account tiller --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.10.0 --skip-refresh

$HELM_HOME has been configured at /root/.helm.

Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster.
Happy Helming!

然后去查看

[root@k8s-node-1 ~]# kubectl get pod -n kube-system -l app=helm
NAME                             READY     STATUS              RESTARTS   AGE
tiller-deploy-3018021184-dxpfj   0/1       ContainerCreating   0          26s
[root@k8s-node-1 ~]# kubectl describe pods tiller-deploy-3018021184-dxpfj -n kube-system
Name:        tiller-deploy-3018021184-dxpfj
Namespace:    kube-system
Node:        k8s-node-1/192.168.0.105
Start Time:    Fri, 23 Feb 2018 18:41:28 +0800
Labels:        app=helm
        name=tiller
        pod-template-hash=3018021184
Status:        Pending
IP:        
Controllers:    ReplicaSet/tiller-deploy-3018021184
Containers:
  tiller:
    Container ID:    
    Image:        gcr.io/kubernetes-helm/tiller:v2.8.1
    Image ID:        
    Ports:        44134/TCP, 44135/TCP
    State:        Waiting
      Reason:        ContainerCreating
    Ready:        False
    Restart Count:    0
    Liveness:        http-get http://:44135/liveness delay=1s timeout=1s period=10s #success=1 #failure=3
    Readiness:        http-get http://:44135/readiness delay=1s timeout=1s period=10s #success=1 #failure=3
    Volume Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from tiller-token-xng0h (ro)
    Environment Variables:
      TILLER_NAMESPACE:        kube-system
      TILLER_HISTORY_MAX:    0
Conditions:
  Type        Status
  Initialized     True 
  Ready     False 
  PodScheduled     True 
Volumes:
  tiller-token-xng0h:
    Type:    Secret (a volume populated by a Secret)
    SecretName:    tiller-token-xng0h
QoS Class:    BestEffort
Tolerations:    <none>
Events:
  FirstSeen    LastSeen    Count    From            SubObjectPath        Type        Reason        Message
  ---------    --------    -----    ----            -------------        --------    ------        -------
  1m        1m        1    {default-scheduler }                Normal        Scheduled    Successfully assigned tiller-deploy-3018021184-dxpfj to k8s-node-1
  1m        1m        1    {kubelet k8s-node-1}    spec.containers{tiller}    Normal        Pulling        pulling image "gcr.io/kubernetes-helm/tiller:v2.8.1"

发现需要gcr.io/kubernetes-helm/tiller:v2.8.1

一番折腾后运行后完成,因为找不到2.8.1版本,所以最后搞了个2.6.0版本

[root@k8s-master helm]# helm init --service-account tiller --upgrade -i index.tenxcloud.com/kubernetes-helm/tiller:v2.6.0  --skip-refresh
Creating /root/.helm 
Creating /root/.helm/repository 
Creating /root/.helm/repository/cache 
Creating /root/.helm/repository/local 
Creating /root/.helm/plugins 
Creating /root/.helm/starters 
Creating /root/.helm/cache/archive 
Creating /root/.helm/repository/repositories.yaml 
Adding stable repo with URL: https://kubernetes-charts.storage.googleapis.com 
Adding local repo with URL: http://127.0.0.1:8879/charts 
$HELM_HOME has been configured at /root/.helm.

Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster.
Happy Helming!

问题解决

先解决两个错误:

    unable to do port forwarding: socat not found.
[root@k8s-master hello-svc]# helm version
Client: &version.Version{SemVer:"v2.8.1", GitCommit:"6af75a8fd72e2aa18a2b278cfe5c7a1c5feca7f2", GitTreeState:"clean"}
E0224 14:13:16.077226    7416 portforward.go:331] an error occurred forwarding 37271 -> 44134: error forwarding port 44134 to pod 76a7312e49220a229e443546a4b32d3e0406f09fd9b3646b3d30f6833e121375, uid : unable to do port forwarding: socat not found.
Error: cannot connect to Tiller

解决办法在node节点安装socat

yum install socat

版本不一致

重新下载一致的版本包,和images的版本保持一致

5.项目中如何使用

针对每个项目形成一个chart,最后形成一个Chart Package

比如下面针对hello-svc这个基于tomcat的项目,先生成一个chart的结构

创建chart及部署

[root@k8s-master ~]# helm create hello-svc
Creating hello-svc

按照我们自己的需求修改模板中的deployment.yaml,service.yaml和values.yaml文件

[root@k8s-master templates]# cat deployment.yaml 
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: tomcatjmx
spec:
  replicas: {{.Values.replicas}}
  template:
    metadata:
      labels:
        tomcat-app: "tomcatjmx"
        version: "1"
    spec:
      containers:
      - name: tomcatjmx
        image: tomcat:{{.Values.images.dockerTag}}
        ports:
        - containerPort: {{.Values.images.Port}}
          name: tomcatport
        - containerPort: 35135
          name: jmx
[root@k8s-master templates]# cat service.yaml 
apiVersion: v1
kind: Service
metadata:
  name: {{.Values.service.name}} 
  labels:
    tomcat-app: tomcatjmx
spec:
  ports:
  - port: {{.Values.service.Port}} 
    protocol: TCP
    targetPort: 8080
    name: http
  - name: jmx
    protocol: TCP
    port: 35135
    targetPort: {{.Values.service.targetPort}}
  type: NodePort
  selector:
    tomcat-app: tomcatjmx


[root@k8s-master hello-svc]# cat values.yaml 
# Default values for hello-svc.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

replicas: 1

images:
  dockerTag: jmxv4 
  Port: 8080

service:
  name: tomcatjmxsvc
  Port: 80
  targetPort: 35135

相应的NOTES.txt也进行调整直到验证没有问题,验证完成通过install安装


helm install --dry-run --debug ./
[root@k8s-master hello-svc]# helm install ./
NAME:   kindly-worm
LAST DEPLOYED: Sat Feb 24 14:45:58 2018
NAMESPACE: default
STATUS: DEPLOYED

RESOURCES:
==> v1/Service
NAME          CLUSTER-IP     EXTERNAL-IP  PORT(S)                       AGE
tomcatjmxsvc  10.254.25.181  <nodes>      80:32733/TCP,35135:30714/TCP  1s

==> v1beta1/Deployment
NAME       DESIRED  CURRENT  UP-TO-DATE  AVAILABLE  AGE
tomcatjmx  1        1        1           0          1s


NOTES:
1. Get the application URL by running these commands:
  export POD_NAME=$(kubectl get pods -l "app=hello-svc,release=kindly-worm" -o jsonpath="{.items[0].metadata.name}")
  echo "Visit http://127.0.0.1:8080 to use your application"
  kubectl port-forward $POD_NAME 8080:80
[root@k8s-master hello-svc]# helm list
NAME           REVISION    UPDATED                     STATUS      CHART              NAMESPACE
kindly-worm    1           Sat Feb 24 14:45:58 2018    DEPLOYED    hello-svc-0.1.0    default  

形成一个chart Package

打包形成一个tgz文件,估计是每个项目一个chart,对应一个tgz

helm package ./

Chart Package的集中管理和存放

上面我们是从本地的目录结构中的chart去进行部署,如果要集中管理chart,就需要涉及到repository的问题,因为helm repository都是指到外面的地址,接下来我们可以通过minio建立一个企业私有的存放仓库。

Minio提供对象存储服务。它的应用场景被设定在了非结构化的数据的存储之上了。众所周知,非结构化对象诸如图像/音频/视频/log文件/系统备份/镜像文件…等等保存起来管理总是不那么方便,size变化很大,类型很多,再有云端的结合会使得情况更加复杂,minio就是解决此种场景的一个解决方案。Minio号称其能很好的适应非结构化的数据,支持AWS的S3,非结构化的文件从数KB到5TB都能很好的支持。

Minio的使用比较简单,只有两个文件,服务端minio,客户访问端mc,比较简单。

在项目中,我们可以直接找一台虚拟机作为Minio Server,提供服务,当然minio也支持作为Pod部署。

1.安装配置Minio

下载

在https://dl.minio.io/client/mc/release/linux-amd64/ 下载客户端程序mc和服务端程序minio

启动minio服务

minio server ./repository

针对使用得客户端加入security和token信息

./mc config host add myminio http://192.168.44.108:9000 B0SW3MZ00J7OCG2JCG5D nZrG2olrz+aDbhbzVhft6JivkkoPQe2gp5JaG+XO

创建一个bucket同时设置权限

mc mb myminio/minio-helm-repo

mc policy download myminio/minio-helm-repo

安装完成后通过浏览器访问minio的界面,http://192.168.44.108:9000/
在这里插入图片描述
2.将我们上面创建的chart Package传入Minio的Repository

index.yaml为了让helm对里面的包进行索引,找到各种entry,每个entry是一个项目,每个项目对应一个chart Package.

在本地建立一个index.yaml,然后上传,将来在使用的时候可以通过程序实现自动添加。

[root@k8s-master minio-helm-repo]# cat index.yaml
apiVersion: v1
entries:
  hello-svc:
  - apiVersion: v1
    description: Distributed object storage server built for cloud applications and  devops.
    digest: 8440f6f064ed91a75194e77d4b2be99c491c1cb04fb34bca4a36a5be67e1ef2c
    name: hello-svc
    urls:
    - http://192.168.44.108:9000/minio-helm-repo/hello-svc-0.1.0.tgz
    version: 0.1.0

将之前的tgz package和index文件都传入。

./mc cp ./index.yaml myminio/minio-helm-repo
./index.yaml:       601 B / 601 B ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 100.00% 47.73 KB/s 0s


./mc cp /root/hello-svc/hello-svc-0.1.0.tgz myminio/minio-helm-repo
...-svc-0.1.0.tgz:  1.50 KB / 1.50 KB ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 100.00% 48.00 KB/s 0s

3.设置Helm

在helm中加入repository,加入完成后可以通过helm repo list进行罗列。修改了index.yaml后也需要用helm repo update进行更新。


[root@k8s-master helm]# helm repo add myrepo http://192.168.44.108:9000/minio-helm-repo
"myrepo" has been added to your repositories

[root@k8s-master helm]# helm repo update
Hang tight while we grab the latest from your chart repositories...
...Skip local chart repository
...Unable to get an update from the "stable" chart repository (https://kubernetes-charts.storage.googleapis.com):
    Get https://kubernetes-charts.storage.googleapis.com/index.yaml: dial tcp: lookup kubernetes-charts.storage.googleapis.com on [::1]:53: read udp [::1]:59458->[::1]:53: read: connection refused
...Successfully got an update from the "myrepo" chart repository
Update Complete. ⎈ Happy Helming!⎈ 

基于Minio的Repository进行Helm的部署

好了,一切就绪,先search一下

[root@k8s-master helm]# helm search hello
WARNING: Repo "stable" is corrupt or missing. Try 'helm repo update'.NAME                VERSION    DESCRIPTION                                       
local/hello-svc     0.1.0      A Helm chart for Kubernetes                       
myrepo/hello-svc    0.1.0      Distributed object storage server built for clo...


[root@k8s-master helm]# helm install myrepo/hello-svc
NAME:   quelling-hound
LAST DEPLOYED: Sat Feb 24 17:14:23 2018
NAMESPACE: default
STATUS: DEPLOYED

RESOURCES:
==> v1/Service
NAME          CLUSTER-IP      EXTERNAL-IP  PORT(S)                       AGE
tomcatjmxsvc  10.254.180.188  <nodes>      80:31790/TCP,35135:31132/TCP  2s

==> v1beta1/Deployment
NAME       DESIRED  CURRENT  UP-TO-DATE  AVAILABLE  AGE
tomcatjmx  1        1        1           0          2s


NOTES:
1. Get the application URL by running these commands:
  export POD_NAME=$(kubectl get pods -l "app=hello-svc,release=quelling-hound" -o jsonpath="{.items[0].metadata.name}")
  echo "Visit http://127.0.0.1:8080 to use your application"
  kubectl port-forward $POD_NAME 8080:80

这里search能搜索到但是部署不上去的问题折腾了一下,最后原因是那个Index.yaml文件写得有问题。再度更新后成功部署。

我自己安装Helm的步骤:
1)安装Helm客户端

curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get | bash

2)安装helm的bash命令补全脚本

helm completion bash > .helmrc echo "source  .helmrc" >> .bashrc

3)安装Tiller服务器
官方的安装方式:

helm init

在中国不好使。。所以首先下载tiller。到dockerhub上搜”gcr.io.kubernetes-helm“,找到fishead/grc.io.kubernetes-helm.tiller
在这里插入图片描述然后找到Dockerfile。
在这里插入图片描述
然后使用

sudo docker pull fishead/gcr.io.kubernetes-helm.tiller:v2.12.3

然后更改镜像名

sudo cocker tag fishead/gcr.io.kubernetes-helm.tiller:v2.12.3  gcr.io.kubernetes-helm.tiller:v2.12.3

运行安装

如果你之前安装了,先卸载:
卸载
helm reset将会移除tiller在k8s集群上创建的pod
当出现上面的context deadline exceeded时, helm reset同样会报该错误.执行

heml reset -f

强制删除k8s集群上的pod.
当要移除helm init创建的目录等数据时,执行

helm reset --remove-helm-home

先创建用户和角色。

apiVersion: v1
kind: ServiceAccount
metadata:
  name: tiller
  namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: tiller
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: tiller
    namespace: kube-system

[root@k8s-node-1 ~]# helm init -i --service-account tiller registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.10.0 (我使用的)
或
helm init --service-account tiller --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:v2.10.0 --skip-refresh

$HELM_HOME has been configured at /root/.helm.

Tiller (the Helm server-side component) has been installed into your Kubernetes Cluster.
Happy Helming!

遇到的错误:

下载Chart问题

问题提示:

[root@kuber24 ~]# helm install nginx --tiller-namespace helm-system --namespace kube-public
Error: failed to download "nginx" (hint: running `helm repo update` may help)

使用helm repo update 后,并没有解决问题。

如下:

[root@kuber24 ~]# helm install nginx --tiller-namespace helm-system --namespace kube-public
Error: failed to download "nginx" (hint: running `helm repo update` may help)
[root@kuber24 ~]# helm repo update
Hang tight while we grab the latest from your chart repositories...
...Skip local chart repository
...Successfully got an update from the "stable" chart repository
Update Complete. ⎈ Happy Helming!⎈
[root@kuber24 ~]# helm install nginx --tiller-namespace helm-system --namespace kube-public
Error: failed to download "nginx" (hint: running `helm repo update` may help)

可能的原因:

没有nginx这个chart:使用helm search nginx 查询nginx chart信息。

网络连接问题,下载不了。这种情况下,等待一定超时后,helm会提示。

使用
添加常见的repo

添加aliyun, github 和官方incubator charts repository(仓库)。

helm repo add gitlab https://charts.gitlab.io/
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
helm repo add incubator https://kubernetes-charts-incubator.storage.googleapis.com/

日常使用

本小结的$NAME表示helm的repo/chart_name。

查询charts: helm search $NAME

查看release的列表:helm ls [--tiller-namespace $TILLER_NAMESPACE]

查询package 信息: helm inspect $NAME

查询package支持的选项:helm inspect values $NAME

部署chart:helm install $NAME [--tiller-namespace $TILLER_NAMESPACE] [--namespace $CHART_DEKPLOY_NAMESPACE]

删除release:helm delete $RELEASE_NAME [--purge] [--tiller-namespace $TILLER_NAMESPACE]

更新:helm upgrade --set $PARAM_NAME=$PARAM_VALUE $RELEASE_NAME $NAME [--tiller-namespace $TILLER_NAMESPACE]

回滚:helm rollback $RELEASE_NAME $REVERSION [--tiller-namespace $TILLER_NAMESPACE]

删除release时,不使用–purge参数,会仅撤销pod部署,不会删除release的基本信息,不能release同名的chart。

Helm的资源安装和基本使用 Usage:​completion 为指定的shell生成自动补全脚本create 创建一个指定了名称的chartdependency 管理chart依赖env Helm客户端环境信息get 下载release,可接all、hooks、manifest、notes、valuesall-获取所有已安装的release的信息。名称、状态、版本等hooks-获取指定 release 的 pre-install、post-install、pre-delete 和 post-delete 钩子的信息。 阅读详情

相关推荐

【shell编程】报错信息:Command Not Found(包含6种解决方法)

Shell运行脚本时报告“Command Not Found”问题,是指命令没有找到。以下是可能的原因和详细解决方法:(可以按照以下步骤一一进行排除)

摇光是颗星 8058

helm安装

helm就是k8s的包管理工具 ,前提是先安装好k8s使用kubeode快速部署k8s_我是一只代码狗的博客-优快云博客然后我们安装helm 然后我们访问 他是helm的镜像仓库站,比如说我们要部署nginx我们输入nginx,然后点击进去详情 点击install 可以看到具体的命令 添加仓库 nginx-test 自己定义 安装图表 my-nginx你可以随便起名 版本号 可以选择右侧的历史版本 nginx-test/nginx前面的nginx-test,要和上面仓库的nginx-tes

qq_21277357的博客 5996

Kubernetes Helm中模板渲染错误的报错与修复

Kubernetes Helm模板渲染错误诊断与修复指南 Helm模板渲染错误是Kubernetes应用部署中的常见问题,主要涉及资源冲突、API版本不兼容和模板语法错误三类典型错误。本文总结了三类核心错误的表现形式及诊断方法:通过helm get manifest和kubectl命令检查资源冲突,利用.Capabilities.KubeVersion检测API版本兼容性,使用helm lint和helm template --debug排查语法问题。针对不同错误类型,提供了包括动态资源创建(lookup函

shejizuopin的博客 1178

Pod Graceful Drain 项目常见问题解决方案

Pod Graceful Drain 项目常见问题解决方案 1. 项目基础介绍 Pod Graceful Drain 是一个开源项目,旨在解决 Kubernetes 集群中负载均衡器在部署更新时出现 5xx 错误的问题。该项目通过滥用 Admission Webhooks 来拦截即将被删除的 Pod,从而允许相关子系统有时间完成必要的清理和同步,避免因 Pod 过早终止而导致的请求失败。该项目主要...

gitblog_00545的博客 1027

Helm 调试模板

调试模板可能很棘手,因为渲染后的模板发送给了Kubernetes API server,可能会以格式化以外的原因拒绝YAML文件。 以下命令有助于调试: helm lint是验证chart是否遵循最佳实践的首选工具 helm install --dry-run --debug或helm template --debug:我们已经看过这个技巧了, 这是让服务器渲染模板的好方法,然后返回生成的清单文件。 helm get manifest: 这是查看安装在服务器上的模板的好方法。 当你的YAML文...

trouble is a friend 1534

用于多种无人机协作的群体智能算法:综合综述

随着无人机技术的快速高水平发展,将多架无人机作为自主控制的编队应用于复杂情况是一个新兴领域的代表之一。在实现自主控制的挑战中,碰撞避免、任务分配、路径规划和编队重构是关键功能。本文对各种经典的无人机群智能算法进行了系统的总结和分析。

erjia_的博客 1万+

helm安装kubeneters ingress出现命令出错排查

在使用安装kubeneters ingress时候我们要注意几个问题,就是第一个就是yaml的镜像一定要查看,因为有些镜像是访问不了的,比如k8s.grc.io,还有些镜像的版本号已经不存在了。修改好这个我们可以直接把chart 下载本地 使用helm install --name test --namespace kube-system .,执行后出现了service名字不规范,要排查的话需要执...

bee-factory 582

金蝶云苍穹-插件开发(一)加载数据

此系列博客是进行金蝶云苍穹开发时的插件开发的教程,一是在明年要是还要参加软件杯金蝶A6赛题的话,可以看此系列教程的博客来进行复习,同时如果要是我实验室的学弟学妹要参加的话,我这个系列的博客可以给他们提供学习参考,因为插件开发学习的路上很艰难,我学习的时候,能参照的讲解少,要花费大量工夫去猜测去调试才能学会那些语法。在插件开发上,希望我这个系列的博客能帮助到别人。这个系列的博客只专门讲解插件开发,基本的那些金蝶云苍穹的知识点在这里不多作讲解。

二狗mao的博客 3584

Kong Helm Charts 项目常见问题解决方案

Kong Helm Charts 项目常见问题解决方案 项目基础介绍 Kong Helm Charts 项目是官方提供的 Helm Charts 仓库,用于在 Kubernetes 上安装和配置 Kong。Kong 是一个开源的 API 网关,广泛用于微服务架构中,提供路由、认证、监控等功能。该项目的主要目的是通过 Helm Charts 简化 Kong 在 Kubernetes 环境中的部署和管...

gitblog_00156的博客 932

lofar谱 matlab_一种用于分类识别的线谱增强及特征提取方法与流程

本发明属于声信号处理技术领域,具体涉及一种用于分类识别的线谱增强及特征提取方法。背景技术:水下声音目标的被动探测和识别领域中,利用舰船辐射噪声对舰船类型进行识别是十分常见的。舰船辐射噪声通常由机械噪声,螺旋桨噪声和水动力噪声三部分构成,前两种信号是噪声的线谱和连续谱的主要来源。其中线谱由于具有较高的信噪比,并且携带着声源特征信息,而被广泛研究和应用。但是目前的识别方法中,因为连续谱信息缺乏较为明确...

weixin_39517859的博客 5476

目标检测数据集 第069期-基于yolo标注格式的玻璃清洁状态检测数据集(含免费分享)

但这类技术的落地,离不开大量标注规范、场景丰富的数据集作为算法训练的支撑,玻璃清洁状态检测数据集的出现,正是为了满足这一市场与技术需求。在高校与科研机构的计算机视觉研究中,该数据集可作为基础研究素材,用于探索物体状态识别的算法优化方向,比如针对玻璃这类透明物体的检测算法改进,或是小样本场景下的状态识别研究。通过摄像头采集车窗、挡风玻璃的图像,算法自动检测玻璃清洁度,若识别到脏污影响视线,及时提醒运维人员清洁,避免因玻璃脏污引发的安全事故,提升交通出行的安全性。

深度学习算法工程师,专注于前沿算法研究与实战应用。在这里,我将分享深度学习领域的实战经验、优质数据集资源以及最新论文解读与精度分析,旨在与广大技术爱好者共同探索人工智能的奥秘,助力技术成长与创新。 127

Helm-Secrets 项目常见问题解决方案

Helm-Secrets 是一个用于管理 Helm 图表中敏感信息的插件。它帮助开发者在 Git 工作流中安全地管理密钥,并将这些密钥存储在任何地方。该项目的主要编程语言是 Shell 和 Golang。 ## 新手使用注意事项及解决方案 ### 1. 安装插件失败 **问题描述**:新手在安装 Helm-Secrets 插件时,可能会遇到安装失败的情况。 **解决步骤**: 1. **检...

gitblog_00350的博客 751

NVIDIA Isaac平台体验:Isaac Sim与Isaac ROS的快速了解

NVIDIA Isaac平台是一个专为机器人和人工智能(AI)打造的加速平台,旨在为开发者提供一个全面的工具集,以加速机器人相关应用的开发和部署。材质定义语言(MDL)是一种用于描述材质属性和行为的编程语言,能够精确地定义材质的光学特性和物理属性。NVIDIA Isaac Sim 通过支持 MDL,进一步提升了仿真环境中材质的真实感和细节表现。精确的材质定义:MDL 允许开发者精确地定义材质的光学特性和物理属性,如反射率、折射率、粗糙度和透明度等。这使得仿真环境中的物体看起来更加真实和自然。动态材质。

全世界的博客 4万+

Helm-GCS 项目常见问题解决方案

Helm-GCS 项目常见问题解决方案 项目基础介绍 Helm-GCS 是一个 Helm 插件,允许用户在 Google Cloud Storage(GCS)上管理私有 Helm 3 仓库。该项目的主要编程语言是 Go。Helm-GCS 提供了一系列命令,使用户能够初始化仓库、添加仓库、推送和删除 Helm 图表等操作。 新手使用注意事项及解决方案 1. 安装 Helm-GCS 插件失败 问题描述...

gitblog_00724的博客 706

【软件系统架构】系列四:嵌入式软件-NPU(神经网络处理器)系统及模板

NPU(Neural Processing Unit) 是专门用于人工神经网络推理与训练的处理器,具备高并行、低功耗、低延迟等特点。它是边缘 AI、自动驾驶、智能摄像头、语音识别等场景中的关键硬件。

moton2017的博客 2247

EPLAN 电气制图(六):电机正反转副勾主电路绘制

【插入】→【设备】→选择 “SIE.3RV2011-1AA15”(Q1)和 “SIE.1TL0001-1DB3”(M1),放置于图纸左侧。生成端子排 X3:【端子排导航器】→新建编号 “1-20”,部件 “PXC.3211814”,放置于电机上方,功能文本标注 “电机端子”。属性设置:双击结构盒,在 “显示设备标识符” 中输入位置代号(如 “+ 柜外”),并在 “格式” 选项卡中调整线型与颜色。实用技巧:勾选【选项】→【设置】→【图形的编辑】中的 “绘制带有空白区域的结构盒”,可使元件布局更清晰。

电工 2030

HelmRelease 卡在 failed 状态怎么办?Helm Operator 调试与故障排查完整清单

当 HelmRelease 卡在 failed 状态时,先别急着删资源重来。Helm Operator 是 Flux 生态中基于 HelmRelease 自定义资源进行声明式 Helm 管理的 Operator,它会把每次发布的结果写成状态条件(conditions),并记录详细的失败原因。只要按照本文的排查清单逐步检查,绝大多数 failed 问题都能在 5 分钟内定位。 [![Helm Op

gitblog_00941的博客 799

PCL 建筑物点云立面和平面分割提取【2025最新版】

在建筑物点云中,立面点和平面点的法向量存在明显的差异,根据法向量在Z方向的分量设置相应得阈值即可实现立面点与平面点的分割。

点云侠的博客 1959

Helm Schema Gen 项目常见问题解决方案

Helm Schema Gen 项目常见问题解决方案 项目基础介绍 Helm Schema Gen 是一个开源项目,旨在帮助用户自动生成 Helm 3 charts 的 JSON Schema。该项目通过自动化方式,避免了手动编写 values schema JSON 的繁琐工作。项目的主要编程语言是 Go。 新手常见问题及解决方案 问题一:如何安装 Helm Schema Gen 插件? 解决步...

gitblog_00789的博客 629

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

helm部署和使用

Helm是Kubernetes的一个包管理工具,用来简化Kubernetes应用的部署和管理。可以把Helm比作CentOS的yum工具。 Helm有如下几个基本概念: - Chart: 是Helm管理的安装包,里面包含需要部署的安装包资源。可以把Chart比作CentOS yum使用的rpm文件。每个Chart包含下面两部分: - 包的基本描述文件Chart.yaml 放在template...

刀刀叨叨 5841

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Helm 命令进阶:5 个高阶用法与 3 个常见错误排查指南

本文深入探讨了Helm命令的5个高阶用法与3个常见错误排查技巧,包括本地渲染与调试、Release深度检查、Chart质量门禁、复杂子Chart管理和生态扩展。同时提供了详细的错误排查指南和效率提升工具,帮助开发者优化Kubernetes应用部署流程。

weixin_34417183的博客 436

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Helm 项目常见问题解决方案

Helm 是 Kubernetes 的包管理工具,类似于 apt/yum/homebrew 在 Linux/macOS 系统中的作用。Helm 通过 Charts 来管理 Kubernetes 资源,Charts 是预配置的 Kubernetes 资源包。Helm 的主要功能包括: - 查找和使用流行的软件包作为 Helm Charts 在 Kubernetes 中运行。 - 分享自己的应用程序...

gitblog_09384的博客 685

Helm 3.13.3保姆级安装教程:从零开始配置K8s包管理工具(附常见问题解决)

本文提供Helm 3.13.3的保姆级安装教程,涵盖CentOS和Ubuntu系统的详细配置步骤,包括环境准备、核心安装流程、仓库管理及常见问题解决方案。特别针对Kubernetes包管理工具Helm的Chart仓库管理进行了实战讲解,帮助开发者快速掌握Helm的使用技巧。

weixin_27791839的博客 271

Helm故障排查指南:常见问题与解决方案

Helm作为Kubernetes的包管理器,在实际使用过程中可能会遇到各种问题。本文档将系统性地介绍Helm常见的故障类型、排查方法和解决方案,帮助用户快速定位和解决问题。 ## 常见问题分类 ### 1. 连接与网络问题 #### 1.1 Kubernetes API连接失败 **症状:** ```bash Error: Kubernetes cluster unreachable: G...

gitblog_00664的博客 974

Helm-secrets故障排查手册:常见问题与解决方案大全

Helm-secrets作为一款强大的Helm插件,帮助开发者安全地管理Kubernetes部署中的敏感信息。然而在实际使用过程中,您可能会遇到各种问题。本故障排查手册为您提供完整的Helm-secrets问题解决方案大全,帮助您快速定位和解决问题。 ## 🔍 常见安装问题与解决方案 ### 1. Helm 2安装失败问题 **问题描述**:在Helm 2上安装helm-secrets时出

gitblog_00643的博客 722
上一篇: kubernetes的节点not read解决方案
下一篇: kubeadm安装kubernetes V1.11.1 集群--详细教程
那记忆微凉
博客等级 码龄9年 412粉丝 387原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值