容器化核心快速入门

概述

  • 物理机:好比是独立的大船,独立发动机,独立船舱。所有资源共用。运水果的同时就不能运鱼( 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实现了操作权限控制。
Go 复制代码
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几个重点的功能特性:

容器化优势

相关推荐
ccubee几秒前
docker 安装 ftp
运维·docker·容器
探索云原生42 分钟前
在 K8S 中创建 Pod 是如何使用到 GPU 的: nvidia device plugin 源码分析
ai·云原生·kubernetes·go·gpu
启明真纳44 分钟前
elasticache备份
运维·elasticsearch·云原生·kubernetes
TsengOnce2 小时前
Docker 安装 禅道-21.2版本-外部数据库模式
运维·docker·容器
无为扫地僧2 小时前
三、ubuntu18.04安装docker
ubuntu·docker
jwolf23 小时前
基于K8S的微服务:一、服务发现,负载均衡测试(附calico网络问题解决)
微服务·kubernetes·服务发现
nangonghen3 小时前
在华为云通过operator部署Doris v2.1集群
kubernetes·华为云·doris·operator
谷莠子9053 小时前
hadoop实验之创业有感
hadoop·docker·团队开发
G丶AEOM3 小时前
Docker快速入门
docker
大熊程序猿4 小时前
airflow docker 安装
运维·docker·容器