当前位置: 首页 > article >正文

容器化核心快速入门

 概述

  • 物理机:好比是独立的大船,独立发动机,独立船舱。所有资源共用。运水果的同时就不能运鱼( 1964年)
  • 虚拟机:相当于把大船进行改造,把大船的资源进行独立的拆分,独立的部分都有单独的发动机、船舱资源,互不影响。可以同时运水果、蔬菜、鱼。但是独立分隔的资源,会有资源损耗和浪费。(2006年)
  • 容器:相当于船上的集装箱。集装箱之间相互隔离,不用关心集装箱里装的什么。对大船的资源实现更高程度的使用。( 2013 年)

 容器

随着信息爆炸时代来临,服务数量也随之激增。零散的几个服务可能不需要费劲就能管理好,但是要做大做强,我们就需要组建集群(船队)。这时候,如何管理船队就变成了一个难题:

Docker

什么是Docker

Docker是基于容器技术开发的一个应用, 提供了一个开放的、标准化的打包、部署容器的方法。使得容器实现轻巧、秒级启动、版本管理、可移植性等特性。

Docker底层实现

  • VM虚拟机 在物理机上虚拟一个独立的Guest OS,并利用Hypervisor虚拟化CPU、内存、IO设备等实现资源隔离。
  • Docker 利用Linux内核特性实现的隔离,运行容器的速度几乎等同于直接启动进程。 每个容器一个单独的命名空间,容器内的应用都像是运行在独立的OS中一样,彼此之间互不影响。

容器镜像

  • 镜像是一个特殊文件系统,提供容器运行所需的程序、库、资源、配置等。
  • 镜像不包含任何动态数据,其内容在构建之后也不会被改变。
  • 镜像相当于一个只读的模板,可以用来创建容器。

Dockerfile

  • Dockerfile是用来构建镜像过程的描述文本文件,包含自定义的指令和格式。
  • 可以通过docker build命令根据Dockerfile构建镜像。

容器

  • 从镜像创建的运行实例。可以被启动、开始、停止、删除。
  • 镜像好比光碟,容器好比用光碟播放出来的电影。
  • 容器本质上是运行在宿主机上的进程。
  • 容器通过linux的namespace实现资源隔离,通过cgroups实现资源限制,通过Capabilities实现了操作权限控制。
Docker ps

Dockerfile编写实践:基本语法

Docker常用命令

  • docker build,构建镜像;
  • docker push,推送镜像;
  • docker run,新建并启动容器;
  • docker stop,停止容器;
  • docker rm,移除容器;
  • docker ps,查看容器;
  • docker logs, 查看容器中的日志;
  • docker exec,进入容器并执行命令;

Kubernetes (k8s)

什么是K8S

Kubernetes (k8s)是2014年谷歌开源的一个能满足自动化部署、弹性伸缩和调度管理的开源容器化平台。使用 Kubernetes,你可以快速、高效地满足docker集群管理需求。

k8s整体架构图

Kubernetes常用资源

  • Pod,可被k8s管理的最小部署单元,包含一个或多个容器。
  • ReplicaSet & Deployment,无状态服务,Pod管理控制器,管理副本数量、升级策略等。 StatefullSet,有状态服务,稳定标识,有序部署,扩展。
  • DaemonSet, Pod 运行在集群中的全部或者部分节点上。
  • Job,Cronjob ,任务管理
  • Service,为一组pod提供一种可以访问它们的策略 ,并提供负载均衡的能力
  • Ingress,用于将不同URL的访问请求转发到后端不同的Service,以实现HTTP层的业务路由机制。
  • Volume,持久存储卷。
  • ConfigMap,Secret,配置管理,秘钥管理。
  • HPA,水平自动扩缩容,基于服务负载实现实例自动增减。

Kubernetes几个重点的功能特性:

容器化优势


http://www.kler.cn/a/369630.html

相关文章:

  • Win11安装基于WSL2的Ubuntu
  • member access within null pointer of type ‘ListNode‘
  • 创新业态下金融头部机构在 FICC 平台建设上的思考与实践
  • 【论文阅读】Reliable, Adaptable, and Attributable Language Models with Retrieval
  • [Python学习日记-53] Python 中的正则表达式模块 —— re
  • 论文笔记(五十)Segmentation-driven 6D Object Pose Estimation
  • 隨筆 20241023 Kafka 的数据事
  • 11月12日Sui Connect: 曼谷站开启,准备好见面了吗?
  • 自考经历与学习总结
  • 【Spring】Spring Boot 配置文件(7)
  • Docker 私有仓库 Harbor介绍
  • go-zero 的使用
  • 深入解析 OceanBase 数据库中的局部索引和全局索引
  • 模型训练识别手写数字(一)
  • 深入理解支持向量机:从基本原理到实际应用
  • 数据库中少数民族名字的存储
  • vue子组件修改父组件的值
  • #渗透测试#红蓝对抗#Src漏洞挖掘 介绍-Yakit(3)
  • 深度学习:SGD的缺点
  • redis学习路线和内容
  • Javascript立即执行函数
  • 微服务之间调用,OpenFeign传递用户(RequestInterceptor接口)
  • JavaSet集合
  • [332]基于springboot的养老院管理系统
  • 基于SpringBoot的洗浴管理系统【附源码】
  • 400行程序写一个实时操作系统(十七):调度算法的实现