精华内容
下载资源
问答
  • 重大福利,JFrog发布面向社区的免费安全的HelmChart中央存储库ChartCenter 随着Helm毕业,公开可用的HelmCharts数量不断增长,Helm社区的发展速度令人振奋,但要管理如此大量的HelmCharts和HelmChart仓库依然是一个...

    重大福利,JFrog发布面向社区的免费安全的HelmChart中央存储库ChartCenter

    随着Helm毕业,公开可用的Helm Charts数量不断增长,Helm社区的发展速度令人振奋,但要管理如此大量的HelmCharts和HelmChart仓库依然是一个挑战。 

    一个好的HelmCharts仓库,就像船长一样,驾驶轮船不仅需要清楚可以去哪些地方,还需要确保相关人员能够安全可靠地到达的所需的目的地在行进的过程中不仅需要看到海面上的问题,还需要了解隐藏在海平面以下的危险。

    这就是为什么我们自豪地宣布启动ChartCenter的原因ChartCenter是面向社区以及开发人员的免费的公共HelmCharts中央存储库。 

    ChartCenter地址:https://chartcenter.io/

    Github地址:https://github.com/jfrog/chartcenter/

    ChartCenter

    用户通过ChartCenter丰富的UI,可以在成千上万个Kubernetes-ready的软件包中搜索,以找到所需的软件包。通过ChartCenter,您可以现并启动分布在许多公共存储库中的应用程序。ChartCenter类似于搜索服务Helm Hub和Artifact Hub。

    ChartCenter不仅仅是Helm charts的目录。而是由Artifactory提供支持的一个包含不可变的版本Helm charts存储仓库。因此,您的Helm CLI可以从一个集中的单一可信源拉取所需的所有公共的Helm chart。

    ChartCenter针对每个存储的Helm chart维护了完善的元数据,该元数据可为您选择正确的版本提供所需的关键信息。这些功能对您的意义如下:

    不可变、版本化 Helm Charts

    ChartCenter是所有chart版本的来源是单一可信的。可以确定,即使Helm chart的所有者在其私有仓库中更改或删除了该版本,您今天使用的Helm chart版本与您上个月或去年使用的版本也是一致的。如果发生了上述情况,ChartCenter还将标记该版本,因此您不必感到惊讶。如果原始存储库由于任何原因变得不可用,ChartCenter也会提供故障保护。

    ChartCenter还维护每个Helm charts版本的apiVersion和appVersion的元数据。

     

    使用数据

    ChartCenter会通知您在哪个位置将Helm chart用作另一个Helm chart(作为subchart)的依赖项。

    确定依赖性

    对于每个Helm chart的版本,ChartCenter都会标识所使用的所有依赖项,包括Docker镜像和 subchart。您可以浏览UI来查看每个相关Docker镜像的所有layer层。

     

    展示漏洞

    通过JFrog Xray进行深度递归扫描,ChartCenter对Helm chart的所有依赖的docker镜像进行漏洞分析。因此,您可以在部署任何K8s应用程序之前评估其安全风险。

    减轻维护人员的安全顾虑

    ChartCenter在UI上还为chart维护者提供chart安全状态概述的功能。维护者通过一个yaml文件,标记CVE并提供注释。一旦维护者在更新的chart中提供了Yaml,这些注释将可用,并且将如下所示:

    使用ChartCenter

    现在,我们已经发布了ChartCenter的一些功能,下面介绍如何将ChartCenter与Helm客户端一起使用的步骤。

    1. 步骤1:将ChartCenter添加为您的Helm repo

    将您的Helm客户端设置为使用ChartCenter repo作为您使用chart的单一中心:

    $ helm repo add center https :// repo.chartcenter.io

    $helm repo update

    $helm search repo center/                   

    最后一个命令将显示来自200多个Helm存储库的chart列表。我们对index.yaml进行了一些优化,以使index.yaml变小,从而加快了Helm客户端的使用速度。

    1. 步骤2:将ChartCenter用作存储库

    让我们检查一些Helm存储库:

    $

    $ helm search repo center/jfrog/artifactory-jcr

    NAME                                CHART Version  App Version  DESCRIPTION

    center/jfrog/artifactory-jcr 2.3.1            7.5.7          JFrog Container Reg

     

    $ helm search repo center/rancher

    NAME                                 CHART Version  App Version  DESCRIPTION

    center/rancher-stable/rancher 2.4.5.           v2.4.5        Install Rancher Server

    r

    在这里,您可以看到使用一个中央存储库比添加许多Helm存储库要容易得多。

    下一步计划

    ChartCenter的发布只是我们更好地使用Helm Chart的开始。我们还希望直接与社区合作以完善这些功能,希望获得社区及用户对UI、安全信息、Helm插件和Helm存储库的改进意见以及最佳实践等方面的信息。

    要了解更多信息,请立即查看ChartCenter

     

    展开全文
  • vSphere容器存储接口(CSI) 此存储库已弃用-在此处找到新的存储库: :
  • Helm简介 Helm是Kubernetes 应用的包管理工具,主要用来管理 Charts,类似Linux系统的yum。 Helm Chart 是用来封装 Kubernetes 原生应用程序的一系列 YAML 文件。可以在你部署应用的时候自定义应用程序的一些 ...

    Helm简介

    Helm是Kubernetes 应用的包管理工具,主要用来管理 Charts,类似Linux系统的yum。
    Helm Chart 是用来封装 Kubernetes 原生应用程序的一系列 YAML 文件。可以在你部署应用的时候自定义应用程序的一些 Metadata,以便于应用程序的分发。
    对于应用发布者而言,可以通过 Helm 打包应用、管理应用依赖关系、管理应用版本并发布应用到软件仓库。
    对于使用者而言,使用 Helm 后不用需要编写复杂的应用部署文件,可以以简单的方式在 Kubernetes 上查找、安装、升级、回滚、卸载应用程序。
    Helm当前最新版本 v3.1.0 官网:https://helm.sh/docs/intro/

    Helm部署

    tar zxf helm-v3.4.1-linux-amd64.tar.gz
    cd linux-amd64/
    cp helm /usr/local/bin/
    

    添加环境变量echo "source <(helm completion bash)" >> ~/.bashrc source .bashrc

    测试搜索nginx

    [root@server2 ~]# helm search hub nginx
    
    

    在这里插入图片描述

    helm repo add bitnami https://charts.bitnami.com/bitnami
    helm repo list
    ##列出默认default ns下的第三方chart仓库
    

    在这里插入图片描述

    使用helm部署redis集群

    [root@server2 ~]# helm search repo redis
    
    

    在这里插入图片描述
    在harber仓库创建bitnami目录

    拉取应用到本地,编辑value文件,读取本地harbor仓库

    helm pull bitnami/redis-cluster
    tar zxf redis-cluster-6.3.2.tgz
    cd redis-cluster/
    vim values.yaml
    

    在这里插入图片描述
    测试,使用helm部署redis集群
    支持多种安装方式,本次从当前目录安装:

    helm install redis-cluster .
    kubectl get pod
    

    在这里插入图片描述

    ##列出已安装的
    helm list
    helm list --all-namespaces
    ##卸载redis集群
    helm uninstall redis-cluster
    kubectl get pod
    

    私有Helm Chart构建

    helm create mychart
    tree mychart/
    cd mychart/
    

    在这里插入图片描述

    ##编写mychart的应用描述信息
    vim Chart.yaml
    
    ##编写应用部署信息:
      8   repository: myapp
     11   tag: "v1"
    
    

    在这里插入图片描述

    ##校验依赖和模板配置
    helm lint mychart/
    

    在这里插入图片描述
    将应用打包

    [root@server2 helm]# helm package mychart/
    
    

    在这里插入图片描述

    #######################################
    测试上传 helm
    使用harber仓库
    创建charts目录

    在这里插入图片描述

    需要harber仓库有 helm charts 选项
    如果没有先寻找

    [root@server1 ~]# find / -name docker-compose.yml
    /usr/local/harbor/docker-compose.yml
    [root@server1 ~]# cd /usr/local/harbor/
    [root@server1 harbor]# ls
    common  common.sh  docker-compose.yml  harbor.v1.10.1.tar.gz  harbor.yml  install.sh  LICENSE  prepare
    [root@server1 harbor]# docker-compose down
    ##关闭harber重新安装
    
    

    在这里插入图片描述

    [root@server1 harbor]# ./install.sh --help
    [root@server1 harbor]# ./install.sh --with-chartmuseum
    
    

    在这里插入图片描述
    在这里插入图片描述
    重新打开harber就会有helm charts 选项

    Helm当前最新版本 v3.1.0 官网:https://helm.sh/docs/intro/
    Helm安装:下载软件包:helm-v3.1.1-linux-amd64.tar.gz

    添加密钥认证

    [root@server2 helm]# cd /etc/pki/ca-trust/source/anchors/
    [root@server2 anchors]# ls
    [root@server2 anchors]# cp /etc/docker/certs.d/reg.westos.org/ca.crt .
    [root@server2 anchors]# ls
    ca.crt
    [root@server2 anchors]# pwd
    /etc/pki/ca-trust/source/anchors
    [root@server2 anchors]# update-ca-trust 
    ###更新密钥认证
    

    添加harber仓库

    helm  repo  add westos https://reg.westos.org/chartrepo/charts
    helm repo list
    

    在这里插入图片描述

    安装helm-push插件:
    helm env //获取插件目录
    在这里插入图片描述

    [root@server2 ~]# mkdir -p /root/.local/share/helm/plugins/push/
    [root@server2 ~]# tar zxf helm-push_0.9.0_linux_amd64.tar.gz -C /root/.local/share/helm/plugins/push/
    

    上传mychart到仓库中

    [root@server2 helm]# helm push mychart-0.1.0.tgz westos --insecure -u admin -p westos
    Pushing mychart-0.1.0.tgz to westos...
    Done.
    
    

    查看上传的mychart应用:
    在这里插入图片描述

    [root@server2 helm]# helm repo update
    ##更新
    [root@server2 helm]# helm  search repo mychart
    
    

    在这里插入图片描述
    Update Complete 更新完成

    在这里插入图片描述

    [root@server2 helm]# helm show values westos/mychart
    
    

    在这里插入图片描述

    [root@server2 helm]# helm install mychart westos/mychart 
    [root@server2 helm]# kubectl get all
    [root@server2 helm]# curl 10.107.4.33
    
    
    

    在这里插入图片描述

    kubectl get all
    curl 10.107.4.33
    

    在这里插入图片描述
    在这里插入图片描述
    更新迭代mychart的版本
    模拟

    [root@server2 helm]# cd mychart/
    [root@server2 mychart]# ls
    charts  Chart.yaml  templates  values.yaml
    [root@server2 mychart]# vim Chart.yaml 
    
     18 version: 0.2.0
     23 appVersion: v2
    

    在这里插入图片描述

    [root@server2 mychart]# vim values.yaml
     11   tag: "v2"
    

    在这里插入图片描述
    打包上传到harber仓库

    [root@server2 helm]# helm lint mychart
    ##校验文件
    [root@server2 helm]# helm package mychart
    ##打包
    

    在这里插入图片描述
    上传

    [root@server2 helm]# helm push mychart-0.2.0.tgz westos --insecure -u admin -p westos
    [root@server2 helm]# helm repo update 
    ##从chart仓库中更新本地可用chart的信息
    

    在这里插入图片描述
    在这里插入图片描述

    [root@server2 helm]# helm search repo mychart
    [root@server2 helm]# helm search repo mychart -l
    
    

    在这里插入图片描述

    更新mychart,访问测试,版本更新成功

    [root@server2 helm]# helm upgrade mychart westos/mychart 
    

    在这里插入图片描述

    [root@server2 helm]# kubectl get svc
    [root@server2 helm]# curl 10.107.4.33
    

    在这里插入图片描述

    Helm部署nfs

    预先配置好外部的NFS服务器
    共享目录路径 /mnt/nfs

    拉取nfs-provisioner-v4.0.2镜像,上传至harbor
    在这里插入图片描述

    [root@server1 ~]# docker load -i nfs-provisioner-v4.0.2.tar 
    1a5ede0c966b: Loading layer  3.052MB/3.052MB
    ad321585b8f5: Loading layer  42.02MB/42.02MB
    Loaded image: reg.westos.org/sig-storage/nfs-subdir-external-provisioner:v4.0.2
    [root@server1 ~]# docker push reg.westos.org/sig-storage/nfs-subdir-external-provisioner:v4.0.2 
    The push refers to repository [reg.westos.org/sig-storage/nfs-subdir-external-provisioner]
    ad321585b8f5: Pushed 
    1a5ede0c966b: Pushed 
    v4.0.2: digest: sha256:f741e403b3ca161e784163de3ebde9190905fdbf7dfaa463620ab8f16c0f6423 size: 739
    

    删除之前在集群手动部署的nfs

    [root@server2 volumes]# kubectl delete pvc --all
    persistentvolumeclaim "redis-data-redis-cluster-0" deleted
    persistentvolumeclaim "redis-data-redis-cluster-1" deleted
    persistentvolumeclaim "redis-data-redis-cluster-2" deleted
    persistentvolumeclaim "redis-data-redis-cluster-3" deleted
    persistentvolumeclaim "redis-data-redis-cluster-4" deleted
    persistentvolumeclaim "redis-data-redis-cluster-5" deleted
    [root@server2 volumes]# kubectl delete pv --all
    persistentvolume "pv1" deleted
    persistentvolume "pv2" deleted
    

    查找nfs-subdir-external-provisioner仓库

    [root@server2 hpa]# helm search hub nfs-subdir-external-provisioner
    

    在这里插入图片描述
    添加nfs-subdir-external-provisioner 到repo
    在这里插入图片描述

    [root@server2 hpa]#  helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
    [root@server2 hpa]# helm repo list
    
    

    拉取nfs-subdir-external-provisioner-4.0.12.tgz

    helm  pull nfs-subdir-external-provisioner/nfs-subdir-external-provisioner
    
    

    解压

    [root@server2 hpa]# helm  pull nfs-subdir-external-provisioner/nfs-subdir-external-provisioner
    [root@server2 nfs-sub]# tar zxf nfs-subdir-external-provisioner-4.0.13.tgz 
    [root@server2 nfs-sub]# ls
    nfs-subdir-external-provisioner  nfs-subdir-external-provisioner-4.0.13.tgz
    [root@server2 nfs-sub]# cd nfs-subdir-external-provisioner/
    [root@server2 nfs-subdir-external-provisioner]# ls
    nfs-subdir-external-provisioner  nfs-subdir-external-provisioner-4.0.13.tgz
    [root@server2 nfs-sub]# cd nfs-subdir-external-provisioner/
    [root@server2 nfs-subdir-external-provisioner]# ls
    Chart.yaml  ci  README.md  templates  values.yaml
    
    

    修改values.yaml内容

      5   repository: sig-storage/nfs-subdir-external-provisioner
     11   server: 172.25.8.1
     12   path: /mnt/nfs
     25   defaultClass: true
     38   archiveOnDelete: false
    
    

    在这里插入图片描述
    部署nfs-client-provisioner,指定NAMESPACE: nfs-client-provisioner

    [root@server2 nfs-subdir-external-provisioner]#  kubectl create namespace nfs-client-provisioner
    [root@server2 nfs-subdir-external-provisioner]# helm install  nfs-client-provisioner . -n nfs-client-provisioner
    [root@server2 nfs-subdir-external-provisioner]# helm list -n nfs-client-provisioner 
    
    

    在这里插入图片描述
    查看部署信息,部署成功在这里插入图片描述
    测试脚本,创建pvc,用于查看nfs功能是否能正常使用
    在这里插入图片描述

    [root@server2 nfs-client]# kubectl apply -f calin.yaml 
    persistentvolumeclaim/nfs-pv1 created
    [root@server2 nfs-subdir-external-provisioner]# kubectl get pv
    [root@server2 nfs-subdir-external-provisioner]# kubectl get pvc
    

    [root@server2 nfs-client]# showmount -e 172.25.8.1
    clnt_create: RPC: Program not registered
    nfs服务没开
    在这里插入图片描述
    撤销部署,pvc自动回收

    [root@server2 nfs-client]# kubectl delete -f calin.yaml 
    persistentvolumeclaim "nfs-pv1" deleted
    [root@server2 nfs-client]# kubectl get pvc
    No resources found in default namespace.
    

    Helm部署metrics-server监控

    删除之前的metrics-server监控服务

    [root@server2 ~]# kubectl delete -f components.yaml 
    

    在这里插入图片描述
    创建ns,将helm服务放到该ns中

    [root@server2 ~]# kubectl create namespace metrics-server
    namespace/metrics-server created
    

    拉取chart metrics-server
    解压并配置value

    [root@server2 ~]# helm pull bitnami/metrics-server
    [root@server2 ~]# tar zxf metrics-server-5.9.2.tgz 
    [root@server2 ~]# cd metrics-server/
    

    在这里插入图片描述

    vim values.yaml
     10   imageRegistry: "reg.westos.org"
    

    在这里插入图片描述
    使用heml安装 并按照提示解决报错

    [root@server2 metrics-server]# helm install metrics-server . -n metrics-server
    
    

    在这里插入图片描述

     helm upgrade --namespace metrics-server metrics-server bitnami/metrics-server --set apiService.create=true kubectl get --raw "/apis/metrics.k8s.io/v1beta1/nodes" 
     [root@server2 metrics-server]# kubectl get --raw "/apis/metrics.k8s.io/v1beta1/nodes"
    
    

    在这里插入图片描述
    在这里插入图片描述
    json 格式数据

    [root@server2 metrics-server]# kubectl -n metrics-server get all
    ##查看服务是否健康
    [root@server2 metrics-server]# kubectl top node
    

    在这里插入图片描述

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 146
精华内容 58
关键字:

helmchart