浅入kubernetes(1):Kubernetes 入门基础

时间:2023-12-16 13:50:02

Kubernetes 入门基础

Introduction basic of kubernetes

我们要学习 Kubernetes Kubernetes ,就有首先了解 Kubernetes 的技术范围、基础理论知识库等,要学习 Kubernetes,肯定要有入门过程,在这个过程中,学习要从易到难,先从基础学习。

那么 Kubernetes 的入门基础内容(表示学习一门技术前先了解这门技术)包括哪些?

根据 Linux 开源基金会的认证考试,可以确认要了解 Kubernetes ,需要达成以下学习目标:

  • Discuss Kubernetes.
  • Learn the basic Kubernetes terminology.
  • Discuss the configuration tools.
  • Learn what community resources are available.

接下来笔者将一一介绍 Kubernetes 的一些概念(Discuss)、技术术语(Terminology)、相关配置工具以及社区开源资源(Community resources)。

本系列教程将会混杂一些英文,因为研究和使用 Kubernetes 的过程中,会接触到大量英文,并且 Kubernetes 的国际认证考试,都是英文考试,多接触一些英文单词,慢慢积累吧。。。

本系列教程主要参考 Linux 开源基金会的课程内容及 Kubernetes 文档,课程内容按照 Attribution 3.0 Unported (CC BY 3.0) 协议,在写作时参考、复制网站内容、共享知识库等。关于 CC BY 3.0 协议,其说明如下:

  • 共享—以任何媒介或格式复制和重新分发材料
  • 适应-重新混合,变换并在材料上构建
  • 出于任何目的,甚至出于商业目的。

Linux 开源基金会认证考试与课程学习网址:

https://training.linuxfoundation.org/#

使用条款:

https://www.linuxfoundation.org/terms/

学习 Kubernetes 后,可以进一步考取以下认证证书:

Kubernetes 管理员认证 (CKA)、Kubernetes 应用程序开发者认证 (CKAD)、Kubernetes安全专家认证 (CKS)。

What Is Kubernetes?

我们先思考一下,运行一个 Docker 容器,只需要使用 docker run ... 命令即可,这是相当简单(relatibely simple)的方法。

但是,要实现以下场景,则是困难的:

  • 跨多台主机的容器相互连接(connecting containers across multiple hosts)
  • 拓展容器(scaling containers)
  • 在不停机的情况下配置应用(deploying applications without downtime)
  • 在多个方面进行服务发现(service discovery among several aspects)

在 2008年,LXC(Linux containers) 发布第一个版本,这是最初的容器版本;2013 年,Docker 推出了第一个版本;而 Google 则在 2014 年推出了 LMCTFY

为了解决大集群(Cluster)中容器部署、伸缩和管理的各种问题,出现了 Kubernetes、Docker Swarm 等软件,称为 容器编排引擎

Kubernetes 是什么?

"an open-source system for automating deployment, scaling, and management of containerized applications".

“一个自动化部署、可拓展和管理容器应用的开源系统”

Google 的基础设施在虚拟机(Virtual machines)技术普及之前就已经达到了很大的规模,高效地(Efficiency)使用集群和管理分布式应用成为 Google 挑战的核心。而容器技术提供了一种高效打包集群的解决方案。

多年来,Google 一直使用 Borg 来管理集群中的容器,积累了大量的集群管理经验和运维软件开发能力,Google 参考 Borg ,开发出了 Kubernetes,即 Borg 是 Kubernetes 的前身。(但是 Google 目前还是主要使用 Borg)。

Kubernetes 从一开始就通过一组基元(primitives)、强大的和可拓展的 API 应对这些挑战,添加新对象和控制器地能力可以很容易地地址各种各样的产品需求(production needs)。

因为 Kubernetes 这个单词不好发音,而 k 和 s 之间有 8 个单词,因此一般大家都读 k 8 s。而专为小型嵌入式设备开发的 K3S 的原单词是?我不知道