Google Kubernetes Engine(GKE)使用初探
概述
Google 的 k8s 在 2017 年已經從容器編排領域的競爭中取得主導地位,從 Docker 之前的一度排擠到最終完全擁抱 k8s,顯然 k8s 已經成了目前業界的標準。
但是到目前為止能提供 k8s 完全託管服務的雲服務商少之又少,即便是目前在雲提供商有統治力的 AWS 也沒有完全提供 k8s 託管服務,僅僅提供有限的定製服務,在這一方面並不成熟。
然而 Google 的 k8s 託管服務,即 GKE,卻將 k8s 託管服務做到了極致(至少目前看來),不僅提供了全套的 k8s 託管服務,更引人注目的是 Google 已然將 Autoscaler 和 k8s 集成,實現了 k8s 節點的自動伸縮機制,能根據 pod 的需求自動化添加或刪除節點,當現有節點無法承載新的服務時會自動添加節點來滿足需求,當現有節點足夠空閑時會啟用調節機制自動化收縮節點,從某種意義上來說這幾乎做到了無伺服器的理念。
然而這也許只是冰山一角,更多強大的功能還需要進一步探索,本文只是一個入門指南,主要指導能快速開始上手基於 Google Cloud Platform 的 GKE 服務(k8s 託管服務)。
GKE 入門指南
接下來我們一步步指引如何使用 GKE 來部署服務,前提是對 k8s 有所了解,能簡單使用 kubectl 命令。
1. 安裝並配置 Google Cloud SDK
Google Cloud SDK 是 訪問 GCP(Google Cloud Platform)平台各種資源的命令行工具集,類似 aws 的 aws 命令行工具。
安裝和配置就不多說了,點擊下面鏈接選擇相應操作系統版本的 tar 包下載,然後解壓,在 PATH 環境變數中添加 google-cloud-sdk/bin
即可:
https://cloud.google.com/sdk/?hl=zh-cn
2. 初始化 Google Cloud SDK
初始化 Google Cloud SDK 是將 gcloud
命令和 Google 賬號綁定起來並設置一些其他的默認值,比如區域,代理,賬號,項目(Google 賬號中新建的項目)之類的。
在執行 gcloud init
初始化之前得先給 gcloud
配置 HTTP 代理(GFW 你懂得),具體配置見我之前這篇文章。然後執行 gcloud init
完成初始化,直接根據嚮導來即可。
3. 到 Google Cloud Platform 控制台建一個 k8s 集群,記住名稱
4. 安裝 gcloud kubectl 組件
gcloud components install kubectl
5. 獲取群集的身份驗證憑據
創建群集後,您需要獲取身份驗證憑據以與群集進行交互。要為集群進行身份驗證,請運行以下命令:
gcloud container clusters get-credentials <上一步創建的集群名稱>
6. 接下來部署一個簡單的 hello-server 服務到 GKE
kubectl run hello-server --image gcr.io/google-samples/hello-app:1.0 --port 8080
相關鏈接
- https://cloud.google.com/kubernetes-engine/docs/quickstart
- https://cloud.google.com/sdk/docs/quickstart-macos?hl=zh-cn
附錄
gloud 常用命令
gcloud auth login --no-launch-browser # gcloud 登錄認證
gcloud config set compute/zone [COMPUTE_ZONE] # 設置默認區域
gcloud components list # 列出可安裝組件
gcloud components install [組件名稱] # 安裝組件
gcloud components update # 更新所有已安裝組件
gcloud components remove [組件名稱] # 卸載已安裝組件
設置 gcloud http 代理
gcloud config set proxy/type http
gcloud config set proxy/address 127.0.0.1
gcloud config set proxy/port 1087
設置集群 docker 私服認證
kubectl create secret docker-registry regcred --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>
注意:設置 docker 私服後,要在 GKE 部署 k8s 服務,必須得在 k8s 資源文件(yaml 格式)中的 container
同一級指定 imagePullSecrets 鍵,要不然仍然無法拉取配置的私服的鏡像,示例資源文件如下:
apiVersion: v1
kind: Pod
metadata:
name: private-reg
spec:
containers:
- name: private-reg-container
image: <your-private-image>
imagePullSecrets:
- name: regcred
查看集群 docker 私服配置
kubectl get secret regcred --output=yaml #base64 格式 顯示
kubectl get secret regcred --output="jsonpath={.data..dockerconfigjson}" | base64 -d # base64
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive