k8s实战之理解helm
2021-03-26 22:26
766 查看
helm V3的特性:
-
架构改变,去掉Tiller,直接helm通过kubeconfig连接apiserver
-
release名称可以在不同命令空间重用
- chart支持放到docker镜像仓库
K8S部署一个应用的流程如下
编写 yaml :
deployment service ingress
1.0创建 deployment模板
kubectl create deployment nginx --image=nginx --dry-run -o yaml > deployment.yaml
1.1启动nginx pod
kubectl apply -f deployment.yaml
1.2检查pod服务
kubectl get pods
2.0创建service资源
kubectl expose deployment nginx --port=80 --target-port=80 --type=NodePort --dry-run -o yaml > service.yaml
2.1.启动service服务
kubectl apply -f service.yaml
2.2检查service端口
kubectl get svc
3.0访问该nginx服务
其中一个node节点ip+31190端口
kubectl describe pod `web-dc77dd8db-7r8k5`
有问题查看构建镜像的构建
helm 解决了如下管理应用的问题 1. 如何将这些yaml作为一个整体管理? 2. 这些yanl文件如何高效复用? 3. 不支持应用级别的版本管理
开始实战
wget http://120.78.77.38/file/helm-v3.0.0-linux-amd64.tar.gz #也可以去官网下载 tar -xf helm-v3.0.0-linux-amd64.tar.gz && cd linux-amd64 mv helm /usr/bin/ #将helm二进制文件拷贝到宿主机/bin下
配置helm微软源地址
helm repo add stable http://mirror.azure.cn/kubernetes/charts/
检查配置源地址
helm repo list
通过helm安装一个k8s-ui
1.通过helm安装软件
helm search repo weave #去仓库中查找weave的程序包
helm install ui stable/weave-scope #安装
kubectl get pods 检查
2.修改配置文件,并访问
ClusterIP改成 NodePort
kubectl edit svc ui-weave-scope
kubectl get svc #可以看到暴露的端口
创建一个mychart包管理模板
helm create mychart
#删除templates/目录下的文件/将之前nginx的deployment和service yaml文件拷贝过来 rm -rf /templates/* mv /root/deployment.yaml ./ mv /root/service.yaml ./
kubectl delete svc web #删除之前的nginx svc kubectl delete deployment web #删除之前的nginx pod cd /root helm install web mychart/
执行完会自动创建deployment和service
修改更新helm
helm upgrade web mychart helm list 检测服务
通过修改helm全局变量模板
deployment/service关键信息创建应用
# vim values.yaml replicaCount: 1 image: zhangfan5391621/java-demo tag: latest label: java-demo port: 8080
修改deployment.yaml(关键信息为变量定义信息)
# vim deployment.yaml apiVersion: apps/v1 kind: Deployment metadata: name: {{ .Release.Name }}-dp spec: replicas: {{ .Values.replicas }} selector: matchLabels: app: {{ .Values.label }} template: metadata: labels: app: {{ .Values.label }} spec: containers: - image: {{ .Values.image }}:{{ .Values.tag }} name: nginx
修改service.yaml(关键信息为变量定义信息)
# vim service.yaml apiVersion: v1 kind: Service metadata: name: {{ .Release.Name }}-svc spec: ports: - port: 80 protocol: TCP targetPort: {{ .Values.port }} selector: app: {{ .Values.label }} type: NodePort
helm install --dry-run web1 mychart/ #检测配置变量是否正确生效
helm install web1 mychart/ 创建应用
- 通过定义变量成功创建了应用
- 查看helm创建的应用
helm 扩容
helm upgraded web1 --set replicas=3 mychart/ #扩容副本3个
回滚
helm rollback web1 1 #将web1回滚到第一个版本
相关文章推荐
- Kubernetes 实战教学,手把手教您用 Helm 在 K8s 平台上部署 Prometheus
- kubernetes实战(十二):k8s使用helm持久化部署redmine集成openLDAP
- kubernetes实战(十):k8s使用Helm安装harbor
- kubernetes实战(十):k8s使用Helm安装harbor
- kubernetes实战(十五):k8s使用helm持久化部署jenkins集成openLDAP登录
- kubernetes实战(十三):k8s使用helm持久化部署harbor集成openLDAP登录
- Jenkins-k8s-helm-harbor-githab-mysql-nfs微服务发布平台实战
- 视频教程-k8s实战之helm-Linux
- 通过一个Socket例子理解Http协议(实战Java Web服务器--使用HTTP协议和JAVA类实现)
- 深入理解java虚拟机 摘要(三)--实战:OutOfMemoryError异常
- kubernetes实战篇之helm完整示例
- mysql基础知识理解和sql题讲解分析面试实战(四)之函数讲解和字符串的操作
- Android实战技术:深入理解Android的RPC方式与AIDL
- 深入理解Java虚拟机----第九章:类加载及其执行子系统的案例与实战
- Spring In Action 4(Spring实战第四版)翻译与理解 第一章 付诸行动
- Android实战技术:理解Binder机制
- 视频教程-Kubernetes(k8s)应用管理利器Helm(2020)-Docker/K8S
- k8s实战为aspnetcore.webapi微服务注入配置信息
- .NET Core 3.0之深入源码理解HttpClientFactory之实战
- MVP 设计模式理解,实战理解MVP