Harbor系列之4:使用Harbor chart部署到Kubernetes环境

使用harbor作为chart仓库实现内网部署 chart仓库是打包的chart存储和分享的位置。chart仓库由chart包和包含了仓库中所有chart索引的特殊文件index.yaml。通常描述chart的index.yaml也托管在同一个服务器上作为来源文件。 阅读详情

Kubernetes基于helm安装 harbor

之前harbor的安装都是借助docker完成一键安装部署,安装完成之后harbor组件均运行到一台机器上面,本文实践harbor在k8s环境中的部署。

1. 准备工作

根据harbor官方要求:

  • Kubernetes cluster 1.20+
  • Helm v3.2.0+

本使用ingress-nginx暴露harbor服务,结合ingress-nginx版本要求,建议K8S版本大于1.21.0-0进行实践。如果不适用ingress-nginx,满足上面的版本要求即可。

最新的要求请查看官方仓库说明:https://github.com/goharbor/harbor-helm

1.1 K8S环境信息

本文使用的k8s环境如下:

# k8s版本及环境信息
root@master1:~# kubectl get node -o wide
NAME      STATUS   ROLES           AGE   VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE           KERNEL-VERSION     CONTAINER-RUNTIME
master1   Ready    control-plane   25h   v1.28.2   192.168.0.61   <none>        Ubuntu 24.04 LTS   6.8.0-36-generic   containerd://1.7.12
node1     Ready    <none>          25h   v1.28.2   192.168.0.62   <none>        Ubuntu 24.04 LTS   6.8.0-36-generic   containerd://1.7.12
node2     Ready    <none>          25h   v1.28.2   192.168.0.63   <none>        Ubuntu 24.04 LTS   6.8.0-36-generic   containerd://1.7.12

# 操作系统信息
root@master1:~# cat /etc/issue
Ubuntu 24.04 LTS \n \l

root@master1:~# uname -a
Linux master1 6.8.0-36-generic #36-Ubuntu SMP PREEMPT_DYNAMIC Mon Jun 10 10:49:14 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

# helm版本
root@master1:~# helm version
version.BuildInfo{Version:"v3.15.2", GitCommit:"1a500d5625419a524fdae4b33de351cc4f58ec35", GitTreeState:"clean", GoVersion:"go1.22.4"}

1.2 部署openebs用于提供pv

参考我的另外一篇文章部署openebs,《Kubernetes云原生存储解决方案openebs部署实践-3.10.0版本(helm部署)》

本文部署的openebs信息如下:

root@master1:~# helm ls -n openebs
NAME    NAMESPACE       REVISION        UPDATED                                 STATUS          CHART           APP VERSION
openebs openebs         1               2024-07-02 14:38:40.928808834 +0800 CST deployed        openebs-4.0.1   4.0.1
root@master1:~# kubectl get pod -n openebs
NAME                                              READY   STATUS    RESTARTS   AGE
openebs-localpv-provisioner-6b8bff68bd-vmwp7      1/1     Running   0          121m
openebs-lvm-localpv-controller-778b75449c-mmvw6   5/5     Running   0          121m
openebs-lvm-localpv-node-d2trc                    2/2     Running   0          121m
openebs-lvm-localpv-node-md5wh                    2/2     Running   0          121m
openebs-zfs-localpv-controller-6665568c7c-snw4q   5/5     Running   0          121m
openebs-zfs-localpv-node-mc8tv                    2/2     Running   0          121m
openebs-zfs-localpv-node-w6nns                    2/2     Running   0          121m
root@master1:~# kubectl get sc -n openebs
NAME               PROVISIONER        RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
openebs-hostpath   openebs.io/local   Delete          WaitForFirstConsumer   false                  121m

1.3 部署ingress-nginx用于暴露服务

参考我的另外一篇文章部署ingress-nginx,《ingress-nginx部署(helm方式)》

建议k8s版本不要太老,以下是在1.18.0部署最新的ingress-nginx,提示版本不兼容。

[root@k8s-master ~]# helm upgrade --install ingress-nginx ingress-nginx/ingress-nginx \
>   --namespace ingress-nginx --create-namespace \
>   --set controller.service.type=NodePort
Release "ingress-nginx" does not exist. Installing it now.
Error: chart requires kubeVersion: >=1.21.0-0 which is incompatible with Kubernetes v1.18.0

