当前位置: 首页 > news >正文

K8s与Helm实战:从入门到精通

Kubernetes 简介

Kubernetes(简称 K8s)是一个开源的容器编排平台,用于自动化部署、扩展和管理容器化应用。最初由 Google 设计并捐赠给云原生计算基金会(CNCF),现已成为容器编排领域的事实标准。

核心功能

  • 自动化容器部署:支持声明式配置和自动化部署,减少人工干预。
  • 弹性伸缩:根据负载动态调整应用实例数量,优化资源利用率。
  • 服务发现与负载均衡:自动分配流量至健康容器,确保服务高可用性。
  • 自我修复:监控容器状态,自动重启或替换故障实例。
  • 存储编排:支持多种存储系统(如本地存储、云存储)的动态挂载。

核心组件

  • Master 节点:包含 API Server、Scheduler、Controller Manager 等组件,负责集群管理。
  • Worker 节点:运行容器化应用,包含 Kubelet(代理)和 Kube-proxy(网络代理)。
  • Pod:最小调度单元,包含一个或多个共享资源的容器。
  • Service:定义一组 Pod 的访问策略,提供稳定 IP 和 DNS 名称。

流程图

典型应用场景

  • 微服务架构中管理数百个服务的生命周期。
  • 混合云或多云环境下实现应用的可移植性。
  • 持续集成/持续交付(CI/CD)流水线中的自动化部署。

学习资源推荐

  • 官方文档:kubernetes.io
  • 实践工具:Minikube(本地单节点集群)、kubectl(命令行工具)。

Kubernetes 通过抽象底层基础设施,使开发者能够专注于应用逻辑,提升运维效率。

Helm 是 Kubernetes 的包管理工具

Helm 是 Kubernetes 的包管理工具,用于简化应用的部署和管理。以下是 Helm 的常见使用场景和示例,涵盖安装、配置、模板化、依赖管理等核心功能。

流程图

Helm 基础操作示例

安装 Helm

curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

添加仓库

helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update

搜索 Chart

helm search repo nginx

安装 Chart

helm install my-nginx bitnami/nginx

列出已安装的 Release

helm list

卸载 Release

helm uninstall my-nginx


Helm 自定义配置示例

覆盖默认值
创建 values.yaml 文件:

replicaCount: 3
image:repository: nginxtag: "1.21.0"

通过文件安装:

helm install my-nginx bitnami/nginx -f values.yaml

命令行覆盖值

helm install my-nginx bitnami/nginx --set replicaCount=3


Helm 模板开发示例

创建 Chart

helm create myapp

模板变量
templates/deployment.yaml 中使用变量:

apiVersion: apps/v1
kind: Deployment
metadata:name: {{ .Release.Name }}-deployment
spec:replicas: {{ .Values.replicaCount }}

条件判断

{{- if .Values.ingress.enabled }}
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:name: {{ .Release.Name }}-ingress
{{- end }}

循环遍历

env:
{{- range $key, $value := .Values.env }}- name: {{ $key }}value: {{ $value | quote }}
{{- end }}


Helm 依赖管理示例

添加依赖
Chart.yaml 中声明依赖:

dependencies:- name: mysqlvers
http://www.dtcms.com/a/287603.html

相关文章:

  • 【杂谈】硬件工程师怎么用好AI工具做失效分析
  • 图像缩放的双线性插值算法
  • Keepalived 监听服务切换与运维指南
  • Redis常见线上问题
  • 如何实现电脑自动关机与定时任务管理
  • MySQL 深度性能优化配置实战指南
  • UGUI 性能优化系列:第三篇——渲染与像素填充率优化
  • Redis性能测试全攻略:工具实操与性能优化指南
  • python conda 包管理工具 隔离环境
  • Ubuntu 22.04.3 LTS 安装 MySQL
  • 【数据结构初阶】--双向链表(二)
  • 基于单片机病床呼叫系统/床位呼叫系统
  • 【自用】JavaSE--集合框架(一)--斗地主案例
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现动物分类(C#源码,UI界面版)
  • Python 常见库分类介绍及安装方法
  • 数据库第四次作业
  • 爬虫小知识三:selenium库
  • ElasticSearch:商品SKU+SPU实现join查询,设计及优化
  • 基于Eureka和restTemple的负载均衡
  • gitlab私有化部署
  • 月舟科技近调记录
  • Kotlin内联函数
  • 访问 gitlab 跳转 0.0.0.0
  • Kotlin泛型约束
  • QGIS新手教程10:专题图制作与图层渲染技巧全攻略(含分类与渐变)
  • 【通识】PCB文件
  • Elastic Search 8.x 分片和常见性能优化
  • IntelliJ IDEA中Mybatis的xml文件报错解决
  • 在Tailwind Css中如何书写flex布局
  • Linux C 信号操作