Linux中國

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

相關鏈接

附錄

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

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國