本次环境部署的ingress nginx如下:

root@master1:~# helm ls -n ingress-nginx
NAME            NAMESPACE       REVISION        UPDATED                                 STATUS          CHART                   APP VERSION
ingress-nginx   ingress-nginx   1               2024-07-01 18:20:48.811046861 +0800 CST deployed        ingress-nginx-4.10.1    1.10.1
root@master1:~# kubectl get pod -n ingress-nginx
NAME                             READY   STATUS    RESTARTS       AGE
ingress-nginx-controller-dddq8   1/1     Running   1 (126m ago)   22h
ingress-nginx-controller-p7gd9   1/1     Running   1 (126m ago)   22h

2. 部署harbor

包括部署的总体步骤,本文部署过程记录。

2.1 添加harbor helm仓库

helm repo add harbor https://helm.goharbor.io

2.2 配置chart

可以通过 --set 标志在安装过程中设置以下项目,或者通过直接编辑 values.yaml 文件进行配置(需要先下载 chart)。

2.2.1 配置如果暴露Harbor服务

官方提供四种方式暴露Harbor service:

  • Ingress: 借助Ingress暴露服务,必须在 Kubernetes 集群中安装 Ingress 控制器。注意:如果 TLS 被禁用,在拉取/推送镜像时必须在命令中包含端口。有关详细信息,请参阅问题 #5291。
  • ClusterIP: 使用ClusterIP暴露服务,只能在集群内部进行访问。
  • NodePort: 在每个节点的 IP 上以静态端口(NodePort)暴露服务。通过请求 NodeIP:NodePort,你可以从集群外部访问 NodePort 服务。
  • LoadBalancer: 使用云供应商提供的LB进行访问。
2.2.2 配置external URL

Harbor 核心服务的外部 URL 用于:

  • 填充门户上显示的 Docker/Helm 命令
  • 填充返回给 Docker 客户端的令牌服务 URL

格式:protocol://domain[:port]。通常:

  • 如果服务通过 Ingress 暴露,域名应为 expose.ingress.hosts.core 的值
  • 如果服务通过 ClusterIP 暴露,域名应为 expose.clusterIP.name 的值
  • 如果服务通过 NodePort 暴露,域名应为一个 Kubernetes 节点的 IP 地址
  • 如果服务通过 LoadBalancer 暴露,将域名设置为你自己的域名,并添加 CNAME 记录将域名映射到从云提供商处获得的域名

如果 Harbor 部署在代理后面,将其设置为代理的 URL。

2.2.3 配置持久化存储

禁用:数据在 Pod 终止时不会被保留。

持久卷声明(默认):在 Kubernetes 集群中需要一个默认的 StorageClass 以动态配置卷。如果你有现成的持久卷可以使用,可以在 storageClass 中指定另一个 StorageClass,或设置 existingClaim。

外部存储(仅用于镜像和charts):对于镜像和charts,支持以下外部存储:Azure、GCS、S3、Swift 和 OSS。

查看配置部分查看其他配置项。

2.3 安装chart

使用 Helm 安装 Harbor chart 并指定发布名称为 my-release,使用以下命令:

helm install my-release harbor/harbor

2.4 卸载chart

卸载或删除发布名称为 my-release的chart:

helm uninstall my-release

2.5 ingress方式暴露服务

本文部署使用ingress暴露服务。ingress-nginx使用的是NodePort方式暴露自身,需要在externalURL中配置其 NodePort 端口号:

# ingress-nginx NodePort https端口为30294
root@master1:~# kubectl get svc -n ingress-nginx
NAME                                 TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)                      AGE
ingress-nginx-controller             NodePort    10.102.230.242   <none>        80:30974/TCP,443:30194/TCP   21h
ingress-nginx-controller-admission   ClusterIP   10.110.51.58     <none>        443/TCP                      21h

# 查看部署openebs后storageclass为openebs-hostpath 
root@master1:~# kubectl get sc
NAME               PROVISIONER        RECLAIMPOLICY   VOLUMEBINDINGMODE      ALLOWVOLUMEEXPANSION   AGE
openebs-hostpath   openebs.io/local   Delete          WaitForFirstConsumer   false                  99m


