容器技术:Kubernetes
文章平均质量分 89
专栏以实践为主,深入浅出的讲解Kubernetes及容器的相关技术。
姜秀丽
人一生中大部分时间都在工作,如果你的工作恰巧又是自己喜欢的,那么你的大部分时间就都在做喜欢的事情,何其乐哉!
展开
-
容器化技术(十四):Kubernetes中Headless Service
一、Headless Service有时不需要或不想要负载均衡,以及单独的 Service IP。 遇到这种情况,可以通过指定 Cluster IP(spec.clusterIP)的值为 “None” 来创建 Headless Service。无头 Service 并不会分配 Cluster IP,kube-proxy 不会处理它们, 而且平台也不会为它们进行负载均衡和路由。DNS 如何实现自动配置,依赖于 Service 是否定义了选择算符。(1)带选择算符的服务对定义了选择算符的无头服务,End原创 2021-04-20 10:59:56 · 2242 阅读 · 0 评论 -
容器化技术(十三):Kubernetes中Service(ClusterIP)
Service—服务暴露如果你使用 Deployment 来运行你的应用程序,则它可以动态创建和销毁 Pod。每个 Pod 都有自己的 IP 地址,但是在 Deployment 中,在同一时刻运行的 Pod 集合可能与稍后运行该应用程序的 Pod 集合不同,也就是说Pod是非永久性的资源。这导致了一个问题: 如果一组 Pod(称为“后端”)为集群内的其他 Pod(称为“前端”)提供功能, 那么前端如何找出并跟踪要连接的 IP 地址,以便前端可以使用提供工作负载的后端部分?Service 资源允许 Kub原创 2021-04-19 10:01:17 · 1995 阅读 · 0 评论 -
容器化技术(十二):如何使用Kubernetes中Deployment实现滚动升级与版本回滚?
Deployment—无状态部署在常规的应用部署到Kubernetes集群当中的时候,很少直接使用Pod来直接部署,而是使用了Deployment的逻辑分装的概念。Deployment是对一组Pod的封装,可以在Deployment中指定运行的Pod实例的数目,Deployment会在Kubernetes集群中的kube-controller-manager的监控下,保证集群中的Pod的实例数目维持在Deployment中设定的数目上。Deployment,顾名思义是部署的意思,它对Pod的集合,可以通原创 2021-04-16 10:37:42 · 923 阅读 · 0 评论 -
容器化技术(十一):Kubernetes中Pod的调度策略-标签与污点实战
一、Pod的调度策略总述Kubernetes中的容器编排功能的最大需要解决的问题就是将创建的Pod,调度到Node上去。那么Pod在选择调度到哪个Node上去时,是如何决策的。这就涉及到了我们在前面安装Kubernetes集群时,其中介绍的kube-scheduler组件。kube-scheduler 给一个 pod 做调度选择的依据包含两个步骤:(1)过滤:根据Pod对调度的要求,过滤掉一些Node,例如资源是否匹配,标签是否匹配,污点是否容忍等。(2)打分:在满足了过滤要求的情况下,给这些Nod原创 2021-04-15 10:29:50 · 742 阅读 · 0 评论 -
容器化技术(十):Kubernetes中Pod的生命周期
一、Pod的生命周期Pod 遵循一个预定义的生命周期,起始于 Pending 阶段,如果至少 其中有一个主要容器正常启动,则进入 Running 阶段,之后取决于 Pod 中是否有容器以失败状态结束而进入 Succeeded 或者 Failed 阶段。在 Pod 运行期间,Kubernetes能够重启容器以处理一些失效场景。 在 Pod 内部,Kubernetes 跟踪不同容器的状态,并确定使 Pod 重新变得健康所需要采取的动作。当我们运行一个Pod的时候,可以通过如下命令来查看Pod的运行状态:原创 2021-04-14 11:54:21 · 272 阅读 · 0 评论 -
容器化技术(九):Kubernetes中的Pod的资源管理与监控
一、安装Metrics-Server,采集资源使用情况想要获得Kubernetes集群中的CPU与内存的资源情况,以前的Kubernetes集群是通过Heapster获取的。本文的Kubernetes集群为1.18的版本,资源的收集需要通过安装metrics-server来实现。有了metrics-server,我们就可以去监测Kubernetes集群中的CPU与内存的使用情况了,同时为我们的集群自动伸缩容技术hpa打好了基础。下载地址如下:https://github.com/kubernetes-s原创 2021-04-13 11:11:47 · 893 阅读 · 0 评论 -
容器化技术(八):Pod—Kubernetes中的最小调度单位
Pod—Kubernetes中的最小调度单位Pod是Kubernetes中的最小调度单位,应用容器就运行在Pod内。Node是我们运行Pod的机器,一个Node上可以运行很多个Pod。可以说Pod是Kubernetes中最重要的概念。一个Pod是一组容器的集合,这组容器是紧密相关的,这组容器共享网络和存储等。每个Pod内都运行着一个Init的基础容器,其他的容器在Init容器上建立起来的。同一个Pod内的容器共享Init容器建立起来的网络和存储资源。如下图所示,一个Pod中运行着A、B、C三个容器,它原创 2021-04-12 10:33:29 · 1416 阅读 · 0 评论 -
容器化技术(七):Kubernetes集群中安装了哪些组件?
文章目录一、Kubernetes集群总览二、Worker节点的运行机制1、kubelet2、kube-proxy3、容器运行时三、Master节点的运行机制1、kube-apiserver2、kube-controller-manager3、kube-scheduler4、etcd四、下篇文章预告一、Kubernetes集群总览Kubernetes中的节点分为两类:Master节点:也称为控制平面,是Kubernetes集群的大脑,其中包括如下组件:kube-apiserver:管理员操作整个K原创 2021-04-09 10:34:04 · 558 阅读 · 0 评论 -
容器化技术(六):Kubernetes最全安装指南
Kubernetes的安装很多读者在学习Kubernetes的路上,被搁浅在了搭建Kubernetes集群这一步,本小节将带领读者手把手搭建一套Kubernetes集群。安装Kubernetes的方法有很多,比较成熟与简便的办法是采用kubeadm来进行安装。如果我们采用二进制的方式安装,会非常的繁琐。一、环境准备1、机器配置要求Kubernetes集群中的机器被划分一个Master节点和一群Worker节点。本套Kubernetes集群需要三台机器,一台安装Master,两台安装Worker。原创 2021-04-08 17:13:14 · 330 阅读 · 0 评论 -
容器化技术(五):初识Kubernetes
真正的生产型应用会涉及多个容器,这些容器必须跨多个服务器主机进行部署。 Kubernetes可以提供用户所需的编排和管理功能,以便用户针对这些工作负载进行大规模容器部署。 借助Kubernetes编排功能,用户可以构建多个容器的应用服务,跨集群调度、扩展这些容器,并长期持续管理这些容器的健康状况 。一、Kubernetes概述Kubernetes站在Borg(Borg是谷歌的一个久负盛名的内部使用的大规模集群管理系统,它基于容器技术,目的是实现资源管理的自动化,以及跨多个数据中心的资源利用率的最大化。)原创 2021-04-07 15:47:29 · 225 阅读 · 0 评论 -
容器化技术(四):容器到底隔离了什么?
一、容器的本质是一个进程一个容器就如同你之前跑到一个虚拟机中的一个应用程序,比如跑一个Java程序。那么在容器中,主进程就是跑着你Java程序的这个Java进程,其他的进程都是围绕着这个主进程的,如果主进程失败了,那么这个容器就是失败的。二、容器中隔离了以下资源mnt: 存储net : 网络pid : 进程user:用户uts :主机名、域名等ipc :进程间的通信cgroups:隔离资源,如CPU、Memory如果对这些特性感觉有些陌生,这很正常,我们可以通过创建一个容器,然后登原创 2021-04-06 15:14:05 · 1111 阅读 · 0 评论 -
容器化技术(三):Docker的运转流程
Docker的本质是容器运行时,它是CS架构的,也就是我们通过客户端可以操作Docker服务端。为了方便大家理解,我们不上来就讲解Docker内部的底层运作原理,我们先从Docker的运转流程开始,让大家知道Docker是什么。Docker的整体运转流程包括三个重点:镜像:仓库容器一、镜像(Image)这是Docker的一大发明,Docker之所以这么火,跟这个镜像的发明也有很大的关系。一句话来说,镜像把你的程序包与相关的依赖打包了起来,成为image,也就是镜像。所以想要在企业内部进原创 2021-04-02 10:20:00 · 502 阅读 · 1 评论 -
容器化技术(二):启动你的第一个容器
在启动容器之前,我们需要先安装Docker,具体的安装参照我的另一篇文章:Docker的安装与常用命令。一、本地启动一个Redis本地启动一个Redis的命令如下:docker run -d -p 6378:6379 redis命令中-d与-p参数的含义如下。1、 -d参数的意义代表这个容器在后台运行,如果不带有这个参数,你会看到Redis的启动日志,而且当年关闭你的执行这个命令的窗口时,Redis就关闭了。所以启动容器的时候,一定记得带有这个参数。2、-p参数的意义这个参数是用于设定容器原创 2021-04-01 11:02:29 · 229 阅读 · 0 评论 -
容器化技术(一):Docker的安装与常用命令
Docker总架构图CS客户端服务器架构模式安装DockerDocker运行在Centos7上,需要系统为64位,且内核版本在3.10以上。Docker分为社区版本docker-ce,与商业版本docker-ee。我们安装的是docker-ce。Yum安装如果已经安装,需要先移除旧的版本。sudo yum remove docker \ dock...原创 2020-03-12 21:55:25 · 247 阅读 · 0 评论