![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Docker与K8s
文章平均质量分 68
赵渝强老师
20年以上的IT行业从业经历,清华大学计算机软件工程专业毕业,京东大学大数据学院院长,Oracle中国有限公司高级技术顾问;曾在BEA、甲骨文、摩托罗拉等世界500强公司担任高级软件架构师或咨询顾问等要职,精通大数据、数据库、中间件技术和Java技术。
展开
-
【赵渝强老师】构建Docker Swarm集群
在了解了Docker Swarm的体系架构以后,基于已经部署好三台虚拟主机便可以非常容易地构建Swarm集群。提示:节点id后的星号表示的是当前连接着的节点。下面的步骤将演示如何以master、node1和node2三个节点来构建一个Docker Swarm集群。提示:如果不小心忘了这个命令那么可以在master上运行下面的命令,随时调取出这部分的信息。(3)在node1和node2节点上执行命令将其作为worker,加入Swarm集群。(4)在master上查看集群的节点信息,如下图所示。原创 2024-08-28 07:46:35 · 385 阅读 · 0 评论 -
【赵渝强老师】Docker Swarm集群的体系架构
下图展示了Docker Swarm的体系架构。Swarm Manager对外暴露了操作的接口,外部的用户可以通过这个接口来实现对集群的管理。对于较大规模的Docker集群,可以将Swarm Manager单独部署到一台服务器上,从而提高它的性能。Swarm Node节点可以从Swarm Manager节点上接收命令,从而创建相应的容器来运行应用程序。但作为用户来说,只能笼统地向集群发出指令而不能具体到某台具体的服务器上要干什么,这是由Swarm Manager上的Scheduler调度器完成的。原创 2024-08-27 19:31:22 · 996 阅读 · 0 评论 -
【赵渝强老师】使用Docker Machine远程管理Docker
Docker Machine是Docker官方提供的一个远程管理工具。通过使用Docker Machine,可以帮助开发人员在远程主机上安装Docker;或者在远程的虚拟主机上直接安装虚拟机并在虚拟机中安装Docker。Docker Machine还提供了相应的命令来管理这些远程的Docker环境和虚拟机。下图是官方提供的一张关于Docker Machine的图片,很形象地说明了Docker Machine的功能。【赵渝强老师】使用Docker Machine远程管理Docker。原创 2024-08-26 09:35:37 · 1032 阅读 · 1 评论 -
【赵渝强老师】使用Docker Compose管理容器
Docker Compose 通过一个yml的描述文件来管理一个复杂系统中的多个容器。在该描述文件中,所有的容器都是通过services来进行定义。Docker Compose使用docker-compose脚本来完成服务的启动、停止、管理和扩容等工作。因此Docker Compose非常适合使用多个容器来组成一个复杂应用系统的场景。【赵渝强老师】使用Docker Compose管理容器这里将通过一个具体的示例来演示如何使用Docker Compose。下图便描述了本小节示例的架构。原创 2024-08-25 11:04:22 · 788 阅读 · 1 评论 -
【赵渝强老师】Docker三剑客
在Docker容器中提供了三个非常有用的工具,它们分别是:Docker Compose、Docker Machine和Docker Swarm。下面分别进行介绍。【赵渝强老师】Docker的三剑客。原创 2024-08-24 09:38:52 · 1028 阅读 · 0 评论 -
【赵渝强老师】Kubernetes中Pod的基础容器
Pod是Kubernetes中的一个逻辑单位 ,它代表集群上正在运行的一个进程。Pod是Kubernetes集群中的一个应用实例,由一个或者多个容器组成。Pod支持多种容器执行环境,而Docker则是Kubernetes Pod中最常见的执行环境 ,Pods也支持其他容器引擎作为执行环境。这种类型的容器对用户是透明的,作为用户来说不应该操作这种了下的容器。Pod由一个或者多个容器组成,这里的容器通常指的是运行应用程序的业务容器。但是Pod中除了业务容器外,还有基础容器、初始化容器和临时容器。原创 2024-08-19 08:47:09 · 200 阅读 · 0 评论 -
【赵渝强老师】Pod中的临时容器
因为当Pod中的容器异常退出或者容器镜像不包含调试工具时,例如没有shell时,会导致命令“kubectl exec”无法使用。临时容器是一种特殊的容器,它在现有的Pod中临时运行,以便完成用户发起的操作,例如故障排查和性能诊断等。Pod由一个或者多个容器组成,这里的容器通常指的是运行应用程序的业务容器。但是Pod中除了业务容器外,还有基础容器、初始化容器和临时容器。提示:这里使用busybox的镜像来创建临时容器,Kubernetes将自动启动临时容器的控制台。【赵渝强老师】Pod中的临时容器。原创 2024-08-07 08:14:03 · 380 阅读 · 0 评论 -
【赵渝强老师】Pod中的业务容器
Pod由一个或者多个容器组成,这里的容器通常指的是运行应用程序的业务容器。但是Pod中除了业务容器外,还有基础容器、初始化容器和临时容器。业务容器(Containers)是实际运行应用程序的容器,例如:下面示例中创建的“busybox-container”。有了上面的描述信息后,便可以使用下面的语句来创建Pod了。【赵渝强老师】Pod中的业务容器。原创 2024-08-06 16:20:28 · 216 阅读 · 0 评论 -
【赵渝强老师】Pod中的初始化容器
初始化容器晚于基础容器运行,但先于业务容器运行。如果Pod的初始化容器运行失败,在默认情况下Kubernetes会不断尝试重启Pod,直到初始化容器运行成功。通过“Message”的输出信息可以看成,Kubernetes首先启动了两个初始化容器“init-myservice”和“init-mydb”,最后启动了业务容器“myapp-container”。Pod由一个或者多个容器组成,这里的容器通常指的是运行应用程序的业务容器。但是Pod中除了业务容器外,还有基础容器、初始化容器和临时容器。原创 2024-08-05 08:36:29 · 515 阅读 · 0 评论 -
【赵渝强老师】Docker的None网络模式
在该隔离的网络模式环境下,运行在宿主机上的各个容器具有完全独立的网络栈,并且Docker容器的网络环境与宿主机相互隔离。通过配置使用Docker的不同网络模式,可以使容器共享宿主机的网络命名空间,也可以实现容器间的相互访问。在none模式下的容器具有独立的网络命名空间,但不包含任何网络配置,只能通过Local Loopback网卡进行通信。none模式具有最少的网络模式,需要手动进行网络的配置,例如使用pipwork指定容器的IP地址等。由于None网络模式是一种特殊的网络配置,它会禁用容器的网络功能。原创 2024-08-02 10:23:06 · 313 阅读 · 0 评论 -
【赵渝强老师】Docker的Host网络模式
即这时容器可以直接使用宿主机的IP地址与外界进行通信,且容器内服务的端口也可以直接使用宿主机的端口,不需要进行任何的转换。在该隔离的网络模式环境下,运行在宿主机上的各个容器具有完全独立的网络栈,并且Docker容器的网络环境与宿主机相互隔离。通过配置使用Docker的不同网络模式,可以使容器共享宿主机的网络命名空间,也可以实现容器间的相互访问。对比一下容器内的网络信息和宿主机的网络信息,如下图所示,可以发现,容器与宿主机共享了同一个网络命名空间,即容器使用了宿主机的网络配置信息。原创 2024-08-02 10:21:44 · 167 阅读 · 0 评论 -
【赵渝强老师】Docker的Container网络模式
由于Docker的容器彼此之间是逻辑隔离的,所以,在安装Docker时会为在容器创建隔离的网络环境。在该隔离的网络模式环境下,运行在宿主机上的各个容器具有完全独立的网络栈,并且Docker容器的网络环境与宿主机相互隔离。通过配置使用Docker的不同网络模式,可以使容器共享宿主机的网络命名空间,也可以实现容器间的相互访问。这是因为在创建容器B时使用了container模式,使得容器B不再创建自己的网络命名空间,而直接使用容器A的网络命名空间。但是运行在这种网络模式下的容器,不存在网络的隔离。原创 2024-08-02 10:19:59 · 403 阅读 · 0 评论 -
【赵渝强老师】Docker的Bridge网络模式
由于Docker的容器彼此之间是逻辑隔离的,所以,在安装Docker时会为在容器创建隔离的网络环境。在该隔离的网络模式环境下,运行在宿主机上的各个容器具有完全独立的网络栈,并且Docker容器的网络环境与宿主机相互隔离。通过配置使用Docker的不同网络模式,可以使容器共享宿主机的网络命名空间,也可以实现容器间的相互访问。利用Bridge模式,可以非常方便地实现容器与容器之间、容器与宿主机之间的网络隔离。并且通过使用宿主机上的docker0网桥,容器可以实现与宿主机乃至外部网络进行相互的网络通信。原创 2024-08-02 10:18:53 · 453 阅读 · 0 评论 -
【赵渝强老师】Docker的数据持久化
在生产环境中使用Docker时,一方面,往往需要对数据进行保存或者在多个容器之间进行数据共享;另一方面,在Docker的容器被删除销毁后,并不保留容器状态的信息。那么如何实现信息的持久化操作呢?这必然涉及容器的数据管理操作和数据的持久化。在Docker容器中,实现数据的管理(或者说实现数据的持久化),主要可以通过两种方式来实现。【赵渝强老师】Docker的数据持久化。原创 2024-08-02 10:14:00 · 565 阅读 · 0 评论 -
【赵渝强老师】Kubernetes命令行管理工具:kubectl
(2)使用镜像nginx:1.14,创建一个名叫“nginx”的Deployment资源。该资源有3个副本,并且暴露资源的80端口。(3)为名叫“nginx”的Deployment资源创建一个“NodePort”类型的服务。(5)使用镜像”nginx:1.15“更新名叫“nginx”的Deployment资源。(6)查看名叫“nginx”的Deployment资源发布历史版本。(7)回滚名叫“nginx”的Deployment资源到上一个版本。(8)删除名叫“nginx”的Deployment资源。原创 2024-08-01 10:57:23 · 313 阅读 · 0 评论 -
【赵渝强老师】什么是Docker File?
Dockerfile是一个文本文件,其内包含一条条的指令,每一条指令都用于构建镜像中的一层。Dockerfile可以使用“docker build”命令进行编译。在编译过程中,每一条指令的内容就是描述该层应如何进行构建。当我们需要定制自己额外的需求时,只需要在Dockerfile文件的基础上添加或者修改指令,重新生成新的镜像即可。【赵渝强老师】Dockerfile。原创 2024-08-01 10:31:25 · 743 阅读 · 0 评论 -
【赵渝强老师】使用二进制包方式安装Docker
这时可以使用Docker官方提供的二进制包进行Docker的离线安装。不管使用yum方式还是二进制包方式,在安装完成后,Docker的使用方式是完全一样的。(7)新开启一个命令窗口,执行下面的语句查看Docker的版本信息(包括Docker客户端与Docker服务器端的版本),可以看到版本为20.10.9,如下图所示。以上命令除了将Docker运行在后台以外,还会保存Docker的日志到“/tmp/docker.log”文件中。(10)启动Docker,并设置Docker为开机自启模式,如下图所示。原创 2024-08-01 09:24:00 · 398 阅读 · 0 评论 -
【赵渝强老师】什么是Kubernetes的Pod
Pod是Kubernetes中的一个逻辑单位 ,它代表集群上正在运行的一个进程。Pod是Kubernetes集群中的一个应用实例,由一个或者多个容器组成。Pod中还可以包含数据的持久化存储、网络配置等资源。Pod支持多种容器执行环境,而Docker则是Kubernetes Pod中最常见的执行环境 ,Pods也支持其他容器引擎作为执行环境。【赵渝强老师】什么是Kubernetes的Pod下图说明了Pod的组成结构。原创 2024-07-31 19:18:12 · 193 阅读 · 0 评论 -
【赵渝强老师】什么是Docker的镜像
Docker的镜像是一个模板,或者说其是一个只读的文件。在该模板中包含应用程序和应用程序运行时所需要的依赖环境。Docker的镜像采用的是分层的文件系统,每一次对镜像的修改将以读写层的形式增加到原来的只读文件的模板上。Docker默认的镜像存储路径是“/var/lib/docker”,也可以自定义其他路径。另外,在物理存储上,镜像的本质其实是磁盘上一系列文件的集合,如上图所示。下图展示了Docker镜像的分层结构。【赵渝强老师】Docker的镜像。原创 2024-07-31 19:13:54 · 164 阅读 · 0 评论 -
【赵渝强老师】Kubernetes的体系架构
在学习Kubernetes之前,有必要了解一下它的体系架构及其组件。这对于后续部署Kubernetes集群及使用它都非常的重要。下图展示了Kubernetes的体系架构。Kubernetes属于主从分布式架构的体系架构,主要包括master的主节点和node的工作节点。实际的生产环境中,node的工作节点至少两个。【赵渝强老师】Kubernetes的体系架构下面对master和node做一个简单的介绍。master作为集群的主节点,它控制着整个集群并对集群进行管理和调度。原创 2024-07-31 18:39:15 · 977 阅读 · 0 评论 -
【赵渝强老师】Docker的体系架构
Docker是一个客户端服务器(Client-Server)架构。Docker客户端和Docker守护进程交流,而Docker的守护进程是运作Docker的核心,起着非常重要的作用(如构建、运行和分发Docker容器等)。【赵渝强老师】Docker的体系架构Docker客户端和Docker的守护进程,可以运行在同样的系统上,也可以是不同的系统上。用户可以连接一个Docker客户端到一个远程Docker守护进程中。Docker客户端和守护进程,通过sockets或RESTful API进行沟通。原创 2024-07-31 11:38:31 · 408 阅读 · 0 评论