摘要:一 实践规划 1.1 实践需求 本实验通过资源配额和资源配置范围的配合来控制一个命名空间的资源使用。 集群管理员根据集群用户的数量来调整集群配置,以达到这个目的:能控制特定命名空间中的资源使用量,最终实现集群的公平使用和成本控制。 需要实现的功能如下: 限制运行状态的Pod的计算资源用量。 限制持久 阅读全文
posted @ 2020-04-08 10:43 木二 阅读 (38) 评论 (0) 编辑
摘要:一 实践规划 1.1 实践需求 本实验通过资源配额和资源配置范围的配合来控制一个命名空间的资源使用。 集群管理员根据集群用户的数量来调整集群配置,以达到这个目的:能控制特定命名空间中的资源使用量,最终实现集群的公平使用和成本控制。 需要实现的功能如下: 限制运行状态的Pod的计算资源用量。 限制持久 阅读全文
posted @ 2020-04-08 10:43 木二 阅读 (38) 评论 (0) 编辑
摘要:一 资源管理 1.1 资源调度机制 对于Kubernetes资源,有两个重要参数:CPU Request与Memory Request。 通常在定义Pod时并没有定义这两个参数,此时Kubernetes会认为该Pod所需的资源很少,并可以将其调度到任何可用的Node上。因此,当集群中的计算资源不很充 阅读全文
posted @ 2020-04-07 10:33 木二 阅读 (25) 评论 (0) 编辑
摘要:一 Node管理 1.1 Node隔离——方式一 在硬件升级、硬件维护等情况下,我们需要将某些Node隔离,使其脱离Kubernetes集群的调度范围。Kubernetes提供了一种机制,既可以将Node纳入调度范围,也可以将Node脱离调度范围。 创建配置文件unschedule_node.yam 阅读全文
posted @ 2020-04-03 15:12 木二 阅读 (40) 评论 (0) 编辑
摘要:一 CSI存储机制 1.1 CSI简介 Kubernetes从1.9版本开始引入容器存储接口Container Storage Interface(CSI)机制,用于在Kubernetes和外部存储系统之间建立一套标准的存储管理接口,通过该接口为容器提供存储服务。 1.2 CSI的设计背景 Kube 阅读全文
posted @ 2020-04-03 15:04 木二 阅读 (23) 评论 (0) 编辑
摘要:一 StoragClass 1.1 StorageClass概述 StorageClass作为对存储资源的抽象定义,对用户设置的PVC申请屏蔽后端存储的细节,一方面减少了用户对于存储资源细节的关注,另一方面减轻了管理员手工管理PV的工作,由系统自动完成PV的创建和绑定,实现了动态的资源供应。 基于S 阅读全文
posted @ 2020-04-03 11:45 木二 阅读 (21) 评论 (0) 编辑
摘要:一 共享存储 1.1 共享存储作用 Kubernetes对于有状态的容器应用或者对数据需要持久化的应用,不仅需要将容器内的目录挂载到宿主机的目录或者emptyDir临时存储卷,而且需要更加可靠的存储来保存应用产生的重要数据,以便容器应用在重建之后仍然可以使用之前的数据。 1.2 共享存储资源 为了能 阅读全文
posted @ 2020-03-26 12:42 木二 阅读 (204) 评论 (0) 编辑
摘要:先晒一波本人的CKA和CKAD证书!如下正式分享CKAD心得:考试相关准备:l 练习:https://github.com/dgkanatsios/CKAD-exercises;l 网络:必须开启VPN,以便能访问国外网络,强烈建议在香港搭建相应KX上网;l 证件:考试需要出示含有拉丁文(英文)带照 阅读全文
posted @ 2020-03-25 20:54 木二 阅读 (85) 评论 (0) 编辑
摘要:一 Prometheus概述 1.1 Prometheus简介 Prometheus是由SoundCloud公司开发的开源监控系统,是继Kubernetes之后CNCF第2个毕业的项目,在容器和微服务领域得到了广泛应用。Prometheus的主要特点如下: 使用指标名称及键值对标识的多维度数据模型。 阅读全文
posted @ 2020-03-25 16:55 木二 阅读 (57) 评论 (0) 编辑
摘要:一 优化镜像源 1.1 国内镜像源 global proxy in China format example dockerhub (docker.io) dockerhub.azk8s.cn dockerhub.azk8s.cn/<repo-name>/<image-name>:<version> 阅读全文
posted @ 2020-03-25 11:41 木二 阅读 (11) 评论 (0) 编辑
摘要:一 Kubernetes网络策略 1.1 策略说明 为实现细粒度的容器间网络访问隔离策略,Kubernetes发布Network Policy,目前已升级为networking.k8s.io/v1稳定版本。 Network Policy的主要功能是对Pod间的网络通信进行限制和准入控制,设置方式为将 阅读全文
posted @ 2020-03-25 11:35 木二 阅读 (34) 评论 (0) 编辑
摘要:一 Flannel组件 1.1 flannel介绍 Kubernetes的网络模型假定了所有Pod都在一个可以直接连通的扁平网络空间中。若需要实现这个网络假设,需要实现不同节点上的Docker容器之间的互相访问,然后运行Kubernetes。目前已经有多个开源组件支持容器网络模型。如Flannel、 阅读全文
posted @ 2020-03-24 14:14 木二 阅读 (130) 评论 (0) 编辑
摘要:一 CNM网络模型 1.1 网络模型 生产环境中,跨主机容器间的网络互通已经成为基本要求,更高的要求包括容器固定IP地址、一个容器多个IP地址、多个子网隔离、ACL控制策略、与SDN集成等。目前主流的容器网络模型主要有Docker公司提出的Container Network Model(CNM)模型 阅读全文
posted @ 2020-03-24 13:25 木二 阅读 (34) 评论 (0) 编辑
摘要:一 Pod和SVC网络 1.1 实践准备及原理 Docker实现了不同的网络模式,Kubernetes也以一种不同的方式来解决这些网络模式的挑战。本完整实验深入剖析Kubernetes在网络层是如何实现及工作的。 实验节点架构: 如上图所示,Kubernetes的网络模型要求每个Node上的容器都可 阅读全文
posted @ 2020-03-23 15:25 木二 阅读 (149) 评论 (0) 编辑
摘要:一 Kubernetes网络实现 1.1 Kubernetes网络优势 在实际的业务场景中,业务组件之间的关系十分复杂,微服务的理念更是让应用部署的粒度更加细小和灵活。为了支持业务应用组件的通信,Kubernetes网络的设计主要致力于解决以下问题。 容器到容器之间的直接通信。 抽象的Pod到Pod 阅读全文
posted @ 2020-03-22 18:10 木二 阅读 (67) 评论 (0) 编辑
摘要:一 Docker网络 1.1 Docker网络类型 标准的Docker支持以下4类网络模式: host模式:使用--net=host指定。 container模式:使用--net=container:NAME_or_ID指定。 none模式:使用--net=none指定。 bridge模式:使用-- 阅读全文
posted @ 2020-03-22 18:04 木二 阅读 (42) 评论 (0) 编辑
摘要:一 Kubernetes网络模型概述 1.1 Kubernetes网络模型 Kubernetes网络模型设计的一个基础原则是:每个Pod都拥有一个独立的IP地址,并假定所有Pod都在一个可以直接连通的、扁平的网络空间中。所以不管它们是否运行在同一个Node(宿主机)中,都要求它们可以直接通过对方的I 阅读全文
posted @ 2020-03-22 10:29 木二 阅读 (33) 评论 (0) 编辑
摘要:一 Pod安全 1.1 PodSecurityPolicy启用 为了更精细地控制Pod对资源的使用方式,Kubernetes从1.4版本开始引入了PodSecurityPolicy资源对象对Pod的安全策略进行管理,并在1.1版本中升级为Beta版,到1.14版本时趋于成熟。 若想启用PodSecu 阅读全文
posted @ 2020-03-21 11:40 木二 阅读 (83) 评论 (0) 编辑
摘要:一 glusterfs存储集群部署 注意:以下为简略步骤,详情参考《附009.Kubernetes永久存储之GlusterFS独立部署》。 1.1 架构示意 略 1.2 相关规划 主机 IP 磁盘 备注 k8smaster01 172.24.8.71 —— Kubernetes Master节点 H 阅读全文
posted @ 2020-03-20 14:17 木二 阅读 (59) 评论 (0) 编辑
摘要:一 secret概述1.1 secret作用Secret对象,主要作用是保管私密数据,比如密码、OAuth Tokens、SSH Keys等信息。将这些私密信息放在Secret对象中比直接放在Pod或Docker Image中更安全,也更便于使用和分发。二 secret使用2.1 secret创建[ 阅读全文
posted @ 2020-03-19 20:20 木二 阅读 (23) 评论 (0) 编辑
摘要:一 Kubernetes集群安全 1.1 安全机制 Kubernetes通过一系列机制来实现集群的安全控制,其中包括API Server的认证授权、准入控制机制及保护敏感信息的Secret机制等。集群的安全性主要有如下目标: 保证容器与其所在宿主机的隔离。 限制容器给基础设施或其他容器带来的干扰。 阅读全文
posted @ 2020-03-19 15:13 木二 阅读 (154) 评论 (0) 编辑
摘要:一 kube-proxy原理 1.1 kube-proxy概述 Kubernetes为了支持集群的水平扩展、高可用性,抽象出了Service的概念。Service是对一组Pod的抽象,它会根据访问策略(如负载均衡策略)来访问这组Pod。Kubernetes在创建Service时会为Service分配 阅读全文
posted @ 2020-03-18 11:59 木二 阅读 (88) 评论 (0) 编辑
摘要:一 kubelet概述 1.1 kubelet作用 在Kubernetes集群中,在每个Node(又称Minion)上都会启动一个kubelet服务进程。该进程用于处理Master下发到本节点的任务,管理Pod及Pod中的容器。每个kubelet进程都会在API Server上注册节点自身的信息,定 阅读全文
posted @ 2020-03-18 11:46 木二 阅读 (54) 评论 (0) 编辑
摘要:一 Scheduler原理 1.1 原理解析 Kubernetes Scheduler是负责Pod调度的重要功能模块,Kubernetes Scheduler在整个系统中承担了“承上启下”的重要功能,“承上”是指它负责接收Controller Manager创建的新Pod,为其调度至目标Node;“ 阅读全文
posted @ 2020-03-18 11:23 木二 阅读 (29) 评论 (0) 编辑
摘要:一 Rook概述 1.1 Ceph简介 Ceph是一种高度可扩展的分布式存储解决方案,提供对象、文件和块存储。在每个存储节点上,将找到Ceph存储对象的文件系统和Ceph OSD(对象存储守护程序)进程。在Ceph集群上,还存在Ceph MON(监控)守护程序,它们确保Ceph集群保持高可用性。 更 阅读全文
posted @ 2020-03-18 11:09 木二 阅读 (104) 评论 (0) 编辑
摘要:一 Controller Manager原理 1.1 Controller Manager概述 一般来说,智能系统和自动系统通常会通过一个“控制系统”来不断修正系统的工作状态。在Kubernetes集群中,每个Controller都是这样的一个“控制系统”,它们通过API Server提供的(Lis 阅读全文
posted @ 2020-03-17 22:19 木二 阅读 (43) 评论 (0) 编辑
摘要:一 Kubernetes API Server原理 1.1 API Server功能 Kubernetes API Server的核心功能是提供Kubernetes各类资源对象(如Pod、RC、Service等)的增、删、改、查及Watch等HTTP Rest接口,成为集群内各个功能模块之间数据交互 阅读全文
posted @ 2020-03-17 13:03 木二 阅读 (129) 评论 (5) 编辑
摘要:一 Ingress简介 1.1 Ingress 通常Service的表现形式为IP:Port,即工作在TCP/IP层。 对于基于HTTP的服务来说,不同的URL地址经常对应到不同的后端服务(RS)或者虚拟服务器( Virtual Host),这些应用层的转发机制仅通过Kubernetes的Servi 阅读全文
posted @ 2020-03-13 18:30 木二 阅读 (53) 评论 (0) 编辑
摘要:一 集群外部访问 由于Pod和Service都是Kubernetes集群范围内的虚拟概念,所以集群外的客户端默认情况,无法通过Pod的IP地址或者Service的虚拟IP地址:虚拟端口号进行访问。通常可以通过以下方式进行访问Kubernetes集群内的服务。 1.1 外部访问——映射Pod到物理机 阅读全文
posted @ 2020-03-13 16:54 木二 阅读 (40) 评论 (0) 编辑
摘要:一 Service简介 1.1 Service概念 Service是Kubernetes的核心概念,通过创建Service,可以为一组具有相同功能的容器应用提供一个统一的入口地址,并且将请求负载分发到后端的各个容器应用上。 1.2 Service定义详解 1 apiVersion: v1 #必须,a 阅读全文
posted @ 2020-03-11 13:16 木二 阅读 (133) 评论 (0) 编辑
摘要:考试相关准备: 真题:需要的私密; 网络:必须开启VPN,以便能访问国外网络,强烈建议在香港搭建相应FQ; 证件:考试需要出示含有拉丁文(英文)带照片的有效证件,相关有效证件参考(优先建议护照):https://training.linuxfoundation.org/cncf-certificat 阅读全文
posted @ 2020-01-08 12:17 木二 阅读 (213) 评论 (0) 编辑
摘要:一 kubeadm介绍 1.1 概述 参考《附003.Kubeadm部署Kubernetes》。 1.2 kubeadm功能 参考《附003.Kubeadm部署Kubernetes》。 二 部署规划 2.1 节点规划 节点主机名 IP 类型 运行服务 k8smaster01 172.24.8.71 阅读全文
posted @ 2019-12-04 15:02 木二 阅读 (272) 评论 (1) 编辑
摘要:一 Kubernetes DNS介绍1.1 Kubernetes DNS发展作为服务发现机制的基本功能,在集群内需要能够通过服务名对服务进行访问,因此需要一个集群范围内的DNS服务来完成从服务名到ClusterIP的解析。DNS服务在Kubernetes的发展过程中经历了3个阶段,SkyDNS ----> KubeDNS ----> CoreDNS。1.2 SkyDNS在Kubernetes 1.... 阅读全文
posted @ 2019-12-03 17:24 木二 阅读 (220) 评论 (1) 编辑
摘要:一 前期准备 1.1 前置条件 集群部署:Kubernetes集群部署参考003——019。 glusterfs-Kubernetes部署:参考《附010.Kubernetes永久存储之GlusterFS超融合部署》。 1.2 部署规划 本实验使用StatefulSet部署MongoDB集群,同时每 阅读全文
posted @ 2019-11-25 11:31 木二 阅读 (354) 评论 (0) 编辑
摘要:一 Pod的扩容和缩容 Kubernetes对Pod的扩缩容操作提供了手动和自动两种模式,手动模式通过执行kubectl scale命令或通过RESTful API对一个Deployment/RC进行Pod副本数量的设置。自动模式则需要用户根据某个性能指标或者自定义业务指标,并指定Pod副本数量的范 阅读全文
posted @ 2019-11-24 11:37 木二 阅读 (220) 评论 (0) 编辑
摘要:一 前期准备 1.1 基础知识 在Kubernetes中,使用GlusterFS文件系统,操作步骤通常是: 创建brick-->创建volume-->创建PV-->创建PVC-->Pod挂载PVC 如果要创建多个PV,则需要手动重复执行,可通过Heketi管理glusterfs。 Heketi是用来 阅读全文
posted @ 2019-11-23 12:50 木二 阅读 (426) 评论 (2) 编辑
摘要:一 前期准备 1.1 基础知识 Heketi提供了一个RESTful管理界面,可以用来管理GlusterFS卷的生命周期。Heketi会动态在集群内选择bricks构建所需的volumes,从而确保数据的副本会分散到集群不同的故障域内。同时Heketi还支持任意数量的ClusterFS集群。 提示: 阅读全文
posted @ 2019-11-22 18:34 木二 阅读 (275) 评论 (0) 编辑
摘要:一 deploymentPod升级和回滚 1.1 deployment升级 若Pod是通过Deployment创建的,可以在运行时修改Deployment的Pod定义(spec.template)或镜像名称,并应用到Deployment对象上,系统即可完成Deployment的自动更新操作。 如果在 阅读全文
posted @ 2019-11-22 12:15 木二 阅读 (203) 评论 (0) 编辑
摘要:一 Pod生命周期管理 1.1 Pod生命周期 Pod在整个生命周期过程中被系统定义了如下各种状态。 状态值 描述 Pending API Server已经创建该Pod,且Pod内还有一个或多个容器的镜像没有创建,包括正在下载镜像的过程。 Running Pod内所有容器均已创建,且至少有一个容器处 阅读全文
posted @ 2019-11-21 12:09 木二 阅读 (164) 评论 (0) 编辑
摘要:一 Pod定义详解 1.1 完整Pod定义文件 1 apiVersion: v1 #必选,版本号,例如v1,版本号必须可以用 kubectl api-versions 查询到 2 kind: Pod #必选,Pod 3 metadata: #必选,元数据 4 name: string #必选,Pod 阅读全文
posted @ 2019-11-20 11:55 木二 阅读 (198) 评论 (0) 编辑
摘要:一 修改配置文件 1.1 下载解压 1 [root@k8smaster01 ~]# cd /opt/k8s/work/kubernetes/ 2 [root@k8smaster01 kubernetes]# tar -xzvf kubernetes-src.tar.gz 提示:k8smaster01 阅读全文
posted @ 2019-11-19 11:47 木二 阅读 (319) 评论 (3) 编辑