尽量使用CLI创建GKE集群来尝试
总结
我想要一个可以自由使用的Kubernetes环境,所以我将使用GKE进行构建。
只需按照步骤进行,大约15分钟即可准备好Kubernetes集群。
-
- gcloudをセットアップ
- GKEクラスタを構築
前提 – prerequisite/condition
- GCPの無料トライアルアカウントは作成済み
gcloud的安装设置
安装
我希望本次使用CLI进行构建,所以要安装gcloud。
使用Scoop来安装gcloud。
如果你不熟悉Scoop,请阅读以下文章并尝试一下。这是一个推荐给Windows用户的工具!
– 推荐使用Scoop构建Windows环境 – 超级赞!!
请执行以下命令,安装完成。很简单吧。
途中会打开浏览器并要求进行Google账户认证,请进行认证。
$ scoop bucket add extras
$ scoop install gcloud
初始设置
此外,我们将创建并设置一个默认的区域/区域码,并进行GKE实践的项目追加配置。
#リージョンとゾーンの設定
$ gcloud config set compute/region asia-northeast1
$ gcloud config set compute/zone asia-northeast1-a
#プロジェクトの作成と設定
$ gcloud projects create gke-handson-1234
$ gcloud config set project gke-handson-1234
搭建GKE集群
创建 GKE 集群
只需要以下命令就能建立K8s集群,真是太厉害了。
$ gcloud container clusters create gke-handson
请参考下面的详细设置。
由于项目太多,这次简单创建…
– gcloud container clusters create
然而,如果没有kubectl,会有错误。
WARNING: Accessing a Kubernetes Engine cluster requires the kubernetes commandline
client [kubectl]. To install, run
$ gcloud components install kubectl
安装 kubectl
由于尝试创建集群而未安装kubectl而被指责,因此我先安装它。
请使用以下命令进行安装。这也是一个用Scoop可以一键完成的命令。您也可以使用错误日志的命令。(只需要使用Scoop)
$ scoop install kubectl
启用Kubernetes引擎API
在安装完kubectl后,尝试重新构建集群时,又出现了错误。
项目中Kubernetes Engine API未启用的原因。
ERROR: (gcloud.container.clusters.create) ResponseError: code=403, message=Kubernetes Engine API is not enabled for this project. Please ensure it is enabled in Google Cloud Console and try again:
visit https://console.cloud.google.com/apis/api/container.googleapis.com/overview?project=gke-handson-1234 to do so.
请访问指定的URL并点击激活。

但是,显示出需要付费的标志。
如果只能使用免费框架的设置,似乎无法使用GKE。最好直接启用付费并启用API。
(是否可以在创建项目时预先设置选项?)
创建GKE集群
改正错误后重新创建。大约三分钟完成。
$ gcloud container clusters create gke-handson
确认集群
确认kubectl的连接目标
$ kubectl config current-context
gke_gke-handson-1234_asia-northeast1-a_gke-handson
只需一个选项:
即使不需要自己设置集群的连接目标,它会自动为我进行设置。
对于只管理一个集群的人来说,这是不错的,但对于管理多个集群的人可能有点多管闲事?
确认节点
在创建群集时没有指定数量,但默认数量似乎是3台。
$ kubectl get node
NAME STATUS ROLES AGE VERSION
gke-gke-handson-default-pool-0e9ea686-63w1 Ready <none> 9m45s v1.12.7-gke.10
gke-gke-handson-default-pool-0e9ea686-br52 Ready <none> 9m45s v1.12.7-gke.10
gke-gke-handson-default-pool-0e9ea686-d0wz Ready <none> 9m45s v1.12.7-gke.10
确认一下pod
你的基本服务已经启动了呢。
$ kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system event-exporter-v0.2.3-f9c896d75-tb2zc 2/2 Running 0 8m50s
kube-system fluentd-gcp-scaler-69d79984cb-nwpdv 1/1 Running 0 8m39s
kube-system fluentd-gcp-v3.2.0-h7zs4 2/2 Running 0 7m37s
kube-system fluentd-gcp-v3.2.0-tngff 2/2 Running 0 8m5s
kube-system fluentd-gcp-v3.2.0-wr2t8 2/2 Running 0 7m57s
kube-system heapster-v1.6.0-beta.1-6fc8df6cb8-dkkqz 3/3 Running 0 8m12s
kube-system kube-dns-autoscaler-76fcd5f658-pxwpt 1/1 Running 0 8m29s
kube-system kube-dns-b46cc9485-8pq76 4/4 Running 0 8m51s
kube-system kube-dns-b46cc9485-zm25h 4/4 Running 0 8m20s
kube-system kube-proxy-gke-gke-handson-default-pool-0e9ea686-63w1 1/1 Running 0 8m37s
kube-system kube-proxy-gke-gke-handson-default-pool-0e9ea686-br52 1/1 Running 0 8m37s
kube-system kube-proxy-gke-gke-handson-default-pool-0e9ea686-d0wz 1/1 Running 0 8m35s
kube-system l7-default-backend-6f8697844f-94zkg 1/1 Running 0 8m52s
kube-system metrics-server-v0.3.1-5b4d6d8d98-zw7hk 2/2 Running 0 8m14s
kube-system prometheus-to-sd-j66jz 1/1 Running 0 8m37s
kube-system prometheus-to-sd-mfz8d 1/1 Running 0 8m37s
kube-system prometheus-to-sd-pbb22 1/1 Running 0 8m37s
删除集群
由于不太适合使用,我会记得删除的。
$ gcloud container clusters delete gke-handson
个人感觉
-
- 無料枠の範囲であればお金もかからず、かつ簡単に構築もできて、初学者のK8sの勉強に最適ですね。Google神…
- 次回は簡単にmanifestを色々書いたり、helmを使ったり、GitOpsを試してみます。