# 执行helm安装,指定为ingress暴露,指定域名,externalURL,密码及StorageClaas
helm upgrade --install harbor harbor/harbor --namespace harbor --create-namespace \
  --set expose.type=ingress \
  --set expose.ingress.className=nginx \
  --set expose.ingress.hosts.core=harbor.test.com \
  --set expose.ingress.hosts.notary=notary.test.com \
  --set externalURL=https://harbor.test.com:30194 \
  --set harborAdminPassword="Harbor12345" \
  --set persistence.persistentVolumeClaim.registry.storageClass="openebs-hostpath" \
  --set persistence.persistentVolumeClaim.jobservice.jobLog.storageClass="openebs-hostpath" \
  --set persistence.persistentVolumeClaim.database.storageClass="openebs-hostpath" \
  --set persistence.persistentVolumeClaim.redis.storageClass="openebs-hostpath" \
  --set persistence.persistentVolumeClaim.trivy.storageClass="openebs-hostpath"

查看部署后的资源:

# 创建的pod
root@master1:~# kubectl get pod -n harbor -o wide
NAME                                 READY   STATUS    RESTARTS      AGE    IP              NODE    NOMINATED NODE   READINESS GATES
harbor-core-fb5ff9588-b8t6t          1/1     Running   2 (13m ago)   15m    10.244.154.33   node1   <none>           <none>
harbor-database-0                    1/1     Running   0             15m    10.244.154.43   node1   <none>           <none>
harbor-jobservice-85bf44bd57-5f2wg   1/1     Running   6 (12m ago)   15m    10.244.154.41   node1   <none>           <none>
harbor-portal-7c5d84cbb8-t6v22       1/1     Running   0             15m    10.244.154.34   node1   <none>           <none>
harbor-redis-0                       1/1     Running   0             15m    10.244.154.39   node1   <none>           <none>
harbor-registry-7f54fbf5f4-xdx       2/2     Running   0             15m    10.244.154.42   node1   <none>           <none>
harbor-trivy-0                       1/1     Running   0             6m1s   10.244.154.45   node1   <none>           <none>

# 创建的pvc
root@master1:~# kubectl get pvc -n harbor
NAME                              STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS       AGE
data-harbor-redis-0               Bound    pvc-83f38659-8ddb-43ec-9023-460d323c7d48   1Gi        RWO            openebs-hostpath   6m52s
data-harbor-trivy-0               Bound    pvc-50b8cd59-23c3-4d15-a0e3-31b7a62ed5d5   5Gi        RWO            openebs-hostpath   6m51s
database-data-harbor-database-0   Bound    pvc-8e8d04f2-21f7-4228-b0e7-331f352606e6   1Gi        RWO            openebs-hostpath   6m52s
harbor-jobservice                 Bound    pvc-beca09bd-d3b7-4d82-8e1e-785de4728f4e   1Gi        RWO            openebs-hostpath   6m52s
harbor-registry                   Bound    pvc-cd7048f3-2452-44e2-8c84-337b22ccb4ed   5Gi        RWO            openebs-hostpath   6m52s

# 查看ingress
root@master1:~# kubectl get ingress -n harbor
NAME             CLASS   HOSTS             ADDRESS          PORTS     AGE
harbor-ingress   nginx   harbor.test.com   10.102.230.242   80, 443   7m9s

客户端访问测试,在客户端配置域名解析,harbor.test.com解析到ingress-nginx节点IP,访问https://harbor.test.com:30194即可打开Harbor登录页面。

用户名admin,密码Harbor12345

备注:

如果ingress-nginx-controller本身通过LoadBalancer暴露,部署harbor时externalURL域名不用加端口,部署后直接访问域名https://harbor.test.com即可。

2.6 nodeport方式暴露服务

上述使用ingress方式部署依赖nginx-ingress控制器,如果为了简化部署,可以使用NodePort方式:

