Kubernetes学习之原理】的更多相关文章

Kubernetes基本概念 一.Label selector在kubernetes中的应用场景 1.kube-controller-manager的replicaSet通过定义的label 来筛选要监控的副本数量,使pod副本数量始终符合预期设定 2.kube-proxy进程通过service的label来选择对应的Pod.自动建立每个service到对应Pod的请求转发路由表,从而实现service的智能负载均衡机制 二.kube-controller-manager之replicaSet控…
Kubernetes基础篇 环境说明 版本说明 系统环境 Centos 7.2 Kubernetes版本 v1.11.2 Docker版本 v18.09 Kubernetes学习之路(一)之概念和架构解析和证书创建和分发 Kubernetes学习之路(二)之ETCD集群二进制部署 Kubernetes学习之路(三)之Mater节点二进制部署 Kubernetes学习之路(四)之Node节点二进制部署 Kubernetes学习之路(五)之Flannel网络二进制部署和测试 Kubernetes学习…
读Flask源代码学习Python--config原理 个人学习笔记,水平有限.如果理解错误的地方,请大家指出来,谢谢!第一次写文章,发现好累--!. 起因   莫名其妙在第一份工作中使用了从来没有接触过的Python,从那之后就对Python有了莫名其妙的好感.前段时间用了Flask做了几个不大不小的项目,项目过程中学到不少以前没注意到的知识点.于是就有了这个系列,希望最后能坚持完成. Flask是什么?   根据Flask官网介绍: Flask 是一个用于 Python 的微型网络开发框架.…
Docker Kubernetes  服务发现原理详解 服务发现支持Service环境变量和DNS两种模式: 一.环境变量 (默认) 当一个Pod运行到Node,kubelet会为每个容器添加一组环境变量,Pod容器中程序就可以使用这些环境变量发现Service. 环境变量名格式如下: {SVCNAME}_SERVICE_HOST {SVCNAME}_SERVICE_PORT 注:其中服务名和端口名转为大写,连字符转换为下划线. 限制: 1)Pod和Service的创建顺序是有要求的,Servi…
参考文章: 1.kubernetes学习资源 1. <Kubernetes与云原生应用>系列之Kubernetes的系统架构与设计理念 2.[docker专业介绍的网站dockerinfo](DockerInfo-Docker容器技术教程,Docker信息传播和服务平台) 3.[docker专业介绍的网站dockone](DockOne.io) 4.[Stuq课程-从理论到生产环境实战:掌握Docker大规模部署和管理](从理论到生产环境实战:掌握Docker大规模部署和管理) 5.[kube…
深入浅出深度学习:原理剖析与python实践 目录: 第1 部分 概要 1 1 绪论 2 1.1 人工智能.机器学习与深度学习的关系 3 1.1.1 人工智能——机器推理 4 1.1.2 机器学习——数据驱动的科学 5 1.1.3 深度学习——大脑的仿真 8 1.2 深度学习的发展历程 8 1.3 深度学习技术概述 10 1.3.1 从低层到高层的特征抽象 11 1.3.2 让网络变得更深 13 1.3.3 自动特征提取 14 1.4 深度学习框架 15 2 Theano 基础 19 2.1 符…
个人笔记,仅本人查阅使用,不保证正确. 零.微服务 微服务架构专注于应用解耦合,通过将应用彻底地组件化和服务化,每个微服务只包含一个非常小的功能,比如权限管理.日志收集等等.由这一组微服务组合起来,提供一个应用的完整功能. 这样的好处是: 开发更方便了.各微服务不再需要关注其他服务内的细节,直接调用 API 就行. 方便持续集成.升级只需要重新部署更新了的微服务,不需要更新整个应用. 方便拓展.遇到性能瓶颈时,只需要拓展瓶颈所在的微服务,不需要拓展整个应用. 当然,这也带来了一些难点: 业务型微…
概述 本文核心问题是:如何升级应用. 对于Pod的更新有两种策略: 一是删除全部旧Pod之后再创建新Pod.好处是,同一时间只会有一个版本的应用存在:缺点是,应用有一段时间不可用. 二是先创建新Pod,再删除旧Pod.可以一次性创建全部,再删除全部,也可以逐渐创建删除.好处是应用一直可用,缺点是要同时支持两个版本. 蓝绿部署 对于应用的版本v1和版本v2: 在运行v1前,流量一直都在v2上 部署v1,然后测试通过后,将流量切换到v2,v2就成为了新的生产环境 一旦v2出现问题,可以在切回v1 金…
本系列第四篇文章,也是最后一篇 首先,我们先看看Composer的源码从哪里看起.当然,请您先准备好源码. composer init或者直接install之后,自动生成了一个vendor目录,这时您需要在文件中手动的require这个vendor目录下的autoload.php文件,其实这个文件又载入了vendor/composer/autoload_real.php. 在autoload_real.php中,我们发现了熟悉的spl_autoload_register函数.但这个文件最大的作用…
概述什么是 JobJob 入门示例Job 的 specPod Template并发问题其他属性 概述 Job 是主要的 Kubernetes 原生 Workload 资源之一,是在 Kubernetes 之上运行批处理任务最简单的方式,在 AI 模型训练等场景下最基础的实现版本就是拉起一个 Job 来完成一次训练任务,然后才是各种自定义 "Job" 实现进阶处理,比如分布式训练需要一个 "Job" 同时拉起多个 Pod,但是每个 Pod 的启动参数会有差异.所以深入…
概述程序入口Job controller 的创建Controller 对象NewController()podControlEventHandlerJob AddFunc DeleteFuncJob UpdateFuncPod AddFuncPod UpdateFuncPod DeleteFunc 概述 源码版本:kubernetes master 分支 commit-fe62fc(2021年10月14日) Job 是主要的 Kubernetes 原生 Workload 资源之一,是在 Kube…
概述Job controller 的启动processNextWorkItem()核心调谐逻辑入口 - syncJob()Pod 数量管理 - manageJob()小结 概述 源码版本:kubernetes master 分支 commit-fe62fc(2021年10月14日) Job 是主要的 Kubernetes 原生 Workload 资源之一,是在 Kubernetes 之上运行批处理任务最简单的方式,在 AI 模型训练等场景下最基础的实现版本就是拉起一个 Job 来完成一次训练任务…
目录 一.看图说K8S 二.K8S的概念和术语 三.K8S集群组件 1.Master组件 2.Node组件 3.核心附件 四.K8S的网络模型 五.Kubernetes的核心对象详解 1.Pod资源对象 2.Controller 3.Service 一.看图说K8S 先从一张大图来观看一下K8S是如何运作的,再具体去细化K8S的概念.组件以及网络模型. 从上图,我们可以看到K8S组件和逻辑及其复杂,但是这并不可怕,我们从宏观上先了解K8S是怎么用的,再进行庖丁解牛.从上图我们可以看出: Kube…
一.关于Kubernetes初学的疑惑 就在这场因"容器"而起的技术变革中,kubernetes项目已经成为容器技术的事实标准,重新定义了基础设置领域对应用编排与管理的种种可能 1.为什么容器里只能跑“一个进程”?2.为什么我原先一直在用的某个 JVM 参数,在容器里就不好使了?3.为什么 Kubernetes 就不能固定 IP 地址?容器网络连不通又该如何取Debug?4.Kubernetes 中 StatefulSet 和 Operator 到底什么区别?PV 和 PVC 这些概念…
0. 前言 最近在学习张磊老师的 深入剖析Kubernetes 系列课程,最近学到了 Kubernetes 容器持久化存储部分 现对这一部分的相关学习和体会做一下整理,内容参考 深入剖析Kubernetes 原文,仅作为自己后续回顾方便 希望详细了解的同学可以移步至原文支持一下原作者 参考原文:深入剖析Kubernetes 1. PV.PVC.StorageClass 关系梳理 1.1 相关概念 PV 表示是持久化存储数据卷对象.这个 API 对象定义了一个持久化存储在宿主机上的目录(如 NFS…
服务介绍 服务是一种为一组相同功能的pod提供单一不变接入点的资源.当服务存在时,他的IP和端口不会改变.客户端通过IP和端口建立连接,这些连接会被路由到任何一个pod上.如此,客户端不需要知道每个单独提供服务的pod地址,这些pod也可以随时被创建.删除. 与ReplicationController一样,服务通过标签选择器决定管理哪些pod. 准备镜像 首先要准备一个能够提供web服务的镜像,作者将镜像存储到了阿里云的镜像仓库,读者可以跳过构建过程相关过程,直接使用作者构建好的镜像(但是不建…
上文我们学习了ThreadLocal的基本用法以及基本原理,ThreadLocal中的方法并不多,基本用到的也就get.set.remove等方法,但是其核心逻辑还是在定义在ThreadLocal内部的静态内部类ThreadLocalMap中,里面有很多设计非常精妙的地方,本文中我们就从ThreadLocalMap的角度入手深入学习ThreadLocal的原理. 1. 基本数据结构 按照官方的解释是:这是一个定制化的Hash类型的map,专门用来保存线程本地变量.其内部采用是通过一个自定义的En…
本文收录在容器技术学习系列文章总目录 一.简介 1.Kubernetes代码托管在GitHub上:https://github.com/kubernetes/kubernetes/. 2.Kubernetes是一个开源的,容器集群管理系统,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制.通过Kubernetes你可以: 快速部署应用 快速扩展应用 无缝对接新的应用功能 节省资源,优化硬件资源的使用 3…
本文收录在容器技术学习系列文章总目录 一.介绍 Kubernetes Dashboard是Kubernetes集群的基于Web的通用UI.它允许用户管理在群集中运行的应用程序并对其进行故障排除,以及管理群集本身. 二.搭建dashboard 1.编写yaml文件 借鉴GitHub,修改了image的下载地址和pod的一些配置 [root@master ~]# vim dashboard.yaml # Filename: dashboard.yaml # Revision: 1.0 # Date:…
目录 1.环境说明 2.准备工作 3.分步骤安装 3.1.创建证书和安装准备 3.2.安装etcd集群 3.3.安装docker 3.4.安装master节点 3.5.安装node节点 3.6.部署集群网络 3.7.部署集群插件(dns,dashboard) 3.8.测试DNS解析 学习文档:https://github.com/gjmzj/kubeasz/ 1.环境说明 IP 主机名 角色 虚拟机配置 192.168.56.11 k8s-master deploy.master1.lb1.et…
1 神经传递的原理 人类的神经元传递及其作用: 这里有几个关键概念: 树突 - 接受信息 轴突 - 输出信息 突触 - 传递信息 将其延伸到神经元中,示意图如下: 将上图整理成数学公式,则有 y = activation function( x1*w1 + x2*w2 + x3*w3 + b ) 相应说明: x - 输入值,仿真输入神经元,上图中有:x1.x2.x3 w - 权重值,仿真输入神经元轴突,传送信息,上图中有:w1.w2.w3 b - 偏差值,仿真接受神经元树突,代表接受神经元容易被…
一.Ingress 简介 在Kubernetes中,服务和Pod的IP地址仅可以在集群网络内部使用,对于集群外的应用是不可见的.为了使外部的应用能够访问集群内的服务,在Kubernetes 目前 提供了以下几种方案: NodePort LoadBalancer Ingress Ingress 组成 ingress controller 将新加入的Ingress转化成Nginx的配置文件并使之生效 ingress服务 将Nginx的配置抽象成一个Ingress对象,每添加一个新的服务只需写一个新的…
这段时间项目组内想要引入Kubernetes,作为第二代容器调度引擎,故最近在系统的学习Kubernetes.整理了一些学习笔记,心得,放到博客中,一来记录自己的学习经过,二来看能否帮到有需要的同学.详情见下: 1.Kubernetes核心概念总结——介绍基础架构.Pod.RC.Job.Service.Deployment等. 2.Centos7部署Kubernetes集群——基于Centos7,yum安装K8s,并配置集群,最后部署了容器覆盖网络——Flannel. 3.基于kubernete…
目录 1.Helm的概念和架构 2.部署Helm (1)下载helm (2)部署Tiller 3.helm的使用 4.chart 目录结构 5.chart模板 6.定制安装MySQL chart (1)chart安装准备 (2)定制化安装chart (3)升级和回滚release 7.自定义chart (1)创建chart (2)调试chart (3)安装chart (4)将chart添加到仓库 8.总结 1.Helm的概念和架构 每个成功的软件平台都有一个优秀的打包系统,比如 Debian.U…
目录 1.资源指标和资源监控 2.Weave Scope监控集群 (1)Weave Scope部署 (2)使用 Scope (3)拓扑结构 (4)实时资源监控 (5)在线操作 (6)强大的搜索功能 2.核心指标监控之metrics-server 1.资源指标和资源监控 一个集群系统管理离不开监控,同样的Kubernetes也需要根据数据指标来采集相关数据,从而完成对集群系统的监控状况进行监测.这些指标总体上分为两个组成:监控集群本身和监控Pod对象,通常一个集群的衡量性指标包括以下几个部分: 节…
Kubernetes应用部署模型解析(原理篇) 十多年来Google一直在生产环境中使用容器运行业务,负责管理其容器集群的系统就是Kubernetes的前身Borg.其实现在很多工作在Kubernetes项目上的Google开发者先前就在Borg这个项目上工作.多数Kubernetes的应用部署模型的思想都起源于Borg,了解这些模型是掌握Kubernetes的关键.Kubernetes的API版本目前是v1,本文以代码0.18.2版为基础来介绍它的应用部署模型,最后我们用一个简单的用例来说明部…
K8S Node节点部署 1.部署kubelet (1)二进制包准备 [root@linux-node1 ~]# cd /usr/local/src/kubernetes/server/bin/ [root@linux-node1 bin]# cp kubelet kube-proxy /opt/kubernetes/bin/ [root@linux-node1 bin]# scp kubelet kube-proxy 192.168.56.120:/opt/kubernetes/bin/ [r…
一.什么是DaemonSet? DaemonSet 确保全部(或者一些)Node 上运行一个 Pod 的副本.当有 Node 加入集群时,也会为他们新增一个 Pod .当有 Node 从集群移除时,这些 Pod 也会被回收.删除 DaemonSet 将会删除它创建的所有 Pod. 使用 DaemonSet 的一些典型用法: 运行集群存储 daemon,例如在每个 Node 上运行 glusterd.ceph. 在每个 Node 上运行日志收集 daemon,例如fluentd.logstash.…
一.Service的概念 运行在Pod中的应用是向客户端提供服务的守护进程,比如,nginx.tomcat.etcd等等,它们都是受控于控制器的资源对象,存在生命周期,我们知道Pod资源对象在自愿或非自愿终端后,只能被重构的Pod对象所替代,属于不可再生类组件.而在动态和弹性的管理模式下,Service为该类Pod对象提供了一个固定.统一的访问接口和负载均衡能力.是不是觉得一堆话都没听明白呢???? 其实,就是说Pod存在生命周期,有销毁,有重建,无法提供一个固定的访问接口给客户端.并且为了同类…
目录 一.什么是Ingress? 1.Pod 漂移问题 2.端口管理问题 3.域名分配及动态更新问题 二.如何创建Ingress资源 三.Ingress资源类型 1.单Service资源型Ingress 四.Ingress Nginx部署 1.部署Ingress controller 2.部署后端服务 3.部署ingress-nginx service 4.部署ingress 四.增加tomcat服务 四.构建TLS站点 一.什么是Ingress? 从前面的学习,我们可以了解到Kubernete…