初识kubernetes
这是我参与更文挑战的第17天,活动详情查看: 更文挑战
本文是在掘力计划沙龙:拥抱云原生——探索云原生下的框架与存储前的学习文章。
在拥抱云原生——初探Quarkus,拥抱云原生——云原生概念与Quarkus基本使用两篇文章中,我们初步了解了一下云原生的概念,Quarkus的使用。了解到Quarkus是一个针对K8s的原生JAVA框架,针对GraalVM和HotSpot进行量身定制。
这里面又涉及到许多新的概念:K8S, GraalVM等。一个一个学吧,我们先来了解一个K8S——Kubernetes。
让营地比你来时更干净。——《代码整洁之道》
Kubernetes相关文档
中文概述:Kubernetes 是什么?
其他文档:Kubernetes是什么
基础概念与特点
Kubernetes是Google开源的容器编排引擎,即K8S是一个管理容器的工具。
在文档Kubernetes是什么中,概述Kubernetes的用途:
快速部署应用
快速扩展应用
无缝对接新的应用功能
节省资源,优化硬件资源的使用
其特点为:
可移植: 支持公有云,私有云,混合云,多重云(multi-cloud)
可扩展: 模块化, 插件化, 可挂载, 可组合
自动化: 自动部署,自动重启,自动复制,自动伸缩/扩展
Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态系统。Kubernetes 的服务、支持和工具广泛可用。
下图[1]比较了三种系统部署方案:
- 传统部署:应用程序运行在物理服务器上
- 虚拟部署:在物理服务器上运行多个虚拟机,应用程序运行在虚拟机上
- 容器部署:容器类似与VM,具有自己的文件系统,CPU,内存,进程空间等,但是轻量的(App共享操作系统),可以跨云和OS发行版本进行移植。
容器可以提供敏捷应用程序的创建和部署,持续开发、集成和部署等多个好处[1]
Kubernetes 就是管理这些容器的一个工具,有诸如扩展要求、故障转移、部署模式等多种功能,K8s提供的好处包括:服务发现和负载均衡,存储编排,自动部署和回滚,自动完成装箱计算,自我修复,密钥与配置管理[1]
总结
K8S是一个管理容器的工具
[1] Kubernetes 是什么?](https://kubernetes.io/zh/docs/concepts/overview/what-is-kubernetes/)