export node_ip=192.168.0.61
helm upgrade --install harbor harbor/harbor --namespace harbor --create-namespace \
  --set expose.type=nodePort \
  --set expose.tls.auto.commonName=$node_ip \
  --set externalURL='https://$node_ip:31234'
  --set harborAdminPassword="Harbor12345" \
  --set persistence.persistentVolumeClaim.registry.storageClass="openebs-hostpath" \
  --set persistence.persistentVolumeClaim.jobservice.jobLog.storageClass="openebs-hostpath" \
  --set persistence.persistentVolumeClaim.database.storageClass="openebs-hostpath" \
  --set persistence.persistentVolumeClaim.redis.storageClass="openebs-hostpath" \
  --set persistence.persistentVolumeClaim.trivy.storageClass="openebs-hostpath"

通过https://$node_ip:31234直接访问harbor。

3. 客户端上传镜像验证

  1. 导出ca证书
kubectl -n harbor get secrets harbor-ingress -o jsonpath="{.data.ca\.crt}" | base64 -d >ca.crt
  1. 复制ca.crt到docker客户端所在机器

docker运行时和客户端:

root@ubuntu:~# mkdir -p /etc/docker/certs.d/harbor.test.com:30194/

root@ubuntu:~# ls /etc/docker/certs.d/harbor.test.com:30194/
ca.crt

如果使用containerd,配置类似:

root@ubuntu:~# mkdir -p /etc/containerd/certs.d/harbor.test.com:30194/

root@ubuntu:~# ls /etc/containerd/certs.d/harbor.test.com:30194/
ca.crt
  1. 配置解析

echo "192.168.0.62 harbor.test.com" >>/etc/hosts

  1. 测试登录
root@ubuntu:~# docker login -u admin -p Harbor12345 https://harbor.test.com:30194
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /home/test/.docker/config.json.
Configure a credential helper to remove this warning. See
...
Login Succeeded
  1. 推送镜像
root@ubuntu:~# docker push harbor.test.com:30194/library/kubemark:1.19.0
The push refers to repository [harbor.test.com:30194/library/kubemark]
c746c8a16e15: Pushed
f47163e8de57: Pushed
0d1435bd79e4: Pushed
1.19.0: digest: sha256:95effc616f84c0c3d3645ee489f57ec635002bcf5eec1f0892936f485110d529 size: 949

4. 问题记录

  1. 某次环境重启后,harbor部分组件使用的pvc状态为lost,查询pv丢失。
root@master1:~# kubectl get pvc -A
NAMESPACE NAME                      STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS       AGE
harbor    data-harbor-redis-0       Lost     pvc-83f38659-8ddb-43ec-9023-460d323c7d48   0                         openebs-hostpath   5d22h
harbor    data-harbor-trivy-0       Lost     pvc-50b8cd59-23c3-4d15-a0e3-31b7a62ed5d5   0                         openebs-hostpath   5d22h
harbor    database-data-harbor-database-0   Lost    pvc-8e8d04f2-21f7-4228-b0e7-331f352606e6   0                  openebs-hostpath   5d22h

不清楚是否为openebs的bug,通过重建pv解决,以为database-data-harbor-database-0组件使用的pv为例:

# database-data-harbor-database-0-pv.yaml
apiVersion: v1
kind: PersistentVolume
metadata:
  annotations:
    pv.kubernetes.io/provisioned-by: openebs.io/local
  creationTimestamp: "2024-07-02T08:17:54Z"
  finalizers:
  - kubernetes.io/pv-protection
  labels:
    openebs.io/cas-type: local-hostpath
  name: pvc-8e8d04f2-21f7-4228-b0e7-331f352606e6
  resourceVersion: "83903"
spec:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 1Gi
  claimRef:
    apiVersion: v1
    kind: PersistentVolumeClaim
    name: database-data-harbor-database-0
    namespace: harbor
    resourceVersion: "83720"
    uid: 8e8d04f2-21f7-4228-b0e7-331f352606e6
  local:
    fsType: ""
    path: /var/openebs/local/pvc-8e8d04f2-21f7-4228-b0e7-331f352606e6
  nodeAffinity:
    required:
      nodeSelectorTerms:
      - matchExpressions:
        - key: kubernetes.io/hostname
          operator: In
          values:
          - node1
  persistentVolumeReclaimPolicy: Delete
  storageClassName: openebs-hostpath
  volumeMode: Filesystem

创建: kubectl create -f database-data-harbor-database-0-pv.yaml

5. 参考资料

  1. https://github.com/goharbor/harbor-helm

  2. https://goharbor.io/docs/2.5.0/install-config/harbor-ha-helm/

  3. https://blog.youkuaiyun.com/networken/article/details/126295863

