博客
关于我
k8s实战之理解helm
阅读量:326 次
发布时间:2019-03-04

本文共 2701 字,大约阅读时间需要 9 分钟。

helm V3的特性:

  1. 架构改变,去掉Tiller,直接helm通过kubeconfig连接apiserver
  2. release名称可以在不同命令空间重用
  3. 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  #可以看到暴露的端口

在这里插入图片描述

http://192.168.106.103:32055/
在这里插入图片描述
创建一个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: 1image: zhangfan5391621/java-demotag: latestlabel: java-demoport: 8080

修改deployment.yaml(关键信息为变量定义信息)

vim deployment.yaml

apiVersion: apps/v1kind: Deploymentmetadata:  name: {   {     .Release.Name }}-dpspec:  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: v1kind: Servicemetadata:  name: {   {    .Release.Name }}-svcspec:  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回滚到第一个版本

转载地址:http://mqah.baihongyu.com/

你可能感兴趣的文章
js求阶乘
查看>>
L1-009 N个数求和 (20 分)
查看>>
L2-031 深入虎穴 (25 分)
查看>>
Unity之PlayerPrefs
查看>>
简单的xml读取存储方法(未优化)
查看>>
Making the grade 和Sonya and Problem Wihtout a Legend
查看>>
Nginx---惊群
查看>>
2种解法 - 获取一条直线上最多的点数
查看>>
项目中常用的审计类型概述
查看>>
(九)实现页面底部购物车的样式
查看>>
python-day3 for语句完整使用
查看>>
ButterKnife使用问题
查看>>
为什么讨厌所谓仿生AI的说法
查看>>
ORACLE 客户端工具
查看>>
Pyinstaller打包的exe文件过大的解决方法
查看>>
Linux的软链接跟Windows快捷方式一样?
查看>>
使用第三方sdk,微信wechat扫码登录
查看>>
ValueError: check_hostname requires server_hostname
查看>>
基于LabVIEW的入门指南
查看>>
PCB布局系列汇总
查看>>