IT 铁人赛 k8s 入门30天 -- day1 什麽是k8s? k8s能做到什麽?

前言

身为一位 常常在使用容器的开发者

对於容器的管理是一件很重要的事情

特别是在大量使用容器的时候

当你想要容器能够更加自动化的更新扩容时

有一个良好的管理工具就会是很重要

原本的container 管理工具原本并不只有 k8s, 比如: docker swarm

然後最後由 kubernetes 这个由 google 导出的开源专案 在开发15年後

成为容器管理工具的大宗

因此要学好容器管理 学习k8s 就一个必经之路

这次参加铁人赛预计用这30天好好研究 k8s 一些基础的概念还有工具

前14天主题 会是以下面内容作为主轴来撰写 内容参考自freecodecamp k8s 基础课程 还有 k8s官网文件

Day 1: 什麽是k8s ? k8s 能做什麽?
Day 2: k8s 元件介绍:Node, Pod, Service, Ingress, Volumes, ConfigSet, Secret, Deployment, StatefulSet
Day 3: k8s 架构:k8s Node Compoents
Day 4: k8s 架构:Control Plane Components
Day 5: k8s run tools: minikubes 安装与 kubectl 安装
Day 6: 主要 Kubectl 指令 - K8s CLI
Day 7: K8s YAML 设定档
Day 8: 实作范例: MongoDB and MongoExpress
Day 9: 使用 K8s Namespaces 来管理 k8s 元件
Day 10: K8s Ingress 解说
Day 11: Helm - Package Manager
Day 12: Persisting Data in K8s with Volumes
Day 13: Deploying Stateful Apps with StatefulSet
Day 14: K8s Services 解说

後16天内容还在构思, 打算以 k8s官网的Task选16个有趣的主题来撰写

什麽是 k8s?

名称来由

ref https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/

kubernetes 源自希腊语,意指领航员

因为从k到s中有8个字母 所以简称为 k8s

功用

ref https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/

kubernetes 是一个管理容器的工具

用来处理容器生命周期的管理, 工作量的分配等等工作

应用服务发展历程

单体服务器是最早的服务器形式, 这类型的服务最大的问题在於

无法针对每个服务定义限定所需硬体资源

如果有某些服务抢占太多资源的话, 无法有效分配硬体资源给需要的服务

虚拟化技术的兴起, 让硬体资源的分配能够透过切割出多个虚拟机器有效解决硬体资源分配的问题

然而每个虚拟机器, 内部仍是需要消耗各自的资源去运行各自的作业系统

容器化技术的兴起, 让服务资源的切分能够更加细致, 启用了一个容器引擎包装服务成为容器

每个容器共享整个作业系统的资源, 各自取用定义好的部份

容器相对於虚拟机器还有单体服务器来说能够做到更有效地资源分配

因此是目前很多企业所以推行的一种应用服务开发的趋势

为何需要 k8s 这类容器管理工具?

微服务是一种服务的开发形式, 会将一个服务切割成多个容器化应用来运行

微服务的兴起, 带动起管理大量容器化应用的需求

自行撰写脚本或是排程去管理容器又太过复杂

因此需要一个第三方管理工具来处理

k8s 能做到什麽事情?

k8s 官网 上写了很多项, 笔者摘录了几个自己认为比较重要的

高可用性

高可用性代表, k8s 能够确保发布出去的应用程序能够随时可用

高拓展性

高拓展性代表, k8s 能够却容器化服务随着使用者数量上升

扩展容器化服务数量以保证服务回应时间够快速(在某个合理的预期时间内)

灾难回复 --- 也就是备份跟还原状态

当容器化服务发生异常时, k8s 能够透过侦测状态的机制, 做到即时修复容器化服务

後话

笔者认为虚拟化技术是对於硬体规格的抽象化

容器化技术是对於作业系统规格的抽象化

容器化管理工具是把容器化运行规则的抽象化

透过这些抽象化可以让软件对於执行环境的相依性降低

让软件工程师开发软件的时候不被硬体与执行环境限制

在实际执行层面, 软件工程师却是更需要去理解底层执行环境的内容

才能避免运算资源浪费

否则把一整个巨大作业系统包含进入到容器化服务

这样就失去容器化的意义


<<:  Multiple objects (上)

>>:  30天零负担轻松学会制作APP介面及设计【DAY 06】

Day 12 - 阴影、透明度使用

威尔猪刚开始学设计时,也曾被老师说你的阴影不行,多观察生活周遭。What...? 当时真的不懂,只...

03 | 认识 WordPress「区块编辑器」的发展和简介

关於 Block Editor(区块编辑器)的各类延伸有很多,我们这篇文章尽量保持简单,但您可以从...

[DAY 19]Gan

前言 在这个 GAN 到爆炸的年代,你能想到的东西我都可以拿出一个有 GAN 的 Paper 出来X...

Day 7 有关排程器的感叹

有关排程器的问题,我们可以做个简单的探讨,排程里面通常会有任务(task,有的翻成工作元)及处理(p...

JS 物件与纯值 DAY 58

物件与纯值 var family = {}; family.name = '皮杰先生'; conso...