【云原生K8S】Kubernetes对接harbor私人仓库 K8S对接建立私人harbor仓库,避免远程镜像源拉取超时 阅读详情

相关推荐

K8s集群使用容器镜像仓库Harbor

如果每次编写yaml文件都需要添加imagePullSecrets这2行配置,有点麻烦, 有没有在不需要添加这2行配置就可以实现下载harbor仓库里面的镜像呢?答案是有的,可以把secret配置到serviceAccount中即可。补充: serviceAccount可以实现不同namespace下载镜像使用访问harbor账号的不同。docker-compose down停止harbor,修改后再启动。使用阿里云开源软件镜像站。

weixin_54720351的博客 3453

helm使用harbor的chart仓库

前言: 用一个私有化的chart仓库来说明chart仓库的使用 其中包括信任证书和不信任证书的仓库 最后附上常用的共有chart仓库。 1. 环境说明 1.1 harbor服务器 harbor私有仓库已安装 harbor启用chart仓库,并创建了一个叫chart-public的仓库 1.2 客户机 客户机helm3.x 已安装 添加 helm-push 插件 # helm plugin install https://github.com/chartmuseum/helm-push 下载太.

架构+开发+运维 2559

K8s--Helm(配置、使用、部署及Helm Chart的构建)

文章目录一、Helm介绍二、Helm安装与初始配置1.安装2.添加第三方Chart库三、Helm 部署nginx应用1.harbor仓库相关配置2.拉取nginx Chart包并做相关配置3.安装webserver(为了测试nginx部署效果)4.升级与回滚四、构建Helm Chart1.创建一个Helm Chart2.上传打包好的chart包到harbor仓库中五、部署mychart应用到k8s集群1.部署2.创建新版本Chart包并上传3.更新、回滚与卸载 一、Helm介绍 Helm是Kubernet

小螺号的博客 9128

Harbor安装与配置及Https(包教包会)

Harbor 文章目录Harbor简介环境准备DockerLinux系统安装DockerDocker-compose安装在线安装离线安装更改端口启动查看状态使用推送镜像删除配置harbor的https访问证书生成CA证书生成服务器证书生成harbor仓库主机的证书先创建一个v3.ext文件生成harbor仓库主机的证书配置和安装证书配置harbor配置docker测试通过Helm部署具有高可用性的Harbor 简介 ​ Docker容器应用的开发和运行离不开可靠的镜像管理,虽然Docker官方也提供了公共

Null的博客 7027

使用 Helm 部署 Harbor 并配置为 Docker 和 Helm Chart 仓库

在现代云原生应用开发中,容器镜像和 Helm Chart 的高效管理变得至关重要。Harbor 是一个开源的企业级 Docker Registry 管理项目,提供了权限管理、镜像漏洞扫描、镜像复制等功能。结合 Helm 这个 Kubernetes 的包管理工具,我们可以轻松地在 Kubernetes 集群中部署和管理 Harbor。本文将详细介绍如何安装 Helm,使用 Helm 部署 Harbor,并配置 Docker 和 Helm 客户端使用 Harbor 作为镜像和 Chart 仓库。

qq_52010229的博客 1715

kubernetes(k8s):构建Helm Chart并部署mychart应用到k8s集群

