从容器到k8s,演变过程和具体案例分享

▲ 点击上方"DevOps和k8s全栈技术"关注公众号

Kubernetes(k8s)是一种开源的容器编排平台,它能够管理和自动化容器化的应用程序的部署、扩展和运行。Kubernetes 可以与 Docker 等容器运行时(runtime)一起使用,但是它本身并不包含容器运行时,它是一种将多个容器组织起来协同工作的平台。

Kubernetes 的容器编排是通过定义一组对象来完成的,这些对象可以描述容器、容器集合和它们之间的关系。这些对象包括:

  • Pod: 一个或多个容器的集合,它们共享网络和存储资源,并可以在同一个节点上调度运行。

  • Service: 一种可以访问一组 Pod 的抽象方式,它为 Pod 提供一个稳定的网络地址和一个 DNS 名称,这样可以轻松地对它们进行负载均衡和发现。

  • ReplicaSet: 一种保证指定数量 Pod 副本运行的控制器,当 Pod 副本数少于指定数量时,它会自动创建新的副本;当 Pod 副本数多于指定数量时,它会自动删除多余的副本。

  • Deployment: 一种管理 ReplicaSet 的高级控制器,它提供滚动更新和回滚功能,可以无缝地升级和降级应用程序的版本。

Kubernetes 与 Docker 的关系是,Kubernetes 本身并不包含容器运行时,它只是一种管理容器的平台。而 Docker 则是一种容器运行时,它可以运行容器,并且还提供了构建、打包和分享容器的工具。

Docker 发展到 Kubernetes 的过程是因为 Docker 的容器编排功能有限,只能实现基本的容器管理,无法处理复杂的容器部署和管理需求。Kubernetes 则可以处理更复杂的容器管理任务,例如多个容器的协同工作、负载均衡、自动扩展等。

以下是一个 Kubernetes 的实战案例:

  1. 部署应用程序

假设有一个名为 myapp 的应用程序,需要将它部署到 Kubernetes 集群中。可以使用以下命令创建一个 Deployment 对象,将 myapp 部署为一个 Pod:

$ kubectl create deployment myapp --image=myapp:1.0
  1. 暴露服务

为了让其他 Pod 或外部用户能够访问 myapp,需要创建一个 Service 对象。可以使用以下命令将 myapp 暴露为一个 NodePort 类型的 Service:

 
  
$ kubectl expose deployment myapp --type=NodePort --port=80
  1. 扩展应用程序

当需要扩展应用程序时,可以使用以下命令来增加 Pod 副本的数量:

$ kubectl scale deployment myapp --replicas=3

此命令将在集群中创建三个 myapp 的 Pod 副本。

  1. 滚动更新应用程序

如果需要更新应用程序的版本,可以使用以下命令来滚动更新:

$ kubectl set image deployment/myapp myapp=myapp:2.0

此命令将 myapp 的镜像版本从 1.0 更新为 2.0,并开始滚动更新所有 Pod 副本。在此过程中,Kubernetes 将自动保持一定数量的旧 Pod 副本,以确保应用程序的可用性。

  1. 回滚应用程序

如果更新过程中出现问题,可以使用以下命令回滚应用程序的版本:

$ kubectl rollout undo deployment/myapp

此命令将回滚 myapp 的版本,并重新创建旧版本的 Pod 副本。

这只是 Kubernetes 的一个基本示例,实际上 Kubernetes 还有很多高级功能,例如自动扩展、高可用性、多租户支持等。要深入了解 Kubernetes 的更多内容,可以参考 Kubernetes 的官方文档。

精彩文章推荐

年底了,总结下这一年,收获满满

看看kubernetes在2022年的这11个数据

Kuberentes 上 GitOps 最佳实践

Kubernetes常见的日常故障处理指南|干货分享|适合各类基础人员学习

K8S大规模集群优化方案系列文章-第一篇

线上问题解决-socket: too many open files(打开的文件过多)

Jenkins使用ssh从git仓库拉取代码

无法从另一个容器访问Docker容器中的MySQL数据库|解决方案

CentOS 8/7宣布停用后,有哪些最佳替代方案?|个人推荐rocky linux

k8s集群calico网络故障排查思路

k8s证书过期之后如何自动续订证书

在 Kubernetes 上调用 GPU

linux系统常用命令大全

作者微信:luckylucky421302

bf2593a9ba2403ac2dab71c94543479f.png

             点亮收藏,服务器10年不宕机a8aab7367de54c221ad8af92f300b7fa.gif

猜你喜欢

转载自blog.csdn.net/weixin_38320674/article/details/130097531