欢迎光临
我们一直在努力

docker-compose vs K8s

docker-compose.yml和K8s YAML装的软件本质就是一个个的docker

1. 核心结论(最重要)

✅ docker-compose.yml
= 单机版容器编排
= 一台机器上,一键启动:MySQL、Redis、微服务、Nginx…

✅ K8s YAML
= 集群版容器编排
= 多台机器上,一键启动:MySQL、Redis、微服务、Nginx…

👉 它们的目的完全一样:用配置文件自动装软件、跑服务!
👉 不用手动安装任何东西!
👉 都是 IaC!

2. 最直观对比(一看就懂)

① docker-compose.yml(你本地用)

version: '3'
services:
mysql:
image: mysql:8.0
ports:
"3306:3306"
redis:
image: redis:7

作用:
一行命令 docker-compose up
✅ 自动下载镜像
✅ 自动启动 MySQL + Redis
✅ 不用手动装

② K8s YAML(线上环境用)

# MySQL
apiVersion: apps/v1
kind: Deployment
metadata:
name: mysql
spec:
template:
spec:
containers:
name: mysql
image: mysql:8.0

作用:
一行命令 kubectl apply -f xxx.yaml
✅ 自动下载镜像
✅ 自动启动 MySQL
✅ 不用手动装

3. 它们到底像不像?

像到不能再像!

共同点:

  • 都用 YAML
  • 都用 image(镜像)
  • 都能 自动安装、自动启动软件
  • 都不用手动登录服务器装环境
  • 都是 基础设施即代码(IaC)

4. 唯一区别(超级简单)

特点docker-compose.ymlK8s YAML
运行环境 1台电脑/服务器 多台服务器集群
规模 小、本地开发 大、生产、高并发
能力 启动、停止 自愈、负载、扩容、高可用
复杂度 简单 稍微复杂一点

docker-compose.yml = 单机版一键装软件
K8s YAML = 集群版一键装软件

五、 ✅ K8s YAML 能干 2 大类事情

1. 安装/运行软件(Deployment / StatefulSet)

比如:

  • MySQL
  • Redis
  • Jenkins
  • 微服务
  • Nexus

= 相当于“自动装软件、启动服务”

你写一个 YAML:

image: mysql:8.0

K8s 就会:
自动下载 → 自动安装 → 自动启动 MySQL

2. 创建账号、权限、网络、配置(ServiceAccount / RBAC / ConfigMap 等)

比如:

  • 创建一个账号(ServiceAccount)
  • 给账号授权(RBAC)
  • 创建网络(Service)
  • 创建配置(ConfigMap)
  • 创建密钥(Secret)

= 相当于“给软件配账号、配权限、配环境”

你再写一个 YAML:

kind: ServiceAccount
metadata:
name: myadmin

K8s 就会:
自动创建一个账号

再写一个授权 YAML:

kind: ClusterRoleBinding

K8s 就会:
给这个账号分配权限

这就是你理解的:创建账号、分配权限

K8s 里所有东西——软件、账号、网络、配置、权限——全部用 YAML 定义!

  • 想装 MySQL?写 YAML
  • 想开 Redis?写 YAML
  • 想创建账号?写 YAML
  • 想分配权限?写 YAML
  • 想配置网络?写 YAML

全部 YAML!全部 IaC!

为什么要这样设计?
因为:

  • 不用手动登录机器
  • 不用手动敲命令
  • 不用手动建账号
  • 不用手动装环境

全部交给 YAML 文件,一键创建、一键复制、一键迁移!

赞(0)
未经允许不得转载:171主机测评 » docker-compose vs K8s
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址