492 字
2 分钟
Docker入门系列 (7) - Docker 与 Kubernetes 集成
随着容器技术的发展,Kubernetes(简称 K8s)已成为容器编排的事实标准
本章将介绍如何将 Docker 与 Kubernetes 集成,理解两者的关系,并完成一个基础的容器部署示例
为什么选择 Kubernetes
虽然 Docker Swarm 提供了基本的容器编排能力,但 Kubernetes 拥有更强大的功能和更广泛的社区支持:
- 自动化部署与回滚
- 服务发现与负载均衡
- 弹性伸缩与资源调度
- 健康检查与自愈机制
- 丰富的生态系统与插件支持
Docker 与 Kubernetes 的关系
- Docker 是容器运行时,负责构建和运行容器
- Kubernetes 是容器编排平台,负责调度和管理容器集群
- Kubernetes 可使用 Docker 作为底层运行时(也支持其他如 containerd)
环境准备
推荐使用以下方式快速体验 Kubernetes:
- Minikube:本地单节点 Kubernetes 集群
- Kind:基于 Docker 的 Kubernetes 集群
- K3s:轻量级 Kubernetes,适合边缘设备
安装 Minikube 示例:
brew install minikubeminikube start部署一个 Docker 镜像到 Kubernetes
- 编写 Dockerfile 构建镜像:
FROM nginxCOPY ./index.html /usr/share/nginx/html/index.html- 构建并推送镜像到镜像仓库:
docker build -t yourname/nginx-demo .docker push yourname/nginx-demo- 编写 Kubernetes 部署文件
deployment.yaml:
apiVersion: apps/v1kind: Deploymentmetadata: name: nginx-demospec: replicas: 2 selector: matchLabels: app: nginx-demo template: metadata: labels: app: nginx-demo spec: containers: - name: nginx image: yourname/nginx-demo ports: - containerPort: 80- 创建服务
service.yaml:
apiVersion: v1kind: Servicemetadata: name: nginx-servicespec: type: NodePort selector: app: nginx-demo ports: - protocol: TCP port: 80 targetPort: 80 nodePort: 30080- 部署到 Kubernetes:
kubectl apply -f deployment.yamlkubectl apply -f service.yaml访问服务:
minikube service nginx-service管理与监控
- 查看 Pod 状态:
kubectl get pods - 查看服务状态:
kubectl get svc - 查看日志:
kubectl logs <pod-name> - 使用 Dashboard 或 Prometheus 进行可视化监控
总结
Kubernetes 提供了比 Docker Swarm 更强大的容器编排能力,是构建现代微服务架构的首选平台
通过将 Docker 镜像部署到 Kubernetes,你可以实现真正的弹性伸缩、高可用与自动化运维
Docker入门系列 (7) - Docker 与 Kubernetes 集成
https://blog.hiyun.top/posts/docker入门系列-7---docker-与-kubernetes-集成/ 这篇文章是否对你有帮助?