GKE (一)

GKE简介

今天要说的是GKE GKE是什麽?由於近年微服务崛起使用k8s的需求大增,衍生各大小公司在建立服务时首选的架构,所以无论是在传统机房或是云端平台上可说是必备服务没有之一,而GKE就是在Google Platform上的半代管的的k8s,这边会用两天的时间去说说GKE这大项服务的内容。

首先今天先来说明如何使用与建立GKE,在近半年Google上GKE出现了一种新的建立Cluster方式(全自动最佳化丛集)大概是可以更简便的不需人工介入的丛集,我就先不讨论这部分,所以接下来要说的是GKE Standard版本的建立丛集方式:

建立丛集位置与版本

  1. 选择区域性或是地区性这两者差异在於若选择後者你可以多方部署该地区的不同zone,可以说是辈份相同服务至不同的区域上,算是比免单点破坏但成本也是N倍
  2. 版本选择 静态版本 和 发布版本 这两者是有差异的若选择发布版本意味着你无法关闭自动更新丛集内部版本,因为google本生所使用的Kubernetes版本与原生的Kubernetes版本是有差异的google有另外的包装过Kubernetes,所以在google上看到的版本会像是 1.20.9-gke.1000 这要的形式而1.20前面的版号是对应该Kubernetes版本,这边会建议使用静态版本(预设)相对稳定,且在需要升级上可控多的点弹性。 如图:
    https://ithelp.ithome.com.tw/upload/images/20210828/20129516Bpb4uO8gBQ.png

建立丛集Pool(pool可以分开建立事後建立修改弹性高)

  1. 顾名思义就是建立丛集的VM群这边比必须使用google VM上的OS版本如同一开始所说GKE算是半托管丛集有满多东西需照着google规范去建立实行,但还是有许多可控,其中包含了个节点(VM)硬体系统硬碟种类Pod可使用上线(这部分建议使用预设因为这会因为你所开的IP range CIRD影响了你的pod数量运行)
    https://ithelp.ithome.com.tw/upload/images/20210828/20129516uY4RetU4QT.png
  2. 安全性这边如果有使用API外部监控k8s状态建议勾选(提供所有 Cloud API 的完整存取权限)
  3. 中继层也是在这边设定但我通常不会去异动以及添加可以在之後有需求时再去使用Cli设置,但这边有一个比较特别的东西"标签"可以设置着东西来标记该丛集(例如查询费用等...)

建立丛集细部(这边设定需小心若设定错误可能需重新建立)

  1. 网路设置也就是使用前几天所说的VPC为基础去设置,这边的丛集会建议使用“私人丛集”这表示此丛集外网无法对外,相对会教安全至於外部IP会使用NAT方式去对外(这後面会在提到)。
  2. 如果有使用google monitor metric这边也需要勾选google会自动部署对应pod监控该丛集当然你也可以关闭节省资源。
  3. google内建istio架构也是这边要设置(但这边建议可以自建istio 有兴趣可以参考我去年铁人赛文章XD)。

若觉得介面麻烦,建立方式也可以使用commandline大致如下,可以提供参考:/images/emoticon/emoticon07.gif

gcloud beta container --project "project_name" clusters create "cluster-test" \
--zone "asia-east1-a" \
--no-enable-basic-auth \
--cluster-version "1.18.20-gke.901" \
--machine-type "n1-standard-4" \
--image-type "COS" \
--disk-type "pd-standard" \
--disk-size "100" \
--metadata disable-legacy-endpoints=true \
--scopes "https://www.googleapis.com/auth/cloud-platform" \
--num-nodes "3" \
--enable-stackdriver-kubernetes \
--enable-private-nodes --master-ipv4-cidr "172.16.0.0/28" \
--enable-ip-alias \
--network "projects/project_name/global/networks/vpc" \
--subnetwork "projects/test/regions/asia-east1/subnetworks/sub_network" \
--cluster-ipv4-cidr "10.60.0.0/14" \
--default-max-pods-per-node "110" \
--no-enable-master-authorized-networks \
--addons HorizontalPodAutoscaling,HttpLoadBalancing \
--enable-autoupgrade --enable-autorepair

<<:  冒险村02 - Begin from linter(2)

>>:  Day2. Hello Matter.js World!

ESP32_DAY11 短路

究竟是谁有问题呢? 答案是... ... ... 最右边的这组电路有问题! 它的问题是这颗电阻根本没...

Day 13 - 基本语法8(函式2)

昨天我们学完了函式的基础用法以及讲解,今天要写的是进阶用法。 会这样分两天是因为我觉得有一点难,可以...

Day 14 - Arrow Function Expression & this

this 在 JavaScript 里,this 指向 window,在 function 中, t...

从 IT 技术面细说 Search Console 的 27 组数字 KPI (13) :网页体验 - 行动装置可用性

Search Console 在之前还没有 Page Experience 网页体验的大项时,Mob...

DAY12 - 使用 angular fire 操作firebase

firebase sdk 是什麽 firebase sdk 是 firebase 官方推出和 fir...