随笔分类 -  容器技术

摘要:在实际应用中,我们往往需要提高Kubernetes集群的资源利用率,即允许集群中所有负载所需的资源总量超过集群所提供的资源量,这个时候,当资源不足时,系统可以选择释放一些不重要的负载,保障最重要的负载能够运行,这就是我们今天要学习的优先级抢占调度策略。 要使用优先级抢占,需要做以下两件事: 定义Pr 阅读全文
posted @ 2022-10-23 16:19 阿拉懒神灯 阅读(372) 评论(0) 推荐(0) 编辑
摘要:一、Pod亲和性与反亲和性调度 在实际应用中,我们往往会遇到特殊的Pod调度需求:存在某些相互依赖、频繁调用的Pod,他们需要尽可能部署在同一个节点、网段、机柜或区域中,这就是Pod间亲和性,反之,出于避免竞争或容错需求,我们需要使某些Pod尽可能远离某些特定Pod时,这就是Pod间反亲和性。简单的 阅读全文
posted @ 2022-07-24 14:01 阿拉懒神灯 阅读(679) 评论(0) 推荐(1) 编辑
摘要:上一篇,我们学习了各种工作负载的使用,工作负载它会自动帮我们完成Pod的调度和部署,但有时我们需要自己定义Pod的调度策略,这个时候该怎么办呢?今天我们就来看一下如何定义Pod调度策略。 一、NodeSelector:节点定向调度 Kubernetes的Scheduler服务在调度Pod的时候会通过 阅读全文
posted @ 2022-06-28 18:59 阿拉懒神灯 阅读(1088) 评论(0) 推荐(1) 编辑
摘要:我们前面讲了很多关于Pod的使用,但是在实际应用中,我们不会去直接创建Pod,我们一般通过Kubernetes提供的工作负载(Deployment、DeamonSet、StatefulSet、Job等)完成对一组Pod全生命周期的控制,本节开始我们来看看这些工作负载是如何使用的。 一、Deploym 阅读全文
posted @ 2022-06-26 12:04 阿拉懒神灯 阅读(730) 评论(0) 推荐(0) 编辑
摘要:小伙伴们,好久不见,这几个月实在太忙,所以一直没有更新,今天刚好有空,咱们继续k8s的学习,由于我们后面需要深入学习Pod的调度,所以我们原先使用MiniKube搭建的实验环境就不能满足我们的需求了,我们这一节将使用kubeadm搭建Kubernets集群。 一、虚拟机创建 我们的集群包含三个节点k 阅读全文
posted @ 2022-05-26 23:29 阿拉懒神灯 阅读(765) 评论(1) 推荐(0) 编辑
摘要:kubectl作为我们主要的操作K8S的工具,其具备非常丰富的功能,但是如果不经过打磨,使用起来还是存在诸多不便,今天我们来看看如何将我们的kubectl打磨的更加易用。 一、命令自动补全 kubectl中提供非常多的命令,如果每一次都要手动一个字符一个字符的敲未免太累了,那么如何配置自动补全呢?这 阅读全文
posted @ 2022-02-12 10:33 阿拉懒神灯 阅读(540) 评论(1) 推荐(0) 编辑
摘要:Pod在整个生命周期中被系统标示为各种状态,熟悉Pod的各种状态对于理解Pod的调度策略、重启策略很有必要。 一、Pod生命周期 Pod的所处阶段信息保存在PodStatus.Phase,Phase有如下几种值: Pending: API Server已经创建该Pod,但一个或多个容器还没有被创建, 阅读全文
posted @ 2022-01-25 09:10 阿拉懒神灯 阅读(324) 评论(0) 推荐(0) 编辑
摘要:Kubernetes在创建Pod时,会为Pod和容器设置一些额外的信息,比如Pod名称、Pod IP、Node IP、Label、Annotation、资源限制等,我们经常会在应用程序中使用到这些数据,比如利用Pod名称作为应用日志的字段,方便分析日志。为了能在容器内获取这些信息,我们可以使用Dow 阅读全文
posted @ 2022-01-25 09:08 阿拉懒神灯 阅读(646) 评论(0) 推荐(0) 编辑
摘要:我们在部署应用时常常会考虑将应用程序与配置文件相分离,这样可以使应用程序更好的复用,并且通过不同配置也能实现更灵活的功能。将应用制作成镜像后,我们可以在启动容器时通过环境变量或挂载文件的方式注入,但是在面临大规模容器集群的场景下就显得力不从心了,因此我们可以使用ConfigMap进行统一配置。 一、 阅读全文
posted @ 2022-01-22 12:20 阿拉懒神灯 阅读(406) 评论(0) 推荐(0) 编辑
摘要:Pod 是一组紧密关联的容器集合,它们共享IPC、Network和UTS namespace,是 Kubernetes 调度的基本单元。Pod 的设计理念是支持多个容器在一个 Pod 中共享网络和文件系统,可以通过进程间通信和文件共享这种简单高效的方式组合完成服务。 一、Pod的定义 这里还是以我们 阅读全文
posted @ 2022-01-21 20:49 阿拉懒神灯 阅读(870) 评论(0) 推荐(1) 编辑
摘要:我们在学习K8S时会有个问题,那就是我自己做的应用镜像如何在K8S中部署呢?如果我们每做一个镜像都要推送到公共镜像仓库那未免太麻烦了,这就需要我们搭一个私有镜像仓库,通过私有仓库,K8S集群便可以从中拉取镜像了。 一、拉取并部署docker register 私有镜像仓库部署也很简单,Docker 阅读全文
posted @ 2022-01-21 20:44 阿拉懒神灯 阅读(992) 评论(0) 推荐(0) 编辑
摘要:我们今天来通过在在K8S集群中部署web应用来体验一下K8S的使用,我们需要提前准备一个基于springboot的web应用镜像,这个应用也很简单,就一个hello接口: @RestController @RequestMapping("/api") public class ApiControll 阅读全文
posted @ 2022-01-21 20:40 阿拉懒神灯 阅读(415) 评论(0) 推荐(0) 编辑
摘要:kubectl作为客户端命令行工具,可以让用户通过命令行方式对kubernetes集群进行操作,这一篇将对其使用进行说明。 一、语法结构 kubectl [command] [TYPE] [NAME] [flags] command:指对一种资源索要执行的操作,如create、get、describ 阅读全文
posted @ 2022-01-21 20:34 阿拉懒神灯 阅读(432) 评论(0) 推荐(0) 编辑
摘要:Kubernetes中涉及很多概念,比如Pod、RC、Label啊等等,初次接触容易蒙圈,所以今天我们将一股脑将这些概念梳理清楚,为后续的学习扫除障碍,大家后面在学习过程中也可以不断翻查本篇内容,强化记忆与理解。 一、Pod Pod是Kubernetes中创建和管理的、最小的可部署的计算单元。它其实 阅读全文
posted @ 2022-01-15 23:15 阿拉懒神灯 阅读(185) 评论(0) 推荐(0) 编辑
摘要:上一篇我们简单介绍了Kubernetes基本概念,在正式进入学习之前呢我们当务之急是需要搭一套Kubernetes环境,考虑到我们仅仅是学习用所以直接使用MiniKube搭建环境。 PS:Minikube 是一个构建单节点集群的工具,是运行 Kubemetes 集群最简单、最快捷的途径 一、Kube 阅读全文
posted @ 2022-01-15 23:12 阿拉懒神灯 阅读(668) 评论(0) 推荐(0) 编辑
摘要:前面我们学习了Docker的基本知识,从今天开始将进入Kubernetes的内容学习,今天我们将整体梳理下Kubernetes的相关基本概念,为后续的内容学习打基础。 一、什么是Kubernetes Kubernetes源自谷歌内部的容器管理系统Borg,是一个全新的基于容器技术的分布式架构解决方案 阅读全文
posted @ 2022-01-15 18:04 阿拉懒神灯 阅读(284) 评论(0) 推荐(0) 编辑
摘要:数据共享是volume的关键特性,今天我们来看一下通过volume实现容器与host、容器与容器之间共享数据。 一、容器与host共享数据 在上一篇中介绍到的bind mount和docker manage volume,它们都可以实现容器与host之间共享数据,只是方式有所区别,bind moun 阅读全文
posted @ 2022-01-15 18:02 阿拉懒神灯 阅读(887) 评论(0) 推荐(0) 编辑
摘要:Docker为容器提供了两种存储数据的方式: Storage Driver即存储驱动 Data Volume即数据卷 本节我们分别讨论下它们的应用。 一、Storage Driver 前面讲过容器是由一个可写的容器层加若干个只读的镜像层组成,这样的设计带来如下效果: 新数据直接写在容器层中; 修改现 阅读全文
posted @ 2022-01-15 17:58 阿拉懒神灯 阅读(372) 评论(0) 推荐(0) 编辑
摘要:我们一般将应用部署在容器里面,而一个服务器上会有许许多多的容器,那么外界该如何访问我们的应用呢?答案是:端口映射。 Docker可以将容器对外提供服务的端口映射到host的某个端口上,外网通过此端口访问容器,要开启此功能,容器在启动时需要通过-p参数指定映射的端口号。 $ sudo docker r 阅读全文
posted @ 2021-12-21 17:06 阿拉懒神灯 阅读(1357) 评论(0) 推荐(0) 编辑
摘要:容器之间可通过IP、Docker DNS Server或joined三种方式进行通信,今天我们来详细学习一下。 一、IP通信 IP通信很简单,前一篇中已经有所涉及了,只要容器使用相同网络,那么就可以使用IP进行访问,本节不做赘述。 二、Docker DNS Server 使用IP通信存在一个最大的问 阅读全文
posted @ 2021-12-21 16:55 阿拉懒神灯 阅读(546) 评论(0) 推荐(0) 编辑