文章目录1. 构建一个 Helm Chart2. 构建本地chart仓库3. 安装push插件4 .部署mychart应用到k8s集群5. 更新版本(升级)6. 版本回滚7. 卸载应用 1. 构建一个 Helm Chart [kubeadm@server1 helm]$ helm create mychart Creating mychart [kubeadm@server1 helm]$ ls mychart redis-ha [kubeadm@server1 helm]$ cd mychart/ [k

weixin_43936969的博客 2901

k8s--如何将chart包托管至harbor

本次通过给harbor添加插件来实现这个功能,后面还有Windows,liunx版本如何进行上传下载的方法本次使用的为harbor2.5.3版本,是低版本harbor高版本和低版本添加插件不一致注意区分。

lwxvgdv的博客 2217

Helm 实战指南:从零掌握 Kubernetes 应用打包与部署

在云原生和容器化部署领域,Kubernetes 已成为容器编排的事实标准。然而,直接使用原生 YAML 文件管理复杂应用的部署,会面临配置繁琐、环境差异和版本管理混乱等挑战。为此,Helm 应运而生,它作为 Kubernetes 的包管理工具,通过引入 Chart(应用包)、Release(发布实例)和 Repository(仓库)三大核心概念,实现了应用定义的模板化、参数化和版本化。其技术价值在于将应用及其依赖标准化为可复用的软件包,并提供了安装、升级、回滚的全生命周期管理能力,极大地提升了部署效率和运维

weixin_33672109的博客 807

Kubernetes部署应用利器Helm详解

Kubernetes部署应用利器Helm详解【helm安装使用,chart模版、函数使用、harbor仓库管理chart】

qq_44930876的博客 5253

Helm Chart:Kubernetes应用的可版本化软件包

在云原生环境中,Kubernetes 原生YAML配置面临复用难、版本乱、回滚差、分发弱等工程化瓶颈。Helm 通过 Chart(可参数化模板包)与 Release(带快照的状态管理)两大核心机制,将应用交付提升至类似 Maven 或 npm 的软件制品级别——实现版本控制、依赖管理、环境隔离与原子操作。它本质是面向生产环境的声明式交付范式,支撑 CI/CD 流水线、GitOps 实践及企业级私有仓库(如 Harbor)集成。本文深入解析 Helm v3 架构演进、Chart 设计原理与 Ubuntu 22

jackleechina2011212的博客 495

基于R语言的DICE模型实践技术应用;预测不同减排路径下的经济增长、碳排放量、气候变化程度以及社会福利变化

DICE模型是一个动态综合气候经济模型,由诺贝尔经济学奖得主William Nordhaus开发,用于评估气候变化对经济的影响以及不同减排政策的经济成本和效益。以下是一个关于DICE模型在气候变化影响评估中的实际应用案例,结合R语言代码进行讲解。

KY_chenzhao的博客 869

Chart包托管至Harbor方案

下载方法:wget https://get.helm.sh/helm-v3.13.2-linux-amd64.tar.gz。上传harbor-offline-installer-v2.5.3.tgz包到/root目录。上传helm-push_0.10.4_linux_amd64.tar.gz包到/root目录。下载或上传helm-v3.13.2-linux-amd64.tar.gz包到/root目录。上传docker-compose-linux-x86_64包到/root目录。

2402_88627342的博客 1513

编译hive-3.1.3(3.0.0)和编译tez-0.10.2适配hadoop-3.3.4以及hadoop-3.2.2(附安装包)

编译hive-3.1.3(3.0.0)和编译tez-0.10.2适配hadoop-3.3.4以及hadoop-3.2.2(附安装包)

2301_77356579的博客 2599

Kubernetes通过Helm Chart安装Harbor仓库并访问验证

企业级Harbor仓库搭建

weixin_46660849的博客 12万+

用Python+ArcGIS分析厦门共享单车数据:5分钟搞定订单时长与距离分布的可视化

本文详细介绍了如何利用Python和ArcGIS Pro 3.x快速分析厦门共享单车数据,实现订单时长与距离分布的可视化。通过数据清洗、预处理和高级可视化技巧,揭示用户行为特征,为运营优化提供数据支持。文章还提供了环境配置、代码示例和业务洞察,帮助开发者高效完成数据分析任务。

weixin_28327051的博客 337

sentaurus学习笔记(HFET_pGate_GaN仿真)(五)

`(sdedr:define-constant-profile`和`(sdedr:define-constant-profile-region`命令用于定义并应用一个恒定的活性硼掺杂浓度剖面`"ndop_GaN_gate_const"`到氮化镓栅极层上,其值为`NpGaN_gate`。- `"Oxide"`指定了这一层的材料名称(在这里代表氧化层),而`"nucleation"`是这一层在仿真中的标识名称。- `"GaN"`指定了这一层的材料名称,而`"GaN_gate"`是这一层在仿真中的标识名称。

qq_52640792的博客 940

Kubernetes(k8s)包管理器Helm(Helm3)介绍&Helm3安装Harbor

文章目录一、概述 一、概述 helm是k8s的另外一个项目,相当于linux的yum,在yum仓库中,yum不光要解决包之间的依赖关系,还要提供具体的程序包,helm仓库里面只有配置清单文件,而没有镜像,镜像还是由镜像仓库来提供,比如hub.docker.com、私有仓库。 helm提供了一个应用所需要的所有清单文件,比如对于一个nginx,我们需要一个deployment的清单文件、一个service的清单文件、一个hpa(Horizontal Pod Autoscaler:Pod自动弹性伸缩)的清

匠人精神,持之以恒! 7151

SIwave仿真手册——电源完整性仿真之PDN阻抗的提取(四)

(想不到我这个弱鸡的博主有一天也有被催更的时候,看到后台被催的消息,我慌了,赶紧写一篇把。) 文章目录3.1 PDN阻抗的提取3.1.1手动完成PDN阻抗的提取1、创建pin group2、创建端口3、数据文件的清理和检查(参考1.3.4&1.3.5)4、添加电容模型(参考2.2.1)(==这一步很重要==)5、开始仿真6、查看仿真结果3.1.2利用向导工具完成PDN阻抗的提取1、点击图标![在这里插入图片描述](https://img-blog.csdnimg.cn/36d974339ea5449

luohuo9844的博客 1万+

【Harbor作为Chart仓库】Helm离线部署AWX1.0.0

【AWX-1.0.0】最新版详细部署:K8s现有集群上使用helm离线部署awx1.0.0,配置harbor作为helm charts,整体架构:kuboard+k8s+awx+ansible+harbor。

Mr.Wang的博客 2978

合肥工业大学操作系统实验8

依据操作系统课程所介绍的地址映射与内存共享的原理,本实验的目的是深入理解物理内存的分页管理方式。 深入理解操作系统的段、页式内存管理。包括理解段表、二级页表,以及逻辑地址、线性地址、 物理地址的映射过程。编程实现段、页式内存管理上的内存共享,从而深入理解操作系统的内存管理。从而加深对教材上地址映射与内存共享的理解。

Martin-share的博客 1721

Winform从入门到精通(2)——Button(史上最全)

本文介绍winform中Button控件的详细用法,包括所有属性和事件

qq_34059233的博客 1万+

k8s_制作Chart_Harbor存储Chart

1,创建一个chart [root@k8s-master ~]# helm create demo [root@k8s-master ~]# cd demo/ [root@k8s-master demo]# ls charts Chart.yaml templates values.yaml 2,修改默认的Chart.yaml [root@k8s-master demo]#...

qq_36270681的博客 609

ardupilot SBUS输入捕获

本节主要记录ardupilot 的sbus 输入捕获功能。ardupilot 默认支持多种无线协议控制输入设备,比如常用的PPM,SBUS,IBUS,DSM,SUMD,SRXL等协议,本节主要讲解ardupilot 如何通过定时器的pwm输入捕获来获取sbus数据。

陌城烟雨 270

Kubernetes基于helm安装 harbor

之前harbor的安装都是借助docker完成一键安装部署,安装完成之后harbor组件均运行到一台机器上面,本文实践harbor在k8s环境中的部署。

lldhsds的专栏 2367

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

从caption到歌曲:ACE-Step-1.5-planner-1.7B-8bit在MLXEngine中的开发者实战笔记

🎵 想在 Apple Silicon 上用 **MLX** 把一段文字描述(caption)+ 歌词直接变成 48kHz 立体声歌曲?`ACE-Step-1.5-planner-1.7B-8bit` 正是 ACE-Step 1.5 音乐生成流水线里的"总指挥"——5Hz 规划器(planner)的 8-bit 量化模型。本文带你从模型原理、量化细节到在 **MLXEngine** 中跑通第一首歌

gitblog_00761的博客 1037

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

kubernetes应用的包管理工具---Helm的安装、部署、构建Helm Chart、分发

NOTES:echo)# 服务解析;;;;;;;;;;;;;;;;;;udp: 4096;;;;;;;;;;;;;;尝试使用test123密码登录数据库or \g.owners.Type 'help;| mysql || sys |mysql>这样就说明数据库连接正常。

Q先生 1706

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

上一篇: Harbor系列之3:使用docker环境安装Harbor仓库-https部署
下一篇: Harbor系列之5:安装配置helm仓库
KongTY312
博客等级 码龄12年 2143粉丝 189原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KongTY312

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值