在一台Docker宿主机上可以同时启动多个容器。在默认情况下,Docker的引擎对运行的容器没有限制硬件资源的使用。而在实际环境下,容器的负载过高会导致占用宿主机的大量资源。这里的资源主要是指宿主机的CPU、内存和I/O带宽这3个方面。 点击这里查看视频讲解:【赵渝强老师】:Docker容器的资源管理机制 一、 什么是Linux CGroup? 由于Docker是构建在Li
Harbor是由VMware公司开发并开源的企业级的Docker镜像仓库的管理项目,它包括镜像的权限管理(RBAC)、目录访问(LDAP)、日志审核、管理界面、自我注册、镜像复制和中文支持等功能。 点击这里查看视频讲解:【赵渝强老师】:Docker的私有镜像仓库:Harbor 为了更好地演示Harbor的安装和部署的过程,这里单独准备一台虚拟机作为运行Harbor的主机。下
Pod的调度是指Kubernetes在创建Pod时,将其创建到最合适的Node节点上,然后由Node节点上kubelet来运行。在在默认情况下,调度器scheduler会根据特定的算法和策略将Pod调度到Node节点上,这可以满足绝大多数的需求。例如,调度Pod到资源满足要求的Node节点上运行;或者分散到不同Node节点以达到资源的均衡使用。 但在一些特殊的场景下,scheduler的默
Kubernetes集群的安全框架主要由以下认证、鉴权和准入控制三个阶段组成。这三个阶段的关系如下图所示。 ![在这里插入图片描述] 点击这里查看视频讲解:【赵渝强老师】:Kubernetes的安全框架 认证(Authentication) 当客户端与Kubernetes集群建立HTTP通信时,首先HTTP请求会进入到认证阶段。由于API Server是操作集群资源的唯一入
Docker提供了命令行工具来管理Docker的镜像和运行Docker的容器。为了进行Docker的可视化操作,也可以使用图形化的工具来管理Docker。目前,主流的Docker图形化工具有Docker UI、Portainer和Shipyard。 点击这里查看视频讲解:【赵渝强老师】:Docker的图形化管理工具 一、 Docker UI Docker UI是最简单的单机
在Docker的容器中可以部署运行一个MySQL数据库,并通过数据卷将运行在容器中的MySQL数据库的数据进行持久化。如果这时候运行MySQL的容器被销毁了,数据也将会发生丢失。因此在Docker中部署数据库服务时,一定要考虑数据持久化的问题。但数据库并不适合Docker容器化部署。 一、 【实战】在Docker部署MySQL 下面通过具体的步骤来演示如何在Docker容器中部署MySQL数据库
在K8s集群中,当Pod处于运行状态时,kubelet通过使用探针(Probe)对容器的健康状态执行检查和诊断。K8s支持三种不同类型的探针,分别是:livenessProbe(存活探针)、readinessProbe(就绪探针)和startupProbe(启动探针)。不同类型的探针都支持三种方式检查方法,分别是:HTTPGetAction、ExecAction和TCPSocketAction。
在K8s集群中,当Pod处于运行状态时,kubelet通过使用探针(Probe)对容器的健康状态执行检查和诊断。Kubernetes支持的三种类型的探针。 点击这里查看视频讲解:【赵渝强老师】:Kubernetes中Pod探针 下面分别进行介绍。 livenessProbe(存活探针) 该类型的探针将检查Pod中的容器是否正在运行。如果检查失败,kubelet将杀死
一、K8s的Deployment与StatefulSets 在K8s中,Deployment将Pod部署成无状态的应用程序,它只关心Pod的数量、Pod更新方式、使用的镜像和资源限制等。由于是无状态的管理方式,因此Deployment中没有角色和顺序的概念,换句话说:Deployment中没有状态。 通过使用Deployment,可以让开发人员上线部署Pod、设置Pod的副本、实现Pod
在K8s中,StatefulSets将Pod部署成有状态的应用程序。通过使用StatefulSets控制器,可以为Pod提供持久存储和持久的唯一性标识符。StatefulSets控制器与Deployment控制器不同的是,StatefulSets控制器为管理的Pod维护了一个有粘性的标识符。无论这些Pod如何被调度,每个Pod的标识符都是永久不变的。这一特点可以满足一些特殊场景的需要,例如:
在K8s中,Job控制器管理的作业在控制器资源被创建之后便会立即执行,而CronJob控制器可用于管理和调度作业运行的时间,从而实现定时作业和周期作业的目的,这种控制器管理和调度作业的方式类似Linux的crontab命令。CronJob控制器管理和调度作业的方式主要有以下两种: 在未来某一时间运行作业一次 在指定的时间点重复运行作业 点击这里查看视频讲解:【赵渝强老师】
Kubernetes Job是一次性任务的控制器。它控制Pod中的容器执行完成任务后不会再重启,并将容器的状态设置为“Completed”。如果Pod中的容器出现了异常终止的情况,Job控制器会根据设置的重启策略进行Pod的重启。如果因为Node节点的故障导致Pod无法正常运行,Job控制器会通过调度器将Pod调度到其他的节点上运行。Job控制器的运行方式分为:单工作队列的串行方式和多工作队
在Kubernetes中,Job是一次性任务的控制器。它控制Pod中的容器执行完成任务后不会再重启,并将容器的状态设置为“Completed”。如果Pod中的容器出现了异常终止的情况,Job控制器会根据设置的重启策略进行Pod的重启。如果因为Node节点的故障导致Pod无法正常运行,Job控制器会通过调度器将Pod调度到其他的节点上运行。Job控制器的运行方式分为:单工作队列的串行方式和多工
K8s DaemonSet控制器相当于在节点上启动了一个守护进程。通过使用DaemonSet可以确保一个Pod的副本运行在 Node节点上。如果有新的Node节点加入集群,DaemonSet也会自动给新加入的节点增加一个Pod的副本;反之,当有Node节点从集群中移除时,DaemonSet也可以保证将这些Pod自动回收。当删除 DaemonSet将会删除它创建的所有Pod。下面列举了Dae
K8s的Deployment将Pod部署成无状态的应用程序,它只关心Pod的数量、Pod更新方式、使用的镜像和资源限制等。由于是无状态的管理方式,因此Deployment中没有角色和顺序的概念,换句话说:Deployment中没有状态。 通过使用Deployment,可以让开发人员上线部署Pod、设置Pod的副本、实现Pod的升级与回滚。通过在yaml文件中描述Deployment的目标
Kubernetes通过创建控制器来管理Pod的生命周期。为了满足不同需求的场景,Kubernetes开发了 不同的控制器,如:Deployment、DaemonSet、Job、CronJob、StatefuleSet等。 点击这里查看视频讲解:【赵渝强老师】:Kubernetes中的控制器 一、为什么需要控制器? Pod在Kubernetes中是存在生命周期的。因
在了解了Docker Swarm的体系架构以后,基于已经部署好三台虚拟主机便可以非常容易地构建Swarm集群。下表列出了这三台虚拟机的相关信息。其中:master主机将作为Swarm Manager运行;而node1和node2将作为Swarm Node运行。 点击这里查看视频讲解:【赵渝强老师】:构建Docker Swarm集群 下面的步骤将演示如何以maste
Docker从1.12.0 版本开始,便已经将DockerSwarm集成进了Docker的引擎中。因此,Docker Swarm不需要单独进行安装。由于Docker Swarm内置了服务发现的功能,因此也不再需要进行服务发现配置了。Docker Swarm与Docker Compose类似,都是Docker官方提供的服务编排工具。但是二者所不同的是,Docker Compose 是在单个宿主
Docker Machine是Docker官方提供的一个远程管理工具。通过使用Docker Machine,可以帮助开发人员在远程主机上安装Docker;或者在远程的虚拟主机上直接安装虚拟机并在虚拟机中安装Docker。Docker Machine还提供了相应的命令来管理这些远程的Docker环境和虚拟机。下图是官方提供的一张关于Docker Machine的图片,很形象地说明了Docker
Docker Compose 通过一个yml的描述文件来管理一个复杂系统中的多个容器。在该描述文件中,所有的容器都是通过services来进行定义。Docker Compose使用docker-compose脚本来完成服务的启动、停止、管理和扩容等工作。因此Docker Compose非常适合使用多个容器来组成一个复杂应用系统的场景。 点击这里查看视频讲解:【赵渝强老师】:使
在Docker容器中提供了三个非常有用的工具,它们分别是:Docker Compose、Docker Machine和Docker Swarm。下面分别进行介绍。 点击这里查看视频讲解:【赵渝强老师】:Docker的三剑客 一、容器编排工具Docker Compose 在使用Docker部署应用程序的时候,可以通过定义Dockerfile来完成应用服务的描述,再使用
Pod是Kubernetes中的一个逻辑单位 ,它代表集群上正在运行的一个进程。Pod是Kubernetes集群中的一个应用实例,由一个或者多个容器组成。Pod中还可以包含数据的持久化存储、网络配置等资源。Pod支持多种容器执行环境,而Docker则是Kubernetes Pod中最常见的执行环境 ,Pods也支持其他容器引擎作为执行环境。下图说明了Pod的组成结构。 Pod由一个或者
K8s Pod由一个或者多个容器组成,这里的容器通常指的是运行应用程序的业务容器。但是Pod中除了业务容器外,还有基础容器、初始化容器和临时容器。 临时容器是一种特殊的容器,它在现有的Pod中临时运行,以便完成用户发起的操作,例如故障排查和性能诊断等。由于临时容器没有端口配置,并且资源分配是不可变的,因此它不适用于构建应用程序。 点击这里查看视频讲解:【赵渝强老师】:K8
K8s Pod由一个或者多个容器组成,这里的容器通常指的是运行应用程序的业务容器。但是Pod中除了业务容器外,还有基础容器、初始化容器和临时容器。 点击这里查看视频讲解:【赵渝强老师】:K8s Pod中的业务容器 业务容器(Containers)是实际运行应用程序的容器,例如:下面示例中创建的“busybox-container”。 apiVersion: v1 k
Pod由一个或者多个容器组成,这里的容器通常指的是运行应用程序的业务容器。但是Pod中除了业务容器外,还有基础容器、初始化容器和临时容器。 初始化容器晚于基础容器运行,但先于业务容器运行。如果Pod的初始化容器运行失败,在默认情况下Kubernetes会不断尝试重启Pod,直到初始化容器运行成功。如果将Pod的配置参数“restartPolicy”设置为“Never”,这时候Kubern
由于Docker的容器彼此之间是逻辑隔离的,所以,在安装Docker时会为在容器创建隔离的网络环境。在该隔离的网络模式环境下,运行在宿主机上的各个容器具有完全独立的网络栈,并且Docker容器的网络环境与宿主机相互隔离。通过配置使用Docker的不同网络模式,可以使容器共享宿主机的网络命名空间,也可以实现容器间的相互访问。 点击这里查看视频讲解:【赵渝强老师】:Docker的
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号