Day11 - Google Kubernetes Engine(GKE) 轻松架起 k8s 环境

前言

要学习 DevOps 的进阶技术,Kubernetes 概念必不可少,但在本地端安装 Kubernetes 的过程相对繁琐,使用上也因为网路资源等问题而较为麻烦,今天就透过 GCP 上的 Kubernetes 服务,来轻松快速搭起 k8s 环境。

Kubernetes 介绍

https://ithelp.ithome.com.tw/upload/images/20210911/20139235jlsmkgYK86.png

Kubernetes(k8s) 是由 Google 开发的开源系统,用於自动部属、扩展及管理容器化应用程序,目的是为了降低管理计算资源、网路等基础资源所造成的负担,让使用者把重点放在容器的维运设置。举一些使用 Kubernetes 带来的好处

  • 可大规模部属、管理容器
  • 提供负载平衡机制,提升应用扩展性
  • 自我监控,重新启动失效容器
  • 可以轻松与 DevOps 整合达成自动化

了解了 Kubernetes 後要如何开始呢 ? 这里介绍如何建置 Kubernetes 环境的各种方法

  • 个人电脑: 使用 minikube 可以在本地快速架起一个 k8s 环境

  • VM 丛集: 若想要在多台服务器上安装,可以使用 kubeadm 的方式

  • 线上 Lab : Docker提供了 Play with Kubernetes 的 k8s Lab,只要使用 Github 或 Docker 帐号就能登入

  • 云端服务: GKE、EKS 等等,只要下个指令就能快速建立 k8s 丛集

建立 Google Kubernetes Engine

透过 Google Kubernetes Engine 服务,就可以轻松部属、管理 Kubernetes,下面就来学习如何使用。

  1. 进入 GCP 网站

  2. 点击console左上角 -> Kubernetes Engine

https://ithelp.ithome.com.tw/upload/images/20210911/20139235l4Os7Ypwj2.png

  1. 点击启用 API

https://ithelp.ithome.com.tw/upload/images/20210911/2013923533xiGoSXbm.png

开启後就能使用 GKE 了,我们使用 Cloud Shell 来操作。

  1. 进入 Cloud Shell 网站,点击终端机输入指令

  2. 列出所有的 project ,找到之前所创建专案的 PROJECT_ID

gcloud projects list

  1. 点击倒三角形->点选专案的 PROJECT_ID

成功开启了专案的 Terminal,从这里就能对专案进行操作。

  1. 使用 gcloud config set compute/zone <zone> 设定计算资源预设地区
gcloud config set compute/zone asia-east2-a
  1. 使用 gcloud container clusters create <name> 建立 K8s cluster
gcloud container clusters create lab

(输出结果)

Creating cluster lab in asia-east2-a...done.
Created [https://container.googleapis.com/v1/projects/ninth-bonito-324214/zones/asia-east2-a/clusters/lab].
To inspect the contents of your cluster, go to: https://console.cloud.google.com/kubernetes/workload_/gcloud/asia-east2-a/lab?project=ninth-bonito-324214
kubeconfig entry generated for lab.
NAME  LOCATION      MASTER_VERSION  MASTER_IP      MACHINE_TYPE  NODE_VERSION    NUM_NODES  STATUS
lab   asia-east2-a  1.20.9-gke.701  34.92.107.113  e2-medium     1.20.9-gke.701  3          RUNNING

预设会建立3台 2CPU、4G 记忆体的 VM,有着不小的费用支出,若你担心会超过免费用量,可以随时到帐单查看你剩余额度。

取得丛集验证

接着用gcloud 将 credentials 移动到 Cloud Shell 里来取得丛集验证,我们就能用 Kubectl 命令行工具对 k8s 丛集进行操作。

  1. 取得 clusters credentials
gcloud container clusters get-credentials lab

(输出结果)

Fetching cluster endpoint and auth data.
kubeconfig entry generated for lab.

完成後就能使用kubectl了。

  1. 查看所有运行节点
kubectl get nodes

(输出结果)

NAME                                STATUS  ROLES   AGE    VERSION
gke-lab-default-pool-9638ad20-l69n  Ready   <none>  7m50s  v1.20.9-gke.701
gke-lab-default-pool-9638ad20-tnlg  Ready   <none>  7m50s  v1.20.9-gke.701
gke-lab-default-pool-9638ad20-x3jm  Ready   <none>  7m50s  v1.20.9-gke.701

总结

今天成功的架起了 Kubernetes 环境,在之後几天中我们就会对 k8s 的各式元件做介绍。


<<:  Day 11 Arbitrary attributes

>>:  Trouble with Distributed Systems (3-2) - Unreliable Clocks

Day21 - Sort

大家好我是长风青云。今天是铁人赛21天。我们算是半只脚踏入演算法的阶段。(因为Sort的部分DS和A...

Day2 NiFi 架构与 Component 简介

在前面,我有稍微带到 Apache NiFi 的性质与特点,但除了了解这些之外,我们也要清楚知道这个...

Day_10 有线网路应用(三)

在有线网路应用(二)的应用中,使用树莓派当成主路由,乙太网路线为WAN,WIFI为LAN的布局。不过...

菜鸟网页基础DAY30(最後一天~~~)

终於撑到了铁人赛的最後一天,这是我第一次参加铁人赛,会参赛的原因是因为在暑假的时候参与了社群活动,然...

Day29 ( 游戏设计 ) 太鼓达人

太鼓达人 教学原文参考:太鼓达人 这篇文章会大量使用「阵列」的操作,搭配「变数」、「逻辑判断」、「点...