k8s笔记7.4--helm构建无端口类型chart

2024-05-30 23:48

本文主要是介绍k8s笔记7.4--helm构建无端口类型chart,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

k8s笔记7.4--helm构建无端口类型chart

  • 介绍
  • 无端口chart
  • 注意事项
  • 说明

介绍

helm create chartName 后,默认创建了一个web类型的应用,而且配置了service 和 端口探测;如果直接更换为无端口的worker 类型应用,那么部署就报错了。因此需要调整helm chart文件,是指无端口和service 配置,然后再打包部署。
本文以busybox 为例,打包一个无端口的helm chart,并部署到 k8s 中。

无端口chart

  1. 创建chart
    helm create xg-busybox
    
  2. 清理无用的配置项
    1. values.yaml 中设置ingress 为false
    2. eployment.yaml 中去掉端口相关的配置 containers.ports
    3. 去掉配置文件 service.yaml
    values.yaml
    replicaCount: 1image:repository: registry-vpc.cn-shanghai.aliyuncs.com/yourNamespace/busyboxpullPolicy: IfNotPresent# Overrides the image tag whose default is the chart appVersion.tag: busybox_1.31imagePullSecrets: [{"name": "regcred"}]
    nameOverride: ""
    fullnameOverride: ""serviceAccount:create: trueannotations: {}name: ""podAnnotations: {}podSecurityContext: {}# fsGroup: 2000securityContext: {}service:type: ClusterIPport: 80ingress:enabled: falseclassName: ""annotations: {}hosts:- host: chart-example.localpaths:- path: /pathType: ImplementationSpecifictls: []resources: {}autoscaling:enabled: falseminReplicas: 1maxReplicas: 100targetCPUUtilizationPercentage: 80nodeSelector: {}tolerations: []affinity: {}vim templates/deployment.yaml
    apiVersion: apps/v1
    kind: Deployment
    metadata:name: {{ include "xg-busybox.fullname" . }}labels:{{- include "xg-busybox.labels" . | nindent 4 }}
    spec:{{- if not .Values.autoscaling.enabled }}replicas: {{ .Values.replicaCount }}{{- end }}selector:matchLabels:{{- include "xg-busybox.selectorLabels" . | nindent 6 }}template:metadata:{{- with .Values.podAnnotations }}annotations:{{- toYaml . | nindent 8 }}{{- end }}labels:{{- include "xg-busybox.selectorLabels" . | nindent 8 }}spec:{{- with .Values.imagePullSecrets }}imagePullSecrets:{{- toYaml . | nindent 8 }}{{- end }}serviceAccountName: {{ include "xg-busybox.serviceAccountName" . }}securityContext:{{- toYaml .Values.podSecurityContext | nindent 8 }}containers:- name: {{ .Chart.Name }}securityContext:{{- toYaml .Values.securityContext | nindent 12 }}image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"command: [sh, -c, 'sleep infinity']imagePullPolicy: {{ .Values.image.pullPolicy }}resources:{{- toYaml .Values.resources | nindent 12 }}{{- with .Values.nodeSelector }}nodeSelector:{{- toYaml . | nindent 8 }}{{- end }}{{- with .Values.affinity }}affinity:{{- toYaml . | nindent 8 }}{{- end }}{{- with .Values.tolerations }}tolerations:{{- toYaml . | nindent 8 }}{{- end }}
    
  3. 打包部署
    # helm push xg-busybox/ bigdata-apps
    # helm repo update
    # helm upgrade xg-busybox-dev bigdata-apps/xg-busybox -f xg-busybox/dev-values.yaml --set=image.tag=busybox_1.31 -n sre-test
    # helm list -A|grep xg-busybox
    xg-busybox-dev	sre-test 	2       	2021-08-21 17:09:41.318788496 +0800 CST	deployed	xg-busybox-0.1.4  	1.31
    
    此时可以发现已经正常更新服务 xg-busybox-dev了。

注意事项

  1. helm 打包无端口的服务一定要去掉service.yaml, 且需要关闭端口和服务相关的配置。
  2. 实际部署的时候最好区分 dev-values.yaml(开发测试环境) 和 prod-values.yaml(生产环境),以达到一个chart 匹配多种环境的目的。

说明

helm 版本 v3.6.1
helm 官方文档

这篇关于k8s笔记7.4--helm构建无端口类型chart的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1017090

相关文章

k8s按需创建PV和使用PVC详解

《k8s按需创建PV和使用PVC详解》Kubernetes中,PV和PVC用于管理持久存储,StorageClass实现动态PV分配,PVC声明存储需求并绑定PV,通过kubectl验证状态,注意回收... 目录1.按需创建 PV(使用 StorageClass)创建 StorageClass2.创建 PV

k8s中实现mysql主备过程详解

《k8s中实现mysql主备过程详解》文章讲解了在K8s中使用StatefulSet部署MySQL主备架构,包含NFS安装、storageClass配置、MySQL部署及同步检查步骤,确保主备数据一致... 目录一、k8s中实现mysql主备1.1 环境信息1.2 部署nfs-provisioner1.2.

k8s admin用户生成token方式

《k8sadmin用户生成token方式》用户使用Kubernetes1.28创建admin命名空间并部署,通过ClusterRoleBinding为jenkins用户授权集群级权限,生成并获取其t... 目录k8s admin用户生成token创建一个admin的命名空间查看k8s namespace 的

k8s搭建nfs共享存储实践

《k8s搭建nfs共享存储实践》本文介绍NFS服务端搭建与客户端配置,涵盖安装工具、目录设置及服务启动,随后讲解K8S中NFS动态存储部署,包括创建命名空间、ServiceAccount、RBAC权限... 目录1. NFS搭建1.1 部署NFS服务端1.1.1 下载nfs-utils和rpcbind1.1

使用Node.js和PostgreSQL构建数据库应用

《使用Node.js和PostgreSQL构建数据库应用》PostgreSQL是一个功能强大的开源关系型数据库,而Node.js是构建高效网络应用的理想平台,结合这两个技术,我们可以创建出色的数据驱动... 目录初始化项目与安装依赖建立数据库连接执行CRUD操作查询数据插入数据更新数据删除数据完整示例与最佳

k8s容器放开锁内存限制问题

《k8s容器放开锁内存限制问题》nccl-test容器运行mpirun时因NCCL_BUFFSIZE过大导致OOM,需通过修改docker服务配置文件,将LimitMEMLOCK设为infinity并... 目录问题问题确认放开容器max locked memory限制总结参考:https://Access

Docker多阶段镜像构建与缓存利用性能优化实践指南

《Docker多阶段镜像构建与缓存利用性能优化实践指南》这篇文章将从原理层面深入解析Docker多阶段构建与缓存机制,结合实际项目示例,说明如何有效利用构建缓存,组织镜像层次,最大化提升构建速度并减少... 目录一、技术背景与应用场景二、核心原理深入分析三、关键 dockerfile 解读3.1 Docke

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

Python中Json和其他类型相互转换的实现示例

《Python中Json和其他类型相互转换的实现示例》本文介绍了在Python中使用json模块实现json数据与dict、object之间的高效转换,包括loads(),load(),dumps()... 项目中经常会用到json格式转为object对象、dict字典格式等。在此做个记录,方便后续用到该方

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令