mirror of
https://github.com/yeasy/docker_practice.git
synced 2026-03-11 04:14:38 +00:00
style: apply global formatting fixes (struct, spacing, zhlint)
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
# 第十三章 容器生态
|
||||
# 第十三章容器生态
|
||||
|
||||
本章将介绍容器生态圈的相关项目与服务。
|
||||
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
|
||||
Docker 目前已经得到了众多公有云平台的支持,并成为除虚拟机之外的核心云业务。
|
||||
|
||||
除了 AWS、Google、Azure 等,国内的各大公有云厂商,基本上都同时支持了虚拟机服务和基于 Kubernetes 的容器云业务。有的还推出了其他服务,例如 [容器镜像服务](https://cloud.tencent.com/act/cps/redirect?redirect=11588&cps_key=3a5255852d5db99dcd5da4c72f05df61) 让用户在云上享有安全高效的镜像托管、分发等服务。
|
||||
除了 AWS、Google、Azure 等,国内的各大公有云厂商,基本上都同时支持了虚拟机服务和基于 Kubernetes 的容器云业务。有的还推出了其他服务,例如[容器镜像服务](https://cloud.tencent.com/act/cps/redirect?redirect=11588&cps_key=3a5255852d5db99dcd5da4c72f05df61)让用户在云上享有安全高效的镜像托管、分发等服务。
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
|
||||
图 13-3 阿里云标识
|
||||
|
||||
[阿里云](https://www.aliyun.com/?source=5176.11533457\&userCode=8lx5zmtu\&type=copy) 创立于 2009 年,是中国较早的云计算平台。阿里云致力于提供安全、可靠的计算和数据处理能力。
|
||||
[阿里云](https://www.aliyun.com/?source=5176.11533457\&userCode=8lx5zmtu\&type=copy)创立于 2009 年,是中国较早的云计算平台。阿里云致力于提供安全、可靠的计算和数据处理能力。
|
||||
|
||||
[阿里云](https://www.aliyun.com/?source=5176.11533457\&userCode=8lx5zmtu\&type=copy) 的客户群体中,活跃着微博、虎牙、魅族、优酷等一大批明星互联网公司。在天猫双 11 全球狂欢节等极富挑战的应用场景中,阿里云保持着良好的运行纪录。
|
||||
[阿里云](https://www.aliyun.com/?source=5176.11533457\&userCode=8lx5zmtu\&type=copy)的客户群体中,活跃着微博、虎牙、魅族、优酷等一大批明星互联网公司。在天猫双 11 全球狂欢节等极富挑战的应用场景中,阿里云保持着良好的运行纪录。
|
||||
|
||||
[阿里云容器服务 Kubernetes 版 ACK](https://www.aliyun.com/product/kubernetes?source=5176.11533457\&userCode=8lx5zmtu\&type=copy) 提供了高性能、可伸缩的容器应用管理服务,支持在一组云服务器上通过 Docker 容器来进行应用生命周期管理。容器服务极大简化了用户对容器管理集群的搭建工作,无缝整合了阿里云虚拟化、存储、网络和安全能力。容器服务提供了多种应用发布方式和流水线般的持续交付能力,原生支持微服务架构,助力用户无缝上云和跨云管理。
|
||||
|
||||
|
||||
@@ -6,12 +6,12 @@
|
||||
|
||||
图 13-1 AWS 标识
|
||||
|
||||
[AWS](https://www.amazonaws.cn),即 Amazon Web Services,是亚马逊(Amazon)公司的 IaaS 和 PaaS 平台服务。AWS 提供了一整套基础设施和应用程序服务,使用户几乎能够在云中运行一切应用程序:从企业应用程序和大数据项目,到社交游戏和移动应用程序。AWS 面向用户提供包括弹性计算、存储、数据库、应用程序在内的一整套云计算服务,能够帮助企业降低 IT 投入成本和维护成本。
|
||||
[AWS](https://www.amazonaws.cn),即 Amazon Web Services,是亚马逊 (Amazon) 公司的 IaaS 和 PaaS 平台服务。AWS 提供了一整套基础设施和应用程序服务,使用户几乎能够在云中运行一切应用程序:从企业应用程序和大数据项目,到社交游戏和移动应用程序。AWS 面向用户提供包括弹性计算、存储、数据库、应用程序在内的一整套云计算服务,能够帮助企业降低 IT 投入成本和维护成本。
|
||||
|
||||
在容器领域,AWS 目前主流能力可以按场景分为四类:
|
||||
|
||||
1. `Amazon EKS`:托管 Kubernetes 控制平面,适合标准云原生工作负载。
|
||||
2. `Amazon ECS`:AWS 原生容器编排服务,适合深度集成 AWS 生态(IAM、ALB、CloudWatch)场景。
|
||||
2. `Amazon ECS`:AWS 原生容器编排服务,适合深度集成 AWS 生态 (IAM、ALB、CloudWatch) 场景。
|
||||
3. `AWS Fargate`:无服务器容器运行时,可与 EKS/ECS 结合使用,减少节点运维。
|
||||
4. `Amazon ECR`:镜像仓库服务,提供私有镜像管理、扫描与访问控制。
|
||||
|
||||
|
||||
@@ -2,21 +2,21 @@
|
||||
|
||||
随着容器技术的普及,目前主流的云计算服务商都提供了成熟的容器服务。与容器相关的云计算服务主要分为以下几种类型:
|
||||
|
||||
### 1. 容器编排托管服务(Managed K8s)
|
||||
### 1。容器编排托管服务
|
||||
|
||||
这是目前最主流的形式。云厂商托管 Kubernetes 的控制平面(Master节点),用户只需管理工作节点(Worker Node)。
|
||||
这是目前最主流的形式。云厂商托管 Kubernetes 的控制平面 (Master 节点),用户只需管理工作节点 (Worker Node)。
|
||||
* **优势**:降低了 Kubernetes 集群的维护成本,高可用性由厂商保证。
|
||||
* **典型服务**:AWS EKS, Azure AKS, Google GKE, 阿里云 ACK, 腾讯云 TKE。
|
||||
* **典型服务**:AWS EKS,Azure AKS,Google GKE,阿里云 ACK,腾讯云 TKE。
|
||||
|
||||
### 2. 容器实例服务(Serverless Containers)
|
||||
### 2。容器实例服务
|
||||
|
||||
这一类服务通常被称为 CaaS (Container as a Service)。用户无需管理底层服务器(EC2/CVM),只需提供镜像和配置即可运行容器。
|
||||
这一类服务通常被称为 CaaS (Container as a Service)。用户无需管理底层服务器 (EC2/CVM),只需提供镜像和配置即可运行容器。
|
||||
* **优势**:极致的弹性,按秒计费,零运维。
|
||||
* **典型服务**:AWS Fargate, Azure Container Instances, Google Cloud Run, 阿里云 ECI。
|
||||
* **典型服务**:AWS Fargate,Azure Container Instances,Google Cloud Run,阿里云 ECI。
|
||||
|
||||
### 3. 镜像仓库服务(Container Registry)
|
||||
### 3。镜像仓库服务
|
||||
|
||||
提供安全、可靠的私有 Docker 镜像存储服务,通常与云厂商的 CI/CD 流水线深度集成。
|
||||
* **典型服务**:AWS ECR, Azure ACR, Google GCR/GAR, 阿里云 ACR。
|
||||
* **典型服务**:AWS ECR,Azure ACR,Google GCR/GAR,阿里云 ACR。
|
||||
|
||||
本章将介绍如何在几个主流云平台上使用 Docker 和 Kubernetes 服务。
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
## 多云部署策略比较
|
||||
|
||||
企业在选择容器云平台时,通常会在 AWS EKS, Azure AKS, Google GKE 以及国内的阿里云 ACK, 腾讯云 TKE 之间进行权衡。
|
||||
企业在选择容器云平台时,通常会在 AWS EKS,Azure AKS,Google GKE 以及国内的阿里云 ACK,腾讯云 TKE 之间进行权衡。
|
||||
|
||||
### 三大公有云 Kubernetes 服务对比
|
||||
|
||||
@@ -16,27 +16,27 @@
|
||||
|
||||
随着企业业务的扩展,单一云平台可能无法满足所有需求,多云部署成为趋势。
|
||||
|
||||
#### 1. 跨云灾备(Active-Passive)
|
||||
#### 1。跨云灾备 (Active-Passive)
|
||||
|
||||
主要业务运行在一个云(如 AWS),数据实时复制到另一个云(如阿里云)。当主云发生故障时,流量切换到备云。
|
||||
主要业务运行在一个云 (如 AWS),数据实时复制到另一个云 (如阿里云)。当主云发生故障时,流量切换到备云。
|
||||
|
||||
* **优点**: 架构相对简单,数据一致性好控制。
|
||||
* **缺点**: 资源闲置浪费,切换可能有 RTO。
|
||||
* **优点**:架构相对简单,数据一致性好控制。
|
||||
* **缺点**:资源闲置浪费,切换可能有 RTO。
|
||||
|
||||
#### 2. 多活部署(Active-Active)
|
||||
#### 2。多活部署 (Active-Active)
|
||||
|
||||
业务同时在多个云上运行,通过全局流量管理(DNS/GSLB)分发流量。
|
||||
业务同时在多个云上运行,通过全局流量管理 (DNS/GSLB) 分发流量。
|
||||
|
||||
* **优点**: 高可用,就近接入提升用户体验。
|
||||
* **缺点**: 数据同步复杂,跨云网络延迟问题。
|
||||
* **优点**:高可用,就近接入提升用户体验。
|
||||
* **缺点**:数据同步复杂,跨云网络延迟问题。
|
||||
|
||||
#### 3. 混合云(Hybrid Cloud)
|
||||
#### 3。混合云
|
||||
|
||||
核心数据和敏感业务保留在私有云(IDC),弹性业务或前端业务部署在公有云。
|
||||
核心数据和敏感业务保留在私有云 (IDC),弹性业务或前端业务部署在公有云。
|
||||
|
||||
* **工具**: Google Anthos, AWS Outposts, Azure Arc 都是为了解决混合云统一管理而生。
|
||||
* **工具**:Google Anthos,AWS Outposts,Azure Arc 都是为了解决混合云统一管理而生。
|
||||
|
||||
### 建议
|
||||
|
||||
* **技术选型**: 尽量使用标准的 Kubernetes API,避免过度依赖特定云厂商的 CRD 或专有服务,以保持应用的可移植性。
|
||||
* **IaC 管理**: 使用 Terraform 或 Pulumi 等工具统一管理多云基础设施。
|
||||
* **技术选型**:尽量使用标准的 Kubernetes API,避免过度依赖特定云厂商的 CRD 或专有服务,以保持应用的可移植性。
|
||||
* **IaC 管理**:使用 Terraform 或 Pulumi 等工具统一管理多云基础设施。
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
|
||||
图 13-5 腾讯云标识
|
||||
|
||||
[腾讯云](https://cloud.tencent.com/act/cps/redirect?redirect=1040\&cps_key=3a5255852d5db99dcd5da4c72f05df61\&from=console) 在架构方面经过多年积累,并且有着多年对海量互联网服务的经验。不管是社交、游戏还是其他领域,都有多年的成熟产品来提供产品服务。腾讯在云端完成重要部署,为开发者及企业提供云服务、云数据、云运营等整体一站式服务方案。
|
||||
[腾讯云](https://cloud.tencent.com/act/cps/redirect?redirect=1040\&cps_key=3a5255852d5db99dcd5da4c72f05df61\&from=console)在架构方面经过多年积累,并且有着多年对海量互联网服务的经验。不管是社交、游戏还是其他领域,都有多年的成熟产品来提供产品服务。腾讯在云端完成重要部署,为开发者及企业提供云服务、云数据、云运营等整体一站式服务方案。
|
||||
|
||||
具体包括 [云服务器](https://cloud.tencent.com/act/cps/redirect?redirect=1001\&cps_key=3a5255852d5db99dcd5da4c72f05df61\&from=console)、[云存储](https://cloud.tencent.com/act/cps/redirect?redirect=1020\&cps_key=3a5255852d5db99dcd5da4c72f05df61\&from=console)、[云数据库](https://cloud.tencent.com/act/cps/redirect?redirect=1003\&cps_key=3a5255852d5db99dcd5da4c72f05df61\&from=console)、[视频与CDN](https://cloud.tencent.com/act/cps/redirect?redirect=1019\&cps_key=3a5255852d5db99dcd5da4c72f05df61\&from=console) 和 [域名注册](https://dnspod.cloud.tencent.com) 等基础云服务;腾讯云分析(MTA)、腾讯云推送(信鸽)等腾讯整体大数据能力;以及 QQ互联、QQ 空间、微云、微社区等云端链接社交体系。这些正是腾讯云可以提供给这个行业的差异化优势,造就了可支持各种互联网使用场景的高品质的腾讯云技术平台。
|
||||
具体包括[云服务器](https://cloud.tencent.com/act/cps/redirect?redirect=1001\&cps_key=3a5255852d5db99dcd5da4c72f05df61\&from=console)、[云存储](https://cloud.tencent.com/act/cps/redirect?redirect=1020\&cps_key=3a5255852d5db99dcd5da4c72f05df61\&from=console)、[云数据库](https://cloud.tencent.com/act/cps/redirect?redirect=1003\&cps_key=3a5255852d5db99dcd5da4c72f05df61\&from=console)、[视频与 CDN](https://cloud.tencent.com/act/cps/redirect?redirect=1019\&cps_key=3a5255852d5db99dcd5da4c72f05df61\&from=console) 和[域名注册](https://dnspod.cloud.tencent.com)等基础云服务;腾讯云分析 (MTA)、腾讯云推送 (信鸽) 等腾讯整体大数据能力;以及 QQ 互联、QQ 空间、微云、微社区等云端链接社交体系。这些正是腾讯云可以提供给这个行业的差异化优势,造就了可支持各种互联网使用场景的高品质的腾讯云技术平台。
|
||||
|
||||
[腾讯云容器服务 TKE](https://cloud.tencent.com/act/cps/redirect?redirect=10058\&cps_key=3a5255852d5db99dcd5da4c72f05df61) 是高度可扩展的高性能容器管理服务,用户可以在托管的云服务器实例集群上轻松运行应用程序。使用该服务,将无需安装、运维、扩展用户的集群管理基础设施,只需进行简单的 API 调用,便可启动和停止 Docker 应用程序,查询集群的完整状态,以及使用各种云服务。用户可以根据用户的资源需求和可用性要求在用户的集群中安排容器的置放,满足业务或应用程序的特定要求。
|
||||
|
||||
|
||||
@@ -4,4 +4,4 @@
|
||||
|
||||
`CoreOS` 的安装文件和运行依赖非常小,它提供了精简的 Linux 系统。它使用 Linux 容器在更高的抽象层来管理你的服务,而不是通过常规的包管理工具 `yum` 或 `apt` 来安装包。
|
||||
|
||||
同时,`CoreOS` 几乎可以运行在任何平台:`VirtualBox` `Amazon EC2` `QEMU/KVM` `VMware` `Bare Metal` 和 `OpenStack` 等 。
|
||||
同时,`CoreOS` 几乎可以运行在任何平台:`VirtualBox` `Amazon EC2` `QEMU/KVM` `VMware` `Bare Metal` 和 `OpenStack` 等。
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
## 安装 Fedora CoreOS
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
### 下载 ISO
|
||||
|
||||
在 [下载页面](https://getfedora.org/coreos/download/) `Bare Metal & Virtualized` 标签页下载 ISO。
|
||||
在[下载页面](https://getfedora.org/coreos/download/) `Bare Metal & Virtualized` 标签页下载 ISO。
|
||||
|
||||
### 编写 FCC
|
||||
|
||||
FCC 是 Fedora CoreOS Configuration (Fedora CoreOS 配置)的简称。
|
||||
FCC 是 Fedora CoreOS Configuration (Fedora CoreOS 配置) 的简称。
|
||||
|
||||
```yaml
|
||||
## example.fcc
|
||||
@@ -20,7 +22,7 @@ passwd:
|
||||
- ssh-rsa AAAA...
|
||||
```
|
||||
|
||||
将 `ssh-rsa AAAA...` 替换为自己的 SSH 公钥(位于 `~/.ssh/id_rsa.pub`)。
|
||||
将 `ssh-rsa AAAA...` 替换为自己的 SSH 公钥 (位于 `~/.ssh/id_rsa.pub`)。
|
||||
|
||||
### 转换 FCC 为 Ignition
|
||||
|
||||
|
||||
@@ -4,15 +4,17 @@
|
||||
|
||||
### FCOS 特性
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### 一个最小化操作系统
|
||||
|
||||
FCOS 被设计成一个基于容器的最小化的现代操作系统。它比现有的 Linux 安装平均节省 40% 的 RAM(大约 114M )并允许从 PXE 或 iPXE 非常快速的启动。
|
||||
FCOS 被设计成一个基于容器的最小化的现代操作系统。它比现有的 Linux 安装平均节省 40% 的 RAM (大约 114M) 并允许从 PXE 或 iPXE 非常快速的启动。
|
||||
|
||||
#### 系统初始化
|
||||
|
||||
Ignition 是一种配置实用程序,可读取配置文件(JSON 格式)并根据该配置配置 FCOS 系统。可配置的组件包括存储,文件系统,systemd 和用户。
|
||||
Ignition 是一种配置实用程序,可读取配置文件 (JSON 格式) 并根据该配置配置 FCOS 系统。可配置的组件包括存储,文件系统,systemd 和用户。
|
||||
|
||||
Ignition 在系统首次启动期间(在 initramfs 中)仅运行一次。由于 Ignition 在启动过程中的早期运行,因此它可以在用户空间开始启动之前重新对磁盘分区,格式化文件系统,创建用户并写入文件。当 systemd 启动时,systemd 服务已被写入磁盘,从而加快了启动时间。
|
||||
Ignition 在系统首次启动期间 (在 initramfs 中) 仅运行一次。由于 Ignition 在启动过程中的早期运行,因此它可以在用户空间开始启动之前重新对磁盘分区,格式化文件系统,创建用户并写入文件。当 systemd 启动时,systemd 服务已被写入磁盘,从而加快了启动时间。
|
||||
|
||||
#### 自动更新
|
||||
|
||||
@@ -20,7 +22,7 @@ FCOS 使用 rpm-ostree 系统进行事务性升级。无需像 yum 升级那样
|
||||
|
||||
#### 容器工具
|
||||
|
||||
对于诸如构建,复制和其他管理容器的任务,FCOS 用一组容器工具代替了 **Docker CLI**。**podman CLI**工具支持许多容器运行时功能,例如运行,启动,停止,列出和删除容器和镜像。**skopeo CLI**工具可以复制,认证和签名镜像。您还可以使用**crictl CLI** 工具来处理 CRI-O 容器引擎中的容器和镜像。
|
||||
对于诸如构建,复制和其他管理容器的任务,FCOS 用一组容器工具代替了 **Docker CLI**。**podman CLI** 工具支持许多容器运行时功能,例如运行,启动,停止,列出和删除容器和镜像。**skopeo CLI** 工具可以复制,认证和签名镜像。您还可以使用 **crictl CLI** 工具来处理 CRI-O 容器引擎中的容器和镜像。
|
||||
|
||||
### 参考文档
|
||||
|
||||
|
||||
@@ -67,7 +67,7 @@ $ podman build -t myimage .
|
||||
|
||||
## Pods 的概念
|
||||
|
||||
与 Docker 不同,Podman 支持 "Pod" 的概念(类似于 Kubernetes 的 Pod),允许你在同一个网络命名空间中运行多个容器。
|
||||
与 Docker 不同,Podman 支持 “Pod” 的概念 (类似于 Kubernetes 的 Pod),允许你在同一个网络命名空间中运行多个容器。
|
||||
|
||||
```bash
|
||||
## 创建一个 Pod
|
||||
@@ -89,6 +89,8 @@ $ alias docker=podman
|
||||
|
||||
### 进阶用法
|
||||
|
||||
本节涵盖了相关内容与详细描述,主要探讨以下几个方面:
|
||||
|
||||
#### Systemd 集成
|
||||
|
||||
Podman 可以生成 systemd 单元文件,让容器像普通系统服务一样管理。
|
||||
|
||||
Reference in New Issue
Block a user