kubernetes
文章平均质量分 84
坚持的道路注定孤独
这个作者很懒,什么都没留下…
展开
-
带你玩转kubernetes-k8s(第64篇-Kubernetes之使用Web UI Dashboard 管理集群,Helm应用包管理工具)
Kubernetes的Web UI网页管理工具kubernetes-dashboard可提供部署应用、资源对象管理、容器日志查询、系统监控等常用的集群管理功能。为了在页面上显示系统资源的使用情况,要求部署Metrics Server可通过https://rawgit.com/kubernetes/dashboard/ master/src/deploy/kubernetes-dashboard...原创 2019-09-17 22:13:17 · 793 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第43篇:深入分析k8s网络原理[Docker的网络实现])
Docker的网络实现标准的Docker支持以下4类网络模式。◎ host模式:使用--net=host指定。◎ container模式:使用--net=container:NAME_or_ID指定。◎ none模式:使用--net=none指定。◎ bridge模式:使用--net=bridge指定,为默认设置。 在Kubernetes管理模式下通常只会使用bridge...原创 2019-08-16 20:28:16 · 1680 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第39篇:深入分析集群安全机制二[RBAC授权模式])
RBAC授权模式详解 RBAC(Role-Based Access Control,基于角色的访问控制)在Kubernetes的1.5版本中引入,在1.6版本时升级为Beta版本,在1.8版本时升级为GA。作为Kubeadm安装方式的默认选项,足见其重要程度。相对于其他访问控制方式,新的RBAC具有如下优势。 对集群中的资源和非资源权限均有完整的覆盖。 整个RBAC完全由几个AP...原创 2019-08-12 17:01:44 · 544 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第42篇:深入分析k8s网络原理[veth设备对、网桥、iptables、Netfilter、路由])
关于Kubernetes网络,我们通常有如下问题需要回答。 kubernetes的网络模型是什么? Docker背后的网络基础是什么? Docker自身的网络模型和局限是什么? Kubernetes的网络组件之间是怎么通信的? 外部如何访问Kubernetes集群? 有哪些开源组件支持Kubernetes的网络模型?本章节分别回答这...原创 2019-08-15 19:07:06 · 2223 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第46篇:深入分析k8s网络原理[CNM、CNI]网络模型)
随着容器技术在企业生产系统中的逐步落地,用户对容器云的网络特性要求也越来越高。跨主机容器间的网络互通已经成为基本要求,更高的要求包括容器固定IP地址、一个容器多个IP地址、多个子网隔离、ACL控制策略、与SDN集成等。目前主流的容器网络模型主要有Docker公司提出的Container Network Model(CNM)模型和CoreOS公司提出的Container Network ...原创 2019-08-20 18:12:03 · 1373 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第45篇:深入分析k8s网络原理[Pod和Service])
Docker给我们带来了不同的网络模式,Kubernetes也以一种不同的方式来解决这些网络模式的挑战,但其方式有些难以理解,特别是对于刚开始接触Kubernetes的网络的开发者来说。我们在前面学习了Kubernetes、Docker的理论,本节将通过一个完整的实验,从部署一个Pod开始,一步一步地部署那些Kubernetes的组件,来剖析Kubernetes在网络层是如何实现及工...原创 2019-08-20 00:40:57 · 5281 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第44篇:利用DockerFile+deployment部署memcache集群)
由于今天在公司搭建memcache集群,就把今天的工作过程记录一下,与大家分享一下。制作镜像环境:centos7.3.1611基础镜像(可以自行去docker hub上面下载)也可以在下面连接下载https://pan.baidu.com/s/1OdgeDOdKO5slAPD2005isQ部署方案:Memcache版本:1.4.33M...原创 2019-08-19 23:45:37 · 2541 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第49篇:深入分析k8s网络原理-[直接路由,Calico部署])
我们知道,docker0网桥上的IP地址在Node网络上是看不到的。从一个Node到一个Node内的docker0是不通的,因为它不知道某个IP地址在哪里。如果能够让这些机器知道对端docker0地址在哪里,就可以让这些docker0互相通信了。这样,在所有Node上运行的Pod就都可以互相通信了。 我们可以通过部署MultiLayer Switch(MLS)来实现...原创 2019-08-23 16:23:18 · 3579 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第41篇:深入分析集群安全机制四[Secret, PodSecurityPolicy])
Secret私密凭据 上一节提刀Secret对象,Secret的主要作用是保管私密数据,比如密码、OAuth Tokens、 SSH Key等信息。将这些私密信息放在Secret对象中比直接放在Pod或Docker Image中更安全,也更便于使用和分发。 下面的例子用于创建一个Secret:apiVersion: v1kind: Secretmetadata: n...原创 2019-08-14 15:56:21 · 4248 阅读 · 2 评论 -
带你玩转kubernetes-k8s(第35篇:核心组件运行机制-kube-proxy与 manger-controller)
独特的Kubernetes Proxy API接口 前面讲到,Kubernetes API Server最主要的REST接口是资源对象的增、删、改、查接口,除此之外,它还提供了一类很特殊的REST接口—Kubernetes Proxy API接口,这类接口的作用是代理REST请求,即Kubernetes API Server把收到的REST请求转发到某个Node上的kubelet守护...原创 2019-08-07 21:24:55 · 584 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第38篇:深入分析集群安全机制)
Kuberetes通过一系列机制来实现集群的安全控制,其中包括API Server的认证授权、准入控制机制及保护敏感信息的Secret机制等。集群的安全性必须考虑如下几个目标。(1) 保证容器与其所在宿主机的隔离。(2) 限制容器给基础设施或其他容器带来的干扰。(3) 最小权限原则一合理限制所有组件的权限,确保组件只执行它被授权的行为,通过限制单个组件的能力来限制它的权限...原创 2019-08-09 20:08:33 · 584 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第40篇:深入分析集群安全机制三[Admission Control, Service Account])
Adminssion Control 突破了之前所说的认证和鉴权两道关卡之后,客户端的调用请求就能够得到API Server的真正响应了吗?答案是:不能!这个请求还需要通过Admission Control(准入控制)所控制的一个准入控制链的层层考验,才能获得成功的响应。Kubernetes官方标准的“关卡”有30多个,还允许用户自定义扩展。 Admission C...原创 2019-08-13 23:02:33 · 763 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第34篇:核心组件运行机制-kube-apiserver)
Kubernetes API Server原理解析 总体来看,Kubernetes API Server的核心功能是提供Kubernetes各类资源对象(如 Pod、RC、Service等)的增、删、改、查及Watch等HTTP Rest接口,成为集群内各个功能模块之间数据交互和通信的中心枢纽,是整个系统的数据总线和数据中心。除此之外,它还有以下一些功能特性。 (1) 是...原创 2019-08-07 01:23:44 · 633 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第31篇:k8s-深入掌握Service:DNS服务详细讲解)
DNS服务搭建和配置指南 作为服务发现机制的基本功能,在集群内需要能够通过服务名对服务进行访问,这就需要一个集群范围内的DNS服务来完成从服务名到ClusterIP的解析。 DNS服务在Kubernetes的发展过程中经历了3个阶段,接下来会继续讲解。 在k8s1.2版本时,DNS服务是由SkyDNS提供的,它由4个容器组成:kube2sky、skydns、etcd...原创 2019-08-02 00:53:32 · 2872 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第37篇:核心组件运行机制-Kubelete)
Kubelet运行机制解析 在Kubernetes集群中,在每个Node(又称Minion)上都会启动一个kubelet服务进程。该进程用于处理Master下发到本节点的任务,管理Pod及Pod中的容器。每个kubelet进程都会在API Server上注册节点自身的信息,定期向Master汇报节点资源的使用情况,并通过cAdvisor监控容器和节点资源。节点管理节点通过设置kub...原创 2019-08-08 15:36:12 · 1126 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第47篇:深入分析k8s网络原理[在K8s中使用网络插件)
Kubernetes目前支持两种网络插件的实现。◎ CNI插件:根据CNI规范实现其接口,以与插件提供者进行对接。◎ kubenet插件:使用bridge和host-local CNI插件实现一个基本的cbr0。为了在Kubernetes集群中使用网络插件,需要在kubelet服务的启动参数上设置下面两个参数。◎ --network-plugin-dir:kubelet启动时扫描网络插件的...原创 2019-08-21 22:29:00 · 1347 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第48篇:深入分析k8s网络原理[开源的网络组件Flannel])
Kubernetes的网络模型假定了所有Pod都在一个可以直接连通的扁平网络空间中。这在GCE里面是现成的网络模型,Kubernetes假定这个网络也存在。而在私有云里搭建Kubernetes集群,就不能假定这种网络已经存在了。我们需要自己实现这个网络假设,将不同节点上的Docker容器之间的相互访问先打通,然后运行Kubernetes。 目前已经有多个开源组件支持容器网络模...原创 2019-08-22 19:46:53 · 1392 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第63篇-Kubernetes之集群统一日志管理)
在Kubernetes集群环境中,一个完整的应用或服务都会涉及为数众多的组件运行,各组件所在的Node及实例数量都是可变的。日志子系统如果不做集中化管理,则会给系统的运维支撑造成很大的困难,因此有必要在集群层面对日志进行统一收集和检索等工作。在容器中输出到控制台的日志,都会以*-json.log的命名方式保存在/var/lib/docker/containers/目录下,这就为日志采集和后续处...原创 2019-09-16 22:12:20 · 974 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第62篇-Kubernetes之Kubernetes集群监控)
Kubernetes的早期版本依靠Heapster来实现完整的性能数据采集和监控功能,Kubernetes从1.8版本开始,性能数据开始以Metrics API的方式提供标准化接口,并且从1.10版本开始将Heapster替换为Metrics Server。在Kubernetes新的监控体系中,Metrics Server用于提供核心指标(Core Metrics),包括Node、Pod的CPU和...原创 2019-09-11 22:16:43 · 828 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第61篇-Kubernetes之资源紧缺时的Pod驱逐机制)
资源紧缺时的Pod驱逐机制如何在系统硬件资源紧缺的情况下保证Node的稳定性,是kubelet需要解决的一个重要问题。尤其对于内存和磁盘这种不可压缩的资源,紧缺就意味着不稳定。下面对驱逐的策略、信号、阈值、监控频率和驱逐操作进行详细说明。驱逐策略kubelet持续监控主机的资源使用情况,并尽量防止计算资源被耗尽。一旦出现资源紧缺的迹象,kubelet就会主动终止一个或多个Pod的运行,...原创 2019-09-10 22:02:17 · 3597 阅读 · 1 评论 -
带你玩转kubernetes-k8s(第60篇-Kubernetes之Kubernetes资源管理5)
ResourceQuota和LimitRange实践根据前面对资源管理的介绍,这里将通过一个完整的例子来说明如何通过资源配额和资源配置范围的配合来控制一个命名空间的资源使用。集群管理员根据集群用户的数量来调整集群配置,以达到这个目的:能控制特定命名空间中的资源使用量,最终实现集群的公平使用和成本控制。需要实现的功能如下:◎ 限制运行状态的Pod的计算资源用量。◎ 限制持久存储卷的...原创 2019-09-09 20:54:58 · 575 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第59篇-Kubernetes之Kubernetes资源管理4)
资源配额管理(Resource Quotas)如果一个Kubernetes集群被多个用户或者多个团队共享,就需要考虑资源公平使用的问题,因为某个用户可能会使用超过基于公平原则分配给其的资源量。Resource Quotas就是解决这个问题的工具。通过ResourceQuota对象,我们可以定义资源配额,这个资源配额可以为每个命名空间都提供一个总体的资源使用的限制:它可以限制命名空间中某种类...原创 2019-09-07 22:51:11 · 531 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第58篇-Kubernetes之Kubernetes资源管理3)
资源服务质量管理(Resource Qos)本节对Kubernetes如何根据Pod的Requests和Limits配置来实现针对Pod的不同级别的资源服务质量控制(QoS)进行说明。在Kubernetes的资源QoS体系中,需要保证高可靠性的Pod可以申请可靠资源,而一些不需要高可靠性的Pod可以申请可靠性较低或者不可靠的资源。在上节中讲到了容器的资源配置分为Requests和Limit...原创 2019-09-06 00:15:43 · 602 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第57篇-Kubernetes之Kubernetes资源管理2)
5. 计算资源相关创建问题分析(1)Pod状态为Pending,错误信息为FailedScheduling。如果Kubernetes调度器在集群中找不到合适的节点来运行Pod,那么这个Pod会一直处于未调度状态,直到调度器找到合适的节点为止。每次调度器尝试调度失败时,Kubernetes都会产生一个事件,我们可以通过下面这种方式来查看事件的信息kubectl describe pod &...原创 2019-09-04 21:30:33 · 2260 阅读 · 1 评论 -
带你玩转kubernetes-k8s(第56篇-Kubernetes之Kubernetes资源管理)
本节先讲解Pod的两个重要参数:CPU Request与Memory Request。在大多数情况下,我们在定义Pod时并没有定义这两个参数,此时Kubernetes会认为该Pod所需的资源很少,并可以将其调度到任何可用的Node上。这样一来,当集群中的计算资源不很充足时,如果集群中的Pod负载突然加大,就会使某个Node的资源严重不足。为了避免系统挂掉,该Node会选择“清理”某些Pod来释...原创 2019-09-03 21:45:08 · 651 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第55篇-Kubernetes之Kubernetes集群管理)
Node的管理Node的隔离与恢复在硬件升级、硬件维护等情况下,我们需要将某些Node隔离,使其脱离Kubernetes集群的调度范围。Kubernetes提供了一种机制,既可以将Node纳入调度范围,也可以将Node脱离调度范围。创建配置文件unschedule_node.yaml,在spec部分指定unschedulable为true:apiVersion: v1kind:...原创 2019-09-02 23:29:13 · 370 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第54篇-Kubernetes之使用API聚合机制扩展API资源)
API聚合机制是Kubernetes 1.7版本引入的特性,能够将用户扩展的API注册到kube-apiserver上,仍然通过API Server的HTTP URL对新的API进行访问和操作。为了实现这个机制,Kubernetes在kube-apiserver服务中引入了一个API聚合层(API Aggregation Layer),用于将扩展API的访问请求转发到用户服务的功能。设计API...原创 2019-09-01 15:06:05 · 3900 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第53篇-Kubernetes API版本的演进策略)
为了在兼容旧版本的同时不断升级新的API,Kubernetes提供了多版本API的支持能力,每个版本的API都通过一个版本号路径前缀进行区分,例如/api/v1beta3。在通常情况下,新旧几个不同的API版本都能涵盖所有的Kubernetes资源对象,在不同的版本之间,这些API接口存在一些细微差别。Kubernetes开发团队基于API级别选择版本而不是基于资源和域级别,是为了确保API能够清...原创 2019-08-29 18:50:37 · 2872 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第52篇-Kubernetes开发指南)
本章将引入REST的概念,详细说明Kubernetes API的概念和使用方法,并举例说明如何基于Jersey和Fabric8框架访问Kubernetes API,深入分析基于这两个框架访问Kubernetes API的优缺点,最后对Kubernetes API的扩展进行详细说明。下面从REST开始说起。REST简述REST(Representational State Tr...原创 2019-08-28 22:33:46 · 3316 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第51篇:共享储存原理-[GlusterFS+Heketi+CSI])
动态存储管理实战: GlusterFS本节以GlusterFS为例,从定义StorageClass、创建GlusterFS和Heketi服务、用户申请PVC到创建Pod使用存储资源,对StorageClass和动态资源分配进行详细说明,进一步剖析Kubernetes的存储机制。(ps: 第26篇有详细的部署过程,此处不上传操作图片了)准备工作为了能够使用GlusterFS,首先在计划用...原创 2019-08-27 16:54:45 · 3238 阅读 · 1 评论 -
带你玩转kubernetes-k8s(第50篇:共享储存原理-[共享储存机制概述])
共享储存机制概述 Kubernetes对于有状态的容器应用或者对数据需要持久化的应用,不仅需要将容器内的目录挂载到宿主机的目录或者emptyDir临时存储卷,而且需要更加可靠的存储来保存应用产生的重要数据,以便容器应用在重建之后仍然可以使用之前的数据。不过,存储资源和计算资源(CPU/内存)的管理方式完全不同。为了能够屏蔽底层存储实现的细节,让用户方便使用,同时让管理员方便管理,K...原创 2019-08-26 18:03:50 · 1770 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第36篇:核心组件运行机制-Sheduler)
Scheduler 原理解析 前面深入分析了Controller Manager及它所包含的各个组件的运行机制,本节将继续对Kubernetes中负责Pod调度的重要功能模块—Kubernetes Scheduler的工作原理和运行机制做深入分析。 Kubernetes Scheduler在整个系统中承担了“承上启下”的重要功能,“承上”是指它负责接收Controller ...原创 2019-08-08 11:04:54 · 404 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第33篇:k8s-深入掌握Service:DNS服务详细讲解第三部分)
Ingress的策略配置技巧 为了实现灵活的负载分发策略,Ingress策略可以按多种方式进行配置,下面对几种常见的Ingress转发策略进行说明。1.转发到单个后端服务上 基于这种设置,客户端到Ingress Controller的访问请求都将被转发到后端的唯一Servie上,在这种情况下Ingress无须定义任何Rule。 通过如下所示的设置,对Ingress ...原创 2019-08-05 20:11:57 · 466 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第16篇:k8s-深入掌握Pod-玩转Pod调度)
上节为大家讲解了Pod的健康检查和服务可用性检查,这节我就带着大家更深层次的去学习Pod玩转Pod调度 在k8s平台上,我们很少会直接创建一个Pod,在大多数情况下会通过RC、Deployment、DaemonSet、Job等控制器完成对一组Pod副本的创建,调度及全生命周期的自动控制任务。 在最早的k8s版本里面没有这么多Pod副本控制器的,只有一个Pod副本控制器...原创 2019-07-15 23:36:48 · 595 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第八篇:k8s-Persisten Volume、Namespace、Annotation、ConfigMap概念及其实例)
今天为大家讲解Persisten Volume (PV),挺重要的一个概念,希望大家可以好好看哦。Persisten Volume Volume 是被定义在Pod上的,属于计算资源的一部分,而实际上,网络存储是相对独立于计算资源而存在的一种实体资源。Persisten Volume(PV)和与之相关联的Persistent Volume Claim(P...原创 2019-07-05 23:57:16 · 1321 阅读 · 1 评论 -
带你玩转kubernetes-k8s(第12篇:k8s-深入掌握Pod-Pod容器共享Volume)
这一节我们继续来深入讲解Pod。Pod容器共享Volume 同一个Pod中的多个容器能够共享Pod级别的存储卷Volume。Volume可以被定义为各种类型,多个容器各自进行挂载操作,将一个Volume挂载为容器内部需要的目录。 在下面的实例中,Pod内包含两个容器:tomcat和busybox,在Pod级别设置Volume “app-logs”,用于tomcat...原创 2019-07-11 01:17:42 · 1108 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第七篇:k8s-Job,Volume概念及其实例)
哈喽~大家好,Service的基本概念讲了一个大致的框架,不知道大家有没有看到,如果不懂,欢迎大家前来一起讨论哦。 现在我们开始接下来的内容。Job 批处理任务通常并行(或串行)启动多个计算进程去处理一批工作项(work item),在处理完成后,整个批处理任务结束。k8s支持批处理类型的应用,我们可以通过Kubernetes Job这种资源对象定义并启动一个批处...原创 2019-07-05 00:08:39 · 1749 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第11篇:k8s-深入掌握Pod-Pod的基本用法)
上一篇我们讲解了Pod.Yaml的定义,以及各个参数的作用。那么我们这一篇就深入的讲解Pod的基本用法。Pod的基本用法 在对Pod的用法进行说明之前,有必要先对Docker容器中应用的运行要求进行说明。 在使用Docker时,可以使用docker run命令创建并命令创建并启动一个容器。而在k8s系统中对长时间运行的容器要求是:其主程序需要一直...原创 2019-07-10 00:35:30 · 721 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第15篇:k8s-深入掌握Pod-上节遗留问题解决方案,Pod生命周期和重启策略)
上篇我们在使用Downward API将Pod的labels 信息 annotations信息过载到Volume这个实例中出现了问题,本节先解决上篇的内容再回头讲解今天的内容。 上篇中,我们mouthPaht指定的目录的是/etc下面的目录,由于docker的容器的目录结构,docker容器是对下层的文件系统有只对权限,但是没有修改权限,所以导致报一些了rootfs的错误。...原创 2019-07-13 16:24:21 · 1026 阅读 · 0 评论 -
带你玩转kubernetes-k8s(第10篇:k8s-深入掌握Pod-Pod定义详解)
本章将对Kubernetes如何发布与管理容器应用进行详细说明和示例,主要包括Pod和容器的使用、应用配置管理、Pod的控制和调度管理、Pod的升级和回滚,以及Pod的扩缩容机制等内容。 1 Pod 定义详解。YAML格式的Pod定义文件如下: apiVersion:v1kind: Podmetadata: name: string n...原创 2019-07-09 18:25:20 · 995 阅读 · 0 评论