如果想了解或者学习云原生的友友们,欢迎订阅哦~🤗,目前一周三更,努力码字中🧑‍💻…目前第一章是一些介绍和概念性的知识,可以先在脑海里有一个知识的轮廓,从第二章开始就会伴随着代码,一边实战一边学习🤝。

往期回顾:

【云原生概念和技术】1.1 云原生的概述

1.2 云原生技术概括

1.2.1 容器化技术

容器化技术是一种虚拟化技术,其将应用程序及其相关依赖项打包成一个独立的可移植的容器。与传统的虚拟机不同,容器化技术在宿主机内运行,共享宿主机操作系统内核,因此可以更轻松地实现跨平台和一致性,并且占用资源更少。

在这里插入图片描述

1.2.1.1容器化技术的优点

容器化技术具有以下优点:

  1. 更加轻量:由于容器只需要部署应用程序及其依赖项,因此比完整的虚拟机更加轻量。
  2. 更加灵活:容器可以快速创建、启动和停止,可以根据需要自定义配置和环境变量。
  3. 更加便携:由于容器可以在任何环境中运行,因此可以在开发、测试和生产环境之间轻松迁移。

1.2.1.2 容器化技术的应用场景

容器化技术的应用场景:

  1. 应用程序的部署和管理:容器化技术可以帮助简化应用程序的部署和管理流程,提高部署效率和一致性。
  2. 微服务架构:容器化可以在微服务架构中使用,每个微服务都可以被打包成一个独立的容器,这样在扩展、升级和回滚方面更加灵活和可控。
  3. DevOps 实践:容器化技术可以在 DevOps 实践中使用,通过自动化工具实现持续集成和持续部署,并且能够更快速地响应变更请求。
  4. Hybrid Cloud 环境:由于容器化技术的便携性,可用于在私有云和公有云之间迁移应用程序,加速应用程序从传统基础设施向云端转型。

1.2.2 Docker 容器化引擎

Docker 容器化引擎是一款基于容器化技术的平台,它是最受欢迎的容器化平台之一,其支持创建、发布和管理容器,可以帮助开发人员和运维人员更容易地构建、部署和运行应用程序。

1.2.2.1 Docker 容器化引擎主要组件

Docker 容器化引擎的主要组件包括:

  1. Docker 镜像:一个静态的文件,其中包含应用程序及其所有依赖项,可以用来创建容器实例。
  2. Docker 容器:一个运行实例,由Docker镜像创建,包含应用程序及其所有依赖项,以及它们在运行时的状态。
  3. Docker 仓库:类似于代码仓库,Docker 镜像可以发布到 Docker 仓库中并与他人共享。

1.2.2.2 Docker 优点:

使用 Docker 可以获得以下优点:

  1. 简化了开发和部署流程:Docker 可以让开发人员将应用程序及其所有依赖项打包成一个容器,从而简化了开发和部署流程。
  2. 提高了部署速度:由于 Docker 镜像已经包含了所有的依赖项,因此部署速度更快,并且可以更轻松地进行回滚操作。
  3. 支持构建、测试和交付:Docker 可以帮助团队构建、测试和交付应用程序,从而提高了整个开发流程的效率。

在使用 Docker 进行容器化部署时,可以先创建一个 Docker 镜像,然后根据需要启动和管理多个 Docker 容器实例,这些容器实例之间互相隔离,并且共享宿主机操作系统内核,从而提高了资源利用率和运行效率。

1.2.3 Kubernetes和容器编排技术

Kubernetes 是一个开源的容器编排平台,它可以帮助自动化应用程序部署、扩展和管理。Kubernetes 的目标是提供一个可移植、可扩展和可定制的平台,使得容器化应用能够在跨多个主机的集群中高效地运行。

1.2.3.1 Kubernetes 核心功能

Kubernetes 提供了以下核心功能:

  1. 自动化扩展和负载均衡:Kubernetes可以根据应用程序的负载情况自动水平扩展和缩减容器实例,并且可以通过服务发现和负载均衡来确保流量的平衡和稳定性。
  2. 服务发现和 DNS:Kubernetes 支持内置的服务发现和 DNS 解析功能,可以帮助应用程序轻松地访问其他容器和服务。
  3. 存储和网络管理:Kubernetes 提供了灵活和可插拔的存储和网络管理系统,可以根据需要选择最适合应用程序的存储和网络方案。
  4. 自我修复和滚动更新:Kubernetes 可以监控并自动修复容器实例的健康状况,并且支持无停机滚动更新操作。

1.2.3.2 Kubernetes 主要组件

Kubernetes 的主要组件包括:

  1. Master 组件:负责集群的管理和控制,包括 API Server、Controller Manager、Scheduler 等组件。
  2. Node 组件:运行在每个节点上,负责容器的运行和管理,包括 Kubelet、Kube-proxy 等组件。
  3. etcd:一个分布式键值存储系统,用于保存 Kubernetes 集群的配置信息。

1.2.3.3 Kubernetes 的优点

使用 Kubernetes 可以获得以下优点:

  1. 自动化应用程序部署和扩展:Kubernetes可以根据应用程序的负载情况自动扩展和缩减容器实例,并且可以确保容器实例在多个节点之间分布均衡。
  2. 支持多种应用程序类型:Kubernetes 支持多种不同类型的应用程序,包括无状态应用程序、有状态应用程序、批处理应用程序等。
  3. 跨云平台支持:Kubernetes 可以在多个云平台之间轻松迁移应用程序,从而提高了灵活性和可扩展性。
  4. 社区支持:Kubernetes 拥有一个庞大的开源社区,可以提供广泛的支持和资源。
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