当前位置:网站首页 > 容器化与Kubernetes > 正文

容器化 | 谈谈 K8S 部署那些事(Kubernetes-k8s)_容器 k8s docker

开篇

随着云计算技术的快速发展,云原生(CloudNative)已经成为了当下一种新的技术趋势。云原生强调应用与云平台的紧密结合,通过容器、微服务、持续集成与持续部署(CI/CD)等技术手段,实现了应用的高可用、弹性伸缩和快速选代。

曾记否,还是多年前参与云资源池的管理和应用的自动化编译、构建、部署等云计算相关平台基础设施研发。至今也的确有一段时间了,今天我们就简单聊聊在 k8s 中部署那些事。


简介

Kubernetes 是 Google 开源的一个容器编排引擎,简称K8s,用 8 代替名字中间的8个字符“ubernete”而成的缩写。它支持自动化部署、大规模可伸缩、应用容器化管理,用于管理云平台中多个主机上的容器化的应用,旨在让部署容器化的应用简单并且高效(powerful),它提供了应用部署,规划,更新,维护的一种机制。


在生产环境中部署一个应用程序时,考虑到系统的高并发,来自众多的接口请求,通常要部署该应用的多个实例以便对应用请求进行负载均衡。在 Kubernetes 中,可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去进行复杂的手工配置和处理。


案例实战

这里,我们以 Token 认证的方式进入 Kubernetes Dashboard 看板,如图这就是在安装完 k8s 给我们提供进入看板之前的界面。

像之前整个看板页面都是从 0-1 自己搭建,能够看到整个版本构建、打包、部署、流水线、制品库的完整过程。

这里,仅对 k8s 提供的原生看板界面做下简单说明:

左上方 dev | test | prod 代表命名空间,Pods 代表所有的 pod 信息列表,可以理解为你实际部署应用程序的 pod。

当然,我们对 k8s 命令熟悉的话,也可以直接在服务器端查看各个 pod 以及其对应的信息内容。

在实际使用的过程中,运维&开发童鞋查看日志是定位并解决问题的关键,这里着重介绍俩种查看日志常用的方式:

a)在当前我们需要进入应用程序对应的 pod 页面所在行,找到日志展示入口,点击打开log 控制台,即可查询当前应用程序对应服务的日志;

b)在后台服务器端,通过输入命令,查阅控制台实时日志、包含某些关键信息片段的日志等等;

#查看所有的服务 pod 信息
[root@k8s ~]# kubectl get pod -A


#查看 示例:yd-pod 应用的日志信息
[root@k8s ~]# kubectl logs -f yd-server-deployment-83g548hgc4c-j4ff0 --tail 500 -n dev


#查看 示例:yx-pod 应用的日志信息
[root@k8s ~]# kubectl logs -f yx-server-deployment-7944dd890b-jidyk --tail 500 -n dev


#查看 示例:yx-pod 应用的日志信息-带关键字
[root@k8s ~]# kubectl logs -f yx-server-deployment-7944dd890b-jidyk --tail 500 -n dev | grep '测试'

*温馨提示*:查询到所有的服务 pod 信息之后,pod的 name 由于服务启动有可能是不一样的喔,安装&部署相关问题咨询或探讨可以后台交流><


思考&延伸

01

容器化的便利与优势

容器化技术,像之前提到的 Docker,它在为开发者团队带来极大便利的同时,也使得应用可以轻松地打包、部署和运行,实现了环境的一致性和可移植性。此外,容器还提供了轻量级的隔离机制,确保了应用之间的独立性。


02

k8s 资源调度与编排

Kubernetes(k8s)作为容器编排的事实标准,为应用提供了强大的资源调度与编排功能。通过 k8s,我们可以轻松地实现容器的自动部署、扩展、滚动更新等操作,大大提高了应用的运维效率。


03

k8s 资源的隔离性

Kubernetes(k8s)提供了多种隔离机制,如其中的命名空间(Namespace)、资源配额(Resource Quotas)等,它确保了不同应用之间的资源隔离和安全性,在这种隔离性特点的加持下,使得多租户环境下的资源管理变得更加灵活和安全。


04

系统架构复杂性挑战

随着容器和 k8s 的广泛应用,系统架构的复杂性也随之增加。容器化带来了大量的微小的服务单元,每个微服务都可能有自己的依赖、配置和生命周期管理,这使得系统的整体运维和管理变得复杂。同时,k8s 本身也是一个复杂的系统,其丰富的功能和组件需要一定的学习和配置成本。


在采用容器和 k8s 技术时,我们需要进行充分的技术选型和成本考量:

其一,我们要评估这些技术是否能够满足我们的业务需求和技术发展方向。

其二,我们要考虑这些技术带来的额外成本,包括学习成本、运维成本硬件成本等。


可能有的企业根本就达不到这种量级规模,又或许出于资源成本的考虑,但是不管容器化和 k8s 带来多大的复杂性挑战,它们的优势和便利仍旧是我们无法忽视的。


随着技术的不断发展和完善,相信未来会有更多的工具和平台来帮助我们更好地管理和运维容器化应用。同时,随着云原生技术的进一步普及,容器和 k8s 也将会更加深入地融入到我们的业务和技术体系中。


05

容器与 k8s 的未来展望

总而言之,容器和 k8s 作为云原生时代的核心技术,为我们带来了极大的便利和优势。与此同时,我们需要正视它们带来的一系列复杂性挑战,并通过合理的技术选型和成本考量来平衡这些挑战和优势。


从业界及大趋势上来看,现在也都在从 DevOps->AiOps 智能化运维演变,包括云原生,其实里面囊括了容器技术,微服务,CICD 等等,从某一种程度上说也是一种文化,系统架构设计的确是一门"艺术活"。


期待容器和 k8s 能够在更多的场景中发挥作用,与其争议“某某类型服务放在 k8s 里是不是合适”,还不如探究其根源本质,也期待相关社区特别是结合国产化相关实践,推动我们的业务和技术不断向前发展!


关注【每天译点晓知识】公众号,可了解更多国产化适配内容实践回顾


推荐阅读


在国产化面前 | 我们应该如何面对?


分布式数据库 | 浅谈OB演进的一点思考


自主可控,国产正当时 | 记一次全面适配进阶思考过程


开源数据库 | 记一次多方式连接 openGauss 实践之旅


openEuler+openGauss|记一次基于鲲鹏欧拉搭建 openGauss 实践过程

版权声明


相关文章:

  • 容器化技术的演进:从Docker到Kubernetes2024-10-30 18:18:56
  • K8S与Docker的区别_k8s与docker的区别是啥2024-10-30 18:18:56
  • 为什么要虚拟化,为什么要容器,为什么要Docker,为什么要K8S?2024-10-30 18:18:56
  • k8s和docker区别(4大核心区别详解)2024-10-30 18:18:56
  • 容器化 | 谈谈 K8S 部署那些事(Kubernetes-k8s)2024-10-30 18:18:56
  • k8s和docker区别(4大核心区别详解)2024-10-30 18:18:56
  • 为什么要虚拟化,为什么要容器,为什么要Docker,为什么要K8S?2024-10-30 18:18:56
  • 从容器的发展历史理解容器的本质_从容器的发展历史理解容器的本质是什么2024-10-30 18:18:56
  • K8S与Docker的区别_k8s与docker的区别是啥2024-10-30 18:18:56
  • 容器化技术的演进:从Docker到Kubernetes2024-10-30 18:18:56
  • 全屏图片