[Day14] Kubernetes

昨天简介完了 Docker 的容器相关内容,今天我们要来介绍的是 Kubernetes (K8S),其实 K8S 可以介绍的内容真的非常非常非常多,相信隔壁棚 DevOps 也有许多文章,光是 K8S 就可以介绍完整的 30 天。

Kubernetes,念做(哭ㄅㄋㄟ体死),它在希腊语中,代表的是舵手,驾驶员的意思;做为 Docker 的管理工具,感觉也有一种管理的味道存在(?)。 Kubernets 是由 Joe Beda、Brendan Burns 和 Craig McLuckie 共同创立,而目前主要的维护是由 Google 的工程师负责。而 Kubernets 又难念,又难写,连外国人都这麽认为,所以就简称为 K8s,8是因为 ubernete 刚好有 8 个字。

Kubernetes

Kubernetes 可以是为一个高层次的 Docker 抽象化管理器,在最高层级中,Kubernetes 可以透过一系列的 API 对於 Cluster 中的 Node 、 Container 进行管理。

在主从式架构中,我们可以将一个 Cluster 中的内容归类为两种元件,Master 与 Node, Master 负责进行控制与管理 Nodes;而 Nodes 则负责执行 Container 的内容。在 Google Cloud 中,每一个 Node 代表了一台 Compute Engine 的 Instances。

GKE

Google Kubernetes Engine 简称 GKE,是由 Google 管理的的 K8s 引擎,支援 Google Cloud 上各种不同规格的 Compute Engine instances。

透过 Gcloud 的指令 gcloud container clusters create k1 我们就可以快速的建立一个名为 k1 的 Cluster。

Pod

在每一个 Node 中,我们也可以拥有多个不同的 Pods。Pod 是 Kubernets 中的最小单位,在一个 Pod 中,我们可以拥有一个或多个 Container ,每一个 Pod 提供了一组 IP 以及 Port,连接到 Pod 中的 Container 中;在同一个 Pod 中的 Container 可以透过 localhost 以及固定的 port 进行互相的沟通。

我们可以透过 kubectl 的指令 kubectl get pods 快速的观察与检视每个 Pods 中的原件。

Load Balancer

在预设情况下,每一个 Pod 中的资料仅能在 GKE 的 Cluster 内进行存取,如果我们希望将服务公开到外网,则可以使用 kubectl expose 的指令,将 nodes 接上附载平衡器 (Network Load Balancer),并透过外网 IP 连接进来。

Auto Scaling

Auto Scaling 可以算是 K8s 中,超级重要的一个功能,假设我们在 Container 中放置了一个 Web Server ,如 Apache 或 Nginx。已知我们的服务可能在尖峰时间会有非常多人使用,而离峰时间则少很多,我们就可以透过 Auto Scaling 的方式,依照 CPU 使用率等规则,自动化的缩放我们的 node , 当 CPU 使用率过高时,我们就开启更多的 node ,以因应大量的请求。

关於 autoscale ,可以使用 kubectl autoscale 指令来达成。


<<:  [Day14] THM Root Me

>>:  Day20 浅谈AJAX?

Sass 变数 与 darken , lighten DAY33

今天我们要来介绍 Sass的变数啦~~ 介绍之前 我们必须先了解 为什麽我们需要它呢?? 当我们原先...

DAY 6 - 狗狗

大家好~ 今天的画画时间又来了 但是 我家狗狗今天送医住院了 可能活不了很多天了........ 所...

Day18-Kubernetes 那些事-Health Check

前言 由於现在 Pod 的数量越来越多了,因此如何控管好每个 Pod 可说是非常重要的动作,在开始细...

Day6: IAM简介

上一篇我们最後讲到了AWS针对NIST所发展的资安五大面向。今天我们来了解第一个面向IAM。 Ide...

Day 29 测试 React 元件:测试 React Hook

我们的范例是一个自己做的 hook 叫做 useCounter ,要来验证它的 increment ...