尽量使用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并点击激活。

image.png

但是,显示出需要付费的标志。

如果只能使用免费框架的设置,似乎无法使用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を試してみます。
广告
将在 10 秒后关闭
bannerAds