一、Docker Slim介绍
在软件开发和运维领域,Docker已经成为一种常见的容器化解决方案。
然而,随着Docker镜像不断增大,其扩展性和部署效率也逐渐降低。
这时就需要使用Docker Slim来优化镜像,减小其体积和启动时间,提高容器的性能。
Docker Slim的类图示例
二、Docker Slim安装
三、Docker Slim实例
3.1实例一
先看下官方案例
我们跟着案例来测试下
那么到底能不能运行起来呢?
测试没问题,说明压缩后的镜像,可以正常run起来
3.2实例二
3.3实例三
3.4实例四
3.5实例五
3.6实例六
压缩前后的镜像对比
3.7实例七
四、扩展
4.1 Karmada
Karmada 是一个开源的 Kubernetes 多集群管理工具,允许用户跨多个 Kubernetes 集群进行资源调度和应用部署。以下是部署 Karmada 的基本步骤:
- 环境准备:确保安装了 Go 语言环境、kubectl 以及 kind 工具 。
- 安装 Karmada 控制面:
- 克隆 Karmada 的 GitHub 代码仓库到本地机器。
- 进入 karmada 目录,运行部署脚本以启动 Kubernetes 集群(用于运行 Karmada 控制面,即
host cluster
)并部署 Karmada 控制面组件 。
- 配置 kubeconfig:设置环境变量
KUBECONFIG
以使用 Karmada 环境,并通过kubectl config use-context
命令切换不同的上下文 。 - 分发应用程序:
- 创建 Deployment,例如 nginx deployment。
- 创建 PropagationPolicy,定义资源如何在不同集群间分发 。
- 将成员集群注册到 Karmada 控制面:使用
kubectl karmada join
或kubectl karmada register
命令将成员集群注册到 Karmada 控制面 。 - 查看集群状态:使用
kubectl get clusters
查看已注册的集群状态 。 - 应用多集群部署:通过创建和应用 PropagationPolicy 来实现资源的多集群部署 。
- 联邦注销与清理:如果需要,可以使用
kubectl karmada unjoin
和kubectl karmada uninit
命令来注销集群和清理 Karmada 环境 。 - 安装概述:Karmada 支持多种安装方式,包括通过 kubectl 插件、karmadactl、Helm Chart、Operator 或二进制文件进行安装 。
4.2 Kurator
Kurator 是华为云推出的分布式云原生开源套件,通过集成业界主流开源技术栈,帮助用户一站式构建专属的分布式云原生基础设施,助力企业业务跨云跨边、分布式化升级。Kurator v0.2 版本已具备管理多云基础设施和异构基础设施的核心能力,通过引入Cluster Operator组件,支持“AWS自建集群”和“本地数据中心集群”包括集群创建、清理等在内的生命周期管理特性。
在新发布的v0.3.0版本中,Cluster Operator不仅分别对两类集群的生命周期管理能力进行了增强,也将v0.2.0版本中的多个API对象抽象成一个API对象cluster,方便用户使用。 同时,在 cluster 对象基础上,Kurator引入了舰队的概念。每个舰队代表一个物理集群组,方便Kurator未来进行统一的编排、调度,统一的流量治理以及统一的监控运维。目前,Kurator的舰队管理支持多个特性,包括舰队控制平面的生命周期管理,以及集群注册和注销到舰队等。
【概述】
Kurator是一个开源的分布式云原生平台,帮助用户构建自己的分布式云原生基础设施,助力企业数字化转型。
Kurator 站在许多流行的云原生软件堆栈的肩膀上,包括 Kubernetes、Istio、Prometheus、FluxCD、
KubeEdge、Volcano、Karmada、Kyverno等,它为多云和多集群管理提供了强大的能力,
包括:
多云、边云、边边协同
统一资源编排
统一调度
统一流量管理
统一遥测
【优点】
基础设施即代码:云、边缘或本地基础设施(集群、节点、vpc 等)管理的声明方式。
开箱即用:一键安装云原生软件栈
集群与车队统一管理:
支持集群注册和取消注册队列。
应用程序自定义并跨机队同步。
舰队集群之间的命名空间、服务帐户、服务相同。
提供跨集群的服务发现和通信。
来自机队所有集群的聚合指标。
提供策略引擎,使所有集群的策略一致。
4.3 Volcano
Volcano是一个基于 Kubernetes 构建的批处理系统。它提供了一套通常需要的机制 许多类别的批处理和弹性工作负载,包括:机器学习/深度学习、生物信息学/基因组学和 其他“大数据”应用。这些类型的应用程序通常在通用域框架上运行,例如 Volcano集成的TensorFlow、Spark、Ray、PyTorch、MPI等。
Volcano也是 云原生计算基金会(CNCF)的一个孵化项目。