前沿技术分享
大数据+云计算+微服务.
因生活所迫而要改变命运的人啊,未来的你,一定会感谢现在拼命努力的自己!
那记忆微凉
大数据+云计算+区块链+微服务+机器视觉
展开
-
Kubernetes笔记(二十五)--Ingress TLS
ingress tls上节课给大家展示了 traefik 的安装使用以及简单的 ingress 的配置方法,这节课我们来学习一下 ingress tls 以及 path 路径在 ingress 对象中的使用方法。TLS 认证在现在大部分场景下面我们都会使用 https 来访问我们的服务,这节课我们将使用一个自签名的证书,当然你有在一些正规机构购买的 CA 证书是最好的,这样任何人访问你的服务...原创 2019-08-16 10:12:49 · 1137 阅读 · 0 评论 -
Kubernetes笔记(二十四)--外部服务发现之Ingress
外部服务发现之 ingress上节课我们学习了在 Kubernetes 集群内部使用 kube-dns 实现服务发现的功能,那么我们部署在 Kubernetes 集群中的应用如何暴露给外部的用户使用呢?我们知道前面我们使用 NodePort 和 LoadBlancer 类型的 Service 可以实现把应用暴露给外部用户使用,除此之外,Kubernetes 还为我们提供了一个非常重要的资源对象可...原创 2019-08-16 09:47:04 · 680 阅读 · 0 评论 -
Kubernetes笔记(二十三)--内部服务发现Kubedns
内部服务发现前面我们给大家讲解了 Service 的用法,我们可以通过 Service 生成的 ClusterIP(VIP)来访问 Pod 提供的服务,但是在使用的时候还有一个问题:我们怎么知道某个应用的 VIP 呢?比如我们有两个应用,一个是 api 应用,一个是 db 应用,两个应用都是通过 Deployment 进行管理的,并且都通过 Service 暴露出了端口提供服务。api 需要连接...原创 2019-08-15 10:38:45 · 575 阅读 · 0 评论 -
Kubernetes笔记(二十二)--StorageClass设置默认存储后端及动态创建存储
StorageClass前面的课程中我们学习了 PV 和 PVC 的使用方法,但是前面的 PV 都是静态的,什么意思?就是我要使用的一个 PVC 的话就必须手动去创建一个 PV,我们也说过这种方式在很大程度上并不能满足我们的需求,比如我们有一个应用需要对存储的并发度要求比较高,而另外一个应用对读写速度又要求比较高,特别是对于 StatefulSet 类型的应用简单的来使用静态的 PV 就很不合适...原创 2019-08-14 13:28:24 · 10992 阅读 · 1 评论 -
Kuberntes笔记(二十一)--PVC的使用及注意事项
PVC 的使用上节课我们学习了 PV 的使用,但是在我们真正使用的时候是使用的 PVC,就类似于我们的服务是通过 Pod 来运行的,而不是 Node,只是 Pod 跑在 Node 上而已,所以这节课我们就来给大家讲解下 PVC 的使用方法。准备工作在使用 PVC 之前,我们还得把其他节点上的 nfs 客户端给安装上,比如我们这里:$ kubectl get nodesNAME ...原创 2019-08-14 11:30:38 · 1330 阅读 · 0 评论 -
Kubernetes笔记(二十)--NFS的搭建+PV的使用
PV 的使用前面我们和大家一起学习了一些基本的资源对象的使用方法,前面我们也和大家讲到了有状态的应用和对数据有持久化的应用,我们有通过 hostPath 或者 emptyDir 的方式来持久化我们的数据,但是显然我们还需要更加可靠的存储来保存应用的持久化数据,这样容器在重建后,依然可以使用之前的数据。但是显然存储资源和 CPU 资源以及内存资源有很大不同,为了屏蔽底层的技术实现细节,让用户更加方...原创 2019-08-14 11:17:39 · 707 阅读 · 0 评论 -
Kubernetes笔记(十九)--DaemonSet+StatefulSet
DaemonSet 与 StatefulSet 的使用前面我们的课程中学习了大部分资源对象的使用方法,上节课我们通过一个WordPress的示例把我们前面的内容做了一个总结。今天我们来给大家讲解另外一个Pod控制器的使用方法,我们前面主要讲解的是Deployment这种对象资源的使用,接下来我们要讲解的是在特定场合下使用的控制器:DaemonSet与StatefulSet。DaemonSet ...原创 2019-08-14 11:01:06 · 456 阅读 · 0 评论 -
Kubernetes笔记(十八)--wordpress实战案例
部署 Wordpress 示例前面的课程中我们基本上了解了Kubernetes当中常见的一些对象资源,这节课我们就来利用前面学习的知识点来部署一个实际的应用 - 将Wordpress应用部署到我们的集群当中,我们前面是不是已经用docker-compose的方式部署过了,我们可以了解到要部署一个Wordpress应用主要涉及到两个镜像:wordpress和mysql,wordpress是应用的核...原创 2019-08-14 10:04:13 · 742 阅读 · 0 评论 -
Kubernetes笔记(十七)--RBAC具体使用
RBAC前面两节课我们学习了Kubernetes中的两个用于配置信息的重要资源对象:ConfigMap和Secret,其实到这里我们基本上学习的内容已经覆盖到Kubernetes中一些重要的资源对象了,来部署一个应用程序是完全没有问题的了。在我们演示一个完整的示例之前,我们还需要给大家讲解一个重要的概念:RBAC - 基于角色的访问控制。RBAC使用rbac.authorization.k8s...原创 2019-08-13 16:38:53 · 432 阅读 · 0 评论 -
Kubernets笔记(十六)--Secrect
Secret上节课我们学习了ConfigMap的时候,我们说ConfigMap这个资源对象是Kubernetes当中非常重要的一个对象,一般情况下ConfigMap是用来存储一些非安全的配置信息,如果涉及到一些安全相关的数据的话用ConfigMap就非常不妥了,因为ConfigMap是名为存储的,我们说这个时候我们就需要用到另外一个资源对象了:Secret,Secret用来保存敏感信息,例如密码...原创 2019-08-13 13:45:59 · 457 阅读 · 0 评论 -
Kubernetes笔记(十五)--ConfigMap
ConfigMap前面的课程中我们学习了Servie的使用,Service是Kubernetes系统中非常重要的一个核心概念,我们还会在后面 的课程中继续学习Service的一些使用方法的。这节课我们来学习另外一个非常重要的资源对象:ConfigMap,我们知道许多应用经常会有从配置文件、命令行参数或者环境变量中读取一些配置信息,这些配置信息我们肯定不会直接写死到应用程序中去的,比如你一个应用连...原创 2019-08-13 11:32:37 · 291 阅读 · 0 评论 -
Kubernetes笔记(十四)--Serviece
Service我们前面的课程中学习了Pod的基本用法,我们也了解到Pod的生命是有限的,死亡过后不会复活了。我们后面学习到的RC和Deployment可以用来动态的创建和销毁Pod。尽管每个Pod都有自己的IP地址,但是如果Pod重新启动了的话那么他的IP很有可能也就变化了。这就会带来一个问题:比如我们有一些后端的Pod的集合为集群中的其他前端的Pod集合提供API服务,如果我们在前端的Pod中...原创 2019-08-13 10:28:42 · 250 阅读 · 0 评论 -
Kubernetes笔记(十三)--定时任务Cronjob
Job 和 Cronjob 的使用上节课我们学习了Pod自动伸缩的方法,我们使用到了HPA这个资源对象,我们在后面的课程中还会和大家接触到HPA的。今天我们来给大家介绍另外一类资源对象:Job,我们在日常的工作中经常都会遇到一些需要进行批量数据处理和分析的需求,当然也会有按时间来进行调度的工作,在我们的Kubernetes集群中为我们提供了Job和CronJob两种资源对象来应对我们的这种需求。...原创 2019-08-13 10:08:54 · 1776 阅读 · 0 评论 -
Kubernetes笔记(十二)--Pod自动扩容(HPA)
Pod 自动扩缩容在前面的课程中,我们提到过通过手工执行kubectl scale命令和在Dashboard上操作可以实现Pod的扩缩容,但是这样毕竟需要每次去手工操作一次,而且指不定什么时候业务请求量就很大了,所以如果不能做到自动化的去扩缩容的话,这也是一个很麻烦的事情。如果Kubernetes系统能够根据Pod当前的负载的变化情况来自动的进行扩缩容就好了,因为这个过程本来就是不固定的,频繁发...原创 2019-08-12 16:47:40 · 2270 阅读 · 0 评论 -
Kubernetes笔记(十一)--Deployment使用+滚动升级策略
Deployment的使用前面的课程中我们学习了Replication Controller和Replica Set两种资源对象,RC和RS的功能基本上是差不多的,唯一的区别就是RS支持集合的selector。我们也学习到了用RC/RS来控制Pod副本的数量,也实现了滚动升级Pod的功能。现在看上去似乎一切都比较完美的运行着,但是我们上节课最后也提到了现在我们推荐使用Deployment这种控制...原创 2019-08-12 13:29:01 · 2050 阅读 · 0 评论 -
Kubernets笔记(十)--RC&RS
前面我们的课程中学习了Pod的一些基本使用方法,而且前面我们都是直接来操作的Pod,假如我们现在有一个Pod正在提供线上的服务,我们来想想一下我们可能会遇到的一些场景:某次运营活动非常成功,网站访问量突然暴增运行当前Pod的节点发生故障了,Pod不能正常提供服务了第一种情况,可能比较好应对,一般活动之前我们会大概计算下会有多大的访问量,提前多启动几个Pod,活动结束后再把多余的Pod杀掉,...原创 2019-08-12 11:34:00 · 499 阅读 · 0 评论 -
Kubernetes笔记(九)--初始化容器
上节课我们学习了容器的健康检查的两个探针:liveness probe(存活探针)和readiness probe(可读性探针)的使用方法,我们说在这两个探针是可以影响容器的生命周期的,包括我们之前提到的容器的两个钩子函数PostStart和PreStop。我们今天要给大家介绍的是Init Container(初始化容器)。Init Container就是用来做初始化工作的容器,可以是一个或者多...原创 2019-08-12 11:19:28 · 547 阅读 · 0 评论 -
Kubernetes笔记(八)--探针健康检查
健康检查上节课我们和大家一起学习了Pod中容器的生命周期的两个钩子函数,PostStart与PreStop,其中PostStart是在容器创建后立即执行的,而PreStop这个钩子函数则是在容器终止之前执行的。除了上面这两个钩子函数以外,还有一项配置会影响到容器的生命周期的,那就是健康检查的探针。在Kubernetes集群当中,我们可以通过配置liveness probe(存活探针)和read...原创 2019-08-12 10:00:08 · 956 阅读 · 0 评论 -
Kubernetes笔记(七)--PodHook钩子函数
我们知道Pod是Kubernetes集群中的最小单元,而 Pod 是有容器组组成的,所以在讨论 Pod 的生命周期的时候我们可以先来讨论下容器的生命周期。实际上 Kubernetes 为我们的容器提供了生命周期钩子的,就是我们说的Pod Hook,Pod Hook 是由 kubelet 发起的,当容器中的进程启动前或者容器中的进程终止之前运行,这是包含在容器的生命周期之中。我们可以同时为 Pod...原创 2019-08-12 09:23:23 · 1160 阅读 · 0 评论 -
Kubernetes笔记(六)--静态Pod
静态 Pod我们上节课给大家讲解了 YAML 文件的使用,也手动的创建了一个简单的 Pod,这节课开始我们就来深入的学习下我们的 Pod。在Kubernetes集群中除了我们经常使用到的普通的 Pod 外,还有一种特殊的 Pod,叫做Static Pod,就是我们说的静态 Pod,静态 Pod 有什么特殊的地方呢?静态 Pod 直接由特定节点上的kubelet进程来管理,不通过 master ...原创 2019-08-09 14:53:11 · 689 阅读 · 0 评论 -
Kubernetes笔记(五)--yaml基础语法讲解
YAML 基础它的基本语法规则如下:大小写敏感使用缩进表示层级关系缩进时不允许使用Tab键,只允许使用空格。缩进的空格数目不重要,只要相同层级的元素左侧对齐即可# 表示注释,从这个字符一直到行尾,都会被解析器忽略。在我们的 kubernetes 中,你只需要两种结构类型就行了:ListsMaps也就是说,你可能会遇到 Lists 的 Maps 和 Maps 的 Lists,...原创 2019-08-09 14:34:03 · 536 阅读 · 0 评论 -
Kubernetes笔记(四)--安装Dashboard
安装 Dashboard 插件Kubernetes Dashboard 是 k8s集群的一个 WEB UI管理工具,代码托管在 github 上,地址:https://github.com/kubernetes/dashboard安装:直接使用官方的配置文件安装即可:$ wget https://raw.githubusercontent.com/kubernetes/dashboard/...原创 2019-08-09 14:22:07 · 305 阅读 · 0 评论 -
Kubernetes笔记(三)--使用kubeadm搭建k8s集群(详尽)
核心层:Kubernetes 最核心的功能,对外提供 API 构建高层的应用,对内提供插件式应用执行环境应用层:部署(无状态应用、有状态应用、批处理任务、集群应用等)和路由(服务发现、DNS 解析等)管理层:系统度量(如基础设施、容器和网络的度量),自动化(如自动扩展、动态 Provision 等)以及策略管理(RBAC、Quota、PSP、NetworkPolicy 等)接口层:kube...原创 2019-08-08 11:41:28 · 999 阅读 · 0 评论 -
Kubernetes笔记(二)-k8s基本资源介绍
基本概念Kubernetes 中的绝大部分概念都抽象成 Kubernetes 管理的一种资源对象,下面我们一起复习一下我们上节课遇到的一些资源对象:Master:Master 节点是 Kubernetes 集群的控制节点,负责整个集群的管理和控制。Master 节点上包含以下组件:kube-apiserver:集群控制的入口,提供 HTTP REST 服务kube-controller-m...原创 2019-08-08 11:23:16 · 311 阅读 · 0 评论 -
Kubernetes笔记(一)-k8s基础架构解析
Master 负责管理集群, master 协调集群中的所有活动,例如调度应用程序、维护应用程序的所需状态、扩展应用程序和滚动更新。 节点是 Kubernetes 集群中的工作机器,可以是物理机或虚拟机。每个工作节点都有一个 kubelet,它是管理节点并与 Kubernetes Master 节点进行通信的代理。节点上还应具有处理容器操作的容器运行时,例如 Docker 或 rkt。一个 Kub...原创 2019-08-08 10:54:04 · 772 阅读 · 0 评论 -
Kubernetes筆記(三十四)--调度器原理
Kubernetes 调度器介绍kube-scheduler是 kubernetes 系统的核心组件之一,主要负责整个集群资源的调度功能,根据特定的调度算法和策略,将 Pod 调度到最优的工作节点上面去,从而更加合理、更加充分的利用集群的资源,这也是我们选择使用 kubernetes 一个非常重要的理由。如果一门新的技术不能帮助企业节约成本、提供效率,我相信是很难推进的。调度流程默认情况下,...原创 2019-09-04 11:34:24 · 312 阅读 · 0 评论 -
Kubernetes筆記(三十三)-- Helm Hooks用法
Helm Hooks和 Kubernetes 里面的容器一样,Helm 也提供了 Hook 的机制,允许 chart 开发人员在 release 的生命周期中的某些节点来进行干预,比如我们可以利用 Hooks 来做下面的这些事情:在加载任何其他 chart 之前,在安装过程中加载 ConfigMap 或 Secret在安装新 chart 之前执行作业以备份数据库,然后在升级后执行第二个作业以...原创 2019-08-26 16:03:40 · 1372 阅读 · 0 评论 -
Kubernetes筆記(三十二)--Helm全局变量和子模版的使用
Helm模板之其他注意事项上节课我们学习了命名模板的使用,命名模板是 Helm 模板中非常重要的一个功能,在我们实际开发 Helm Chart 包的时候非常有用,到这里我们基本上就把 Helm 模板中经常使用到的一些知识点和大家介绍完了。但是仍然还是有一些在开发中值得我们注意的一些知识点,比如 NOTES.txt 文件的使用、子 Chart 的使用、全局值的使用,这节课我们就来和大家一起了解下这...原创 2019-08-26 15:47:37 · 2934 阅读 · 0 评论 -
Kubernetes筆記(三十一)--Helm模版之命名模版
Helm模板之命名模板前面我们学习了一些 Helm 模板中的一些常用使用方法,但是我们都是操作的一个模板文件,在实际的应用中,很多都是相对比较复杂的,往往会超过一个模板,如果有多个应用模板,我们应该如何进行处理呢?这就需要用到新的概念:命名模板。命名模板我们也可以称为子模板,是限定在一个文件内部的模板,然后给一个名称。在使用命名模板的时候有一个需要特别注意的是:模板名称是全局的,如果我们声明了...原创 2019-08-26 15:27:24 · 546 阅读 · 0 评论 -
Kubernetes筆記(三十)--Helm模版之控制流程
Helm 模板之控制流程模板函数和管道是通过转换信息并将其插入到YAML文件中的强大方法。但有时候需要添加一些比插入字符串更复杂一些的模板逻辑。这就需要使用到模板语言中提供的控制结构了。控制流程为我们提供了控制模板生成流程的一种能力,Helm 的模板语言提供了以下几种流程控制:if/else 条件块with 指定范围range 循环块除此之外,它还提供了一些声明和使用命名模板段的操作...原创 2019-08-19 15:26:28 · 1000 阅读 · 0 评论 -
Kubernetes筆記(二十九)--模版函數与管道
Helm 模板之模板函数与管道上节课我们学习了如何将信息渲染到模板之中,但是这些信息都是直接传入模板引擎中进行渲染的,有的时候我们想要转换一下这些数据才进行渲染,这就需要使用到 Go 模板语言中的一些其他用法。模板函数比如我们需要从.Values中读取的值变成字符串的时候就可以通过调用quote模板函数来实现:(templates/configmap.yaml)apiVersion: v1...原创 2019-08-19 14:53:13 · 358 阅读 · 0 评论 -
Kubernetes筆記(二十八)--Helm模板之內置函數
Helm 模板之内置函数和Values上节课和大家一起学习了Helm的一些常用操作方法,这节课来和大家一起定义一个chart包,了解 Helm 中模板的一些使用方法。定义 chartHelm 的 github 上面有一个比较完整的文档,建议大家好好阅读下该文档,这里我们来一起创建一个chart包。一个 chart 包就是一个文件夹的集合,文件夹名称就是 chart 包的名称,比如创建一个 ...原创 2019-08-19 14:37:10 · 840 阅读 · 0 评论 -
Kubernetes筆記(二十七)--Helm实战应用
Helm 的基本使用上节课我们成功安装了Helm的客户端以及服务端Tiller Server,我们也自己尝试创建了我们的第一个 Helm Chart 包,这节课就来和大家一起学习下 Helm 中的一些常用的操作方法。仓库Helm 的 Repo 仓库和 Docker Registry 比较类似,Chart 库可以用来存储和共享打包 Chart 的位置,我们在安装了 Helm 后,默认的仓库地址...原创 2019-08-19 14:11:53 · 1014 阅读 · 0 评论 -
Kubernetes笔记(二十六)--Helm安装和使用
Helm安装使用Helm这个东西其实早有耳闻,但是一直没有用在生产环境,而且现在对这货的评价也是褒贬不一。正好最近需要再次部署一套测试环境,对于单体服务,部署一套测试环境我相信还是非常快的,但是对于微服务架构的应用,要部署一套新的环境,就有点折磨人了,微服务越多、你就会越绝望的。虽然我们线上和测试环境已经都迁移到了kubernetes环境,但是每个微服务也得维护一套yaml文件,而且每个环境下的...原创 2019-08-19 11:35:11 · 1135 阅读 · 1 评论 -
Kubernetes筆記(三十五)--Node和Pod親和性、污點、容忍
Kubernetes 亲和性调度一般情况下我们部署的 Pod 是通过集群的自动调度策略来选择节点的,默认情况下调度器考虑的是资源足够,并且负载尽量平均,但是有的时候我们需要能够更加细粒度的去控制 Pod 的调度,比如我们内部的一些服务 gitlab 之类的也是跑在Kubernetes集群上的,我们就不希望对外的一些服务和内部的服务跑在同一个节点上了,害怕内部服务对外部的服务产生影响;但是有的时候...原创 2019-09-04 17:51:51 · 817 阅读 · 0 评论