k8s学习-Helm】的更多相关文章

4.9.Helm 4.9.1.简单使用 概念 文档:https://github.com/helm/helm/blob/master/docs/charts.md 阿里云apphub:https://developer.aliyun.com/hub/ 在没使用 helm 之前,向 kubernetes 部署应用,我们要依次部署 deployment.svc 等,步骤较繁琐.况且随着很多项目微服务化,复杂的应用在容器中部署以及管理显得较为复杂,helm 通过打包的方式,支持发布的版本管理和控制,很…
一.关于这个系列 自从去年(2018年)底离开工作了3年的M公司加入X公司之后,开始了ASP.NET Core的实践,包括微服务架构与容器化等等.我们的实践是渐进的,当我们的微服务数量到了一定值时,发现运维工作量已将增加了很多,因此容器编排引擎的需求也随之产生(虽然我们一直都知道K8S的必要性).同时,在张队发的<.NET云原生采用情况调查>中已经表明,容器编排和自动化领域Kubernetes已经占据了主体地位,学习Kubernetes刻不容缓! 所以,我将K8S的学习放到了今年的学习列表中,…
1.基本概念 上节在k8s中部署了harbor和ldap,本节将部署harbor使用openLDAP验证,部署方式与之前相同,只是改了adminserver-cm.yaml的AUTH_MODE: "ldap_auth".另外harbor配置ldap登录非必须,按需. 2.部署 下载项目 git clone https://github.com/dotbalo/helm.git [root@k8s-master01 ci]# cd harbor-helm-ldap/ [root@k8s-…
当近期的一个App上线后,发现目前的docker实例(应用服务BFF+中台服务+工具服务)已经很多了,而我司目前没有专业的运维人员,发现运维的成本逐渐开始上来,所以容器编排也就需要提上议程.因此我决定开始学习Kubernetes,会将学习当中的过程记录下来,预计会形成一个系列,暂且命名为:ASP.NET Core on K8S,而这个系列会由3个部分组成,且会在不同的时期写完: ASP.NET Core on K8S学习初探:在Docker for Windows中搭建单节点环境,初步了解有个感…
在上一篇<基本概念快速一览>中,我们把基本的一些概念快速地简单地不求甚解地过了一下,本篇开始我们会将ASP.NET Core WebAPI部署到K8S,从而结束初探的旅程. Section 1 - ASP.NET Core on K8S学习初探(1)K8S单节点环境搭建 Section 2 - ASP.NET Core on K8S学习初探(2)K8S基本概念快速一览 Section 3 - ASP.NET Core on K8S学习初探(3)部署API到K8S 一.准备一个WebAPI 这里…
在上一篇<单节点环境搭建>中,通过Docker for Windows在Windows开发机中搭建了一个单节点的K8S环境,接下来就是动人心弦的部署ASP.NET Core API到K8S了.但是,在部署之前,我还是把基本的一些概念快速地简单地不求甚解地过一下. Section 1 - ASP.NET Core on K8S学习初探(1)K8S单节点环境搭建 Section 2 - ASP.NET Core on K8S学习初探(2)K8S基本概念快速一览 Section 3 - ASP.NE…
k8s学习 - API 之前对k8s并没有很深入的了解,最近想把手头一个项目全部放到k8s上,以方便部署,需要研究.这里记录一下自己研究过程中头脑中的理解. k8s 和 docker 首先,需要先理解下docker.镜像把你要的应用和环境打包在一个容器里面,有了容器之后,部署,扩容等操作就很方便了.但是,随着微服务化,服务一多,容器就多了,多了之后,就需要对容器进行管理.需要有一套很完善的管理系统.那么 k8s 就出现了. k8s 全称就是kubernets,和 i10n 的名字类似,中间的数字…
k8s学习 - 概念 - master/node 在k8s中,有各种各样的概念和术语.这些概念是必须要学习和掌握的.我们先罗列下所有概念,然后再一个个看具体实例. 大概说一下这些概念: Master: k8s的主控组件,对应的对象是node. Node: 是k8s集群的机器节点,相当于master-node.一个node就对应一个具体的物理机或者虚拟机. Container: 是一个镜像容器,一个container是一个镜像实例 Pod: 是k8s集群的最小单元,一个pod可以包含一个或者多个c…
k8s学习 - 概念 - Pod 这篇继续看概念,主要是 Pod 这个概念,这个概念非常重要,是 k8s 集群的最小单位. 怎么才算是理解好 pod 了呢,基本上把 pod 的所有 describe 和配置文件的配置项都能看懂就算是对 pod 比较了解了. Pod 我们通过调用一个kubectl describe pod xxx 可以查看某个 pod 的具体信息. describe 的信息我们用注释的形式来解读. Name: task-pv-pod Namespace: default // 没…
k8s学习 - 概念 - ReplicationController 我们有了 pod,那么就需要对 pod 进行控制,就是同一个服务的 podv我需要启动几个?如果需要扩容了,怎么办?这里就有个控制器,ReplicationController(简称rc). 不过我们看官网: 这里告诉我们,ReplicationController 现在已经过时了,现在建议使用 Deployment 配合ReplicaSet.ReplicationController的主要功能是保证Pod的数量.健康,弹性收…
k8s学习 - 概念 - ReplicaSet 首先,ReplicaSet 和 ReplicationController 基本上一样,除了上篇说到的selector有不同之外,没有啥区别.(官网也是这么说的).但是为什么官方建议的不是ReplicaController + Deployment的集合呢?咋们也不敢说,咋们也不敢问.反正我就知道,用 ReplicationController 的值得被鄙视,用ReplicationSet +deployment 的现在是正统. ReplicaSe…
k8s学习 - 概念 - Deployment 有了 ReplicaSet 还需要有 Deployment 的原因是希望有一个控制器能管理部署更新时候的版本控制问题.一个 Deployment 可以管理多个 ReplicaSet, 一个 ReplicaSet 可以管理多个 Pod.最通用的场景是当我们对某个 Pod 里面的镜像进行升级的时候,我们非常迫切需要有一个版本号概念,并且在发现问题的时候可以随时回滚.那么这个就是 Deployment 的使命. 使用 官方和很多文章都是使用 nginx…
本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 一.关于Ingress Kubernetes对外暴露Service主要有三种方式:NodePort.LoadBalancer 以及 Ingress.前两种我们在第四篇<你必须知道的Service>一文中已经加以介绍,这里我们主要来看看Ingress是个什么鬼. 官网对 Ingress 的定义为 管理对外服务到集群内服务之间规则的集合,通俗点讲就是它定义规则来允许进入集群的请…
本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 上一篇介绍了Ingress的基本概念和Nginx Ingress的基本配置和使用,考虑到很多团队都在使用Ocelot作为API网关(包括我司)做了很多限流和鉴权的工作,因此本篇介绍一下如何使用Ocelot接入替代Nginx Ingress作为统一入口. 一.准备工作 我们仍然以上一篇的两个ASP.NET Core WebAPI示例作为K8s集群中的后端服务示例,这里我们来快速地准备一个…
本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 之前一篇介绍了Ingress的基本概念和Nginx Ingress的基本配置和使用,本篇继续Ingress的使用,来看看如何使用Ingress实现灰度发布(金丝雀发布).此外,我也有录制一个10min+的小视频介绍蓝绿发布和金丝雀发布的基本概念,视频入口点击这里. 一.准备工作 1.1 WebAPI项目准备 首先,我们还是准备两个版本的ASP.NET Core WebAPI项目,具体项…
本文内容 本文致力于介绍K8s一些基础概念与串联部署应用的主体流程,使用Minikube实操 基础架构概念回顾 温故而知新,上一节[K8S学习笔记]初识K8S 及架构组件 我们学习了K8s的发展历史.基础架构概念及用途,本节讲的内容建立在其上,有必要把之前的架构小节提出来回顾下: K8s架构分为控制平台(位于的Master节点)与执行节点Node 控制平台包含: kube-apiserver(访问入口,接收命令) etcd(KV数据库,保存集群状态与数据) kube-scheduler(监控节点…
Kubernetes K8S之Helm部署.使用.常见操作与示例 主机配置规划 服务器名称(hostname) 系统版本 配置 内网IP 外网IP(模拟) k8s-master CentOS7.7 2C/4G/20G 172.16.1.110 10.0.0.110 k8s-node01 CentOS7.7 2C/4G/20G 172.16.1.111 10.0.0.111 k8s-node02 CentOS7.7 2C/4G/20G 172.16.1.112 10.0.0.112 Helm是什么…
什么是helm? Helm 是 Kubernetes 的包管理器.Helm 是查找.分享和使用软件构建 Kubernetes 的最优方式. 在红帽系的Linux中我们使用yum来管理RPM包,类似的,在K8s中我们可以使用helm来管理资源对象(Deployment.Service.Ingress...)实现K8s中应用的快速发布.升级.维护和分享.helm官方文档 helm中的几个关键概念 Chart 是Helm 中的包.包含一组用于部署应用程序的 K8s 资源对象定义(即资源清单的集合).…
本文只涉及Helm的Chart操作,不会对其他知识进行过多描述.至于安装这块,麻烦自行百度吧,一大堆呢. 在容器化的时代,我们很多应用都可以部署在docker,很方便,而再进一步,我们还有工具可以对docker进行编排,Kubernetes就是一个很好的工具.再再进一步,Kubernetes出现了helm,可以将多个服务更好的编排组合成一个应用. Helm Helm的作用相当于node.js下的npm,对于应用发布者而言,可以通过Helm打包应用,管理应用依赖关系,管理应用版本并发布应用到软件仓…
0x00 单节点搭建和简述 minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用.不能用于生产环境. 官方地址:https://kubernetes.io/docs/setup/minikube/ kubeadm Kubeadm也是一个工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群. 官方地址:https://kubernetes.io/docs/refer…
1.基本概念 Jenkins在DevOps工具链中是核心的流程管理中心,负责串联系统的构建流程.测试流程.镜像制作流程.部署流程等,在持续集成中常用到的工具如下: Maven:源代码编译工具 RobotFramework:自动化测试工具 NewMan:接口自动化测试工具 SonarQube Scanner:源代码扫描工具 GitLab:代码仓库工具 Docker:镜像制作工具 kubectl:K8S工具 公司目前使用的流程是通过Redmine和GitLab中创建项目.开发提交代码.触发jenki…
1.基本概念 此次安装的有Jenkins.Gitlab.Redmine,我公司目前使用的是独立于k8s集群之外单独部署的Jenkins等服务,此文章会介绍三种服务基于k8s的部署方式,之后集成之前部署的openLDAP实现统一认证.之后将进行简单持续集成持续部署的演示,最后再结合我公司的项目进行实战操作,应付出现的各种使用场景. 2.使用Helm安装redmine [root@k8s-master01 ci]# git clone https://github.com/dotbalo/helm.…
1.基本概念 对于复杂的应用中间件,需要设置镜像运行的需求.环境变量,并且需要定制存储.网络等设置,最后设计和编写Deployment.Configmap.Service及Ingress等相关yaml配置文件,再提交给kubernetes进行部署.这些复杂的过程将逐步被Helm应用包管理工具实现. Helm是一个由CNCF孵化和管理的项目,用于对需要在k8s上部署复杂应用进行定义.安装和更新.Helm以Chart的方式对应用软件进行描述,可以方便地创建.版本化.共享和发布复杂的应用软件. Cha…
本文学习k8s参考内容:http://docs.kubernetes.org.cn/126.html,学习过程中遇到一些坑,记录如下: ---------------------------------------------------------------------------------- k8s目前最好是用linux进行部署,windows跟mac现在虽然有k8s的版本但用起来会有一些问题.最近在自己本地mbp上部署k8s的时候绕了一些弯路,特此记录. mac上比较方便的一点是doc…
k8s简介 在学习k8s之前,相信大家和我一样,肯定都学习和使用过docker容器,并且对容器技术有了一个基本的认识.引用张磊老师的总结:其实一个"容器",实际上是一个由Linux NameSpace.linux Cgroups和rootfs三种技术构建出来的进程隔离环境. 而k8s又是什么呢,官方给出的定义是:k8s是一个开源的容器集群管理系系统,可以实现容器集群的自动化部署.自动化扩容和维护等功能.说白了,我们是用k8s是为了管理docker集群,即docker可以看成k8s内部使…
常用的kubectl命令   kubectl run kubia --image=luksa/kubia --port=8080 --generator=run/v1   --image 指定镜像 --port 是告诉kubernetes 应用监听8080端口 --generator 通常不会用到,它让kubernetes创建一个replicationController . 一般不带这个参数 ,创建的是depoly资源,deploy 在调用replicaset资源,replicaset 和re…
此文章持续更新关于学习k8s生态的参考网址:  二进制方式搭建 (此部署方式是一步一步的部署,过程清晰)            https://github.com/opsnull/follow-me-install-kubernetes-cluster    ansible 方式搭建 (方便.快捷.屏蔽了部署步骤,ansible编排,不依赖国外镜像)            https://github.com/gjmzj/kubeasz   k8s中文指南  (中文实战篇学习)        …
1.概述 helm是k8s的另外一个项目,相当于linux的yum,在yum仓库中,yum不光要解决包之间的依赖关系,还要提供具体的程序包,helm仓库里面只有配置清单文件,而没有镜像,镜像还是由镜像仓库来提供,比如hub.docker.com.私有仓库. helm提供了一个应用所需要的所有清单文件.比如对于一个nginx,我们需要一个deployment的清单文件.一个service的清单文件.一个hpa的清单文件,把这三个文件打包到一起,就是一个应用程序的程序包,称之为Chart. Char…
一.安装Helm helm教程以及安装可以参考这篇文章 二.Heml说明 常见的helm模板如下 myapp - chart 包目录名 ├── charts - 依赖的子包目录,里面可以包含多个依赖的chart包 ├── Chart.yaml - chart定义,可以定义chart的名字,版本号信息. ├── templates - k8s配置模版目录, 我们编写的k8s配置都在这个目录, 除了NOTES.txt和下划线开头命名的文件,其他文件可以随意命名. │ ├── deployment.y…
1.客户端安装 A.直接在github上下载二进制文件进行解压,下载地址:https://github.com/kubernetes/helm/releases B.将解压出来的二进制文件helm 拷贝至/usr/bin下面 2.安装tiller服务端:直接采用在k8s集群中跑pod的的模式进行安装,执行下列命令即可 # helm init --upgrade -i registry.cn-hangzhou.aliyuncs.com/google_containers/tiller:xxx -i…