Google Kubernetes Engine(GKE)使用初探 | Linux 中国

Posted Linux中国

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Google Kubernetes Engine(GKE)使用初探 | Linux 中国相关的知识,希望对你有一定的参考价值。

本文只是一个入门指南,主要指导能快速开始上手基于 Google Cloud Platform 的 GKE 服务(k8s 托管服务)。
-- Qhh0205



致谢
转载自 | https://blog.csdn.net/qianghaohao/article/details/79945821
 作者 | Qhh0205

概述

Google 的 k8s 在 2017 年已经从容器编排领域的竞争中取得主导地位,从 Docker[1] 之前的一度排挤到最终完全拥抱 k8s,显然 k8s 已经成了目前业界的标准。

但是到目前为止能提供 k8s 完全托管服务的云服务商少之又少,即便是目前在云提供商有统治力的 AWS 也没有完全提供 k8s 托管服务,仅仅提供有限的定制服务,在这一方面并不成熟。

然而 Google 的 k8s 托管服务,即 GKE,却将 k8s 托管服务做到了极致(至少目前看来),不仅提供了全套的 k8s 托管服务,更引人注目的是 Google 已然将 Autoscaler 和 k8s 集成,实现了 k8s 节点的自动伸缩机制,能根据 pod 的需求自动化添加或删除节点,当现有节点无法承载新的服务时会自动添加节点来满足需求,当现有节点足够空闲时会启用调节机制自动化收缩节点,从某种意义上来说这几乎做到了无服务器的理念。

然而这也许只是冰山一角,更多强大的功能还需要进一步探索,本文只是一个入门指南,主要指导能快速开始上手基于 Google Cloud Platform 的 GKE[2] 服务(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 你懂得),具体配置见我之前这篇文章[4]。然后执行 gcloud init 完成初始化,直接根据向导来即可。 

3. 到 Google Cloud Platform 控制台建一个 k8s 集群,记住名称

 

4. 安装 gcloud kubectl 组件 

  
    
    
  
  1. gcloud components install kubectl 

5. 获取群集的身份验证凭据 

创建群集后,您需要获取身份验证凭据以与群集进行交互。要为集群进行身份验证,请运行以下命令: 

  
    
    
  
  1. gcloud container clusters get-credentials <上一步创建的集群名称> 

6. 接下来部署一个简单的 hello-server 服务到 GKE

  
    
    
  
  1. 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 常用命令

  
    
    
  
  1. gcloud auth login --no-launch-browser # gcloud 登录认证

  2. gcloud config set compute/zone [COMPUTE_ZONE] # 设置默认区域

  3. gcloud components list # 列出可安装组件

  4. gcloud components install [组件名称] # 安装组件

  5. gcloud components update  # 更新所有已安装组件

  6. gcloud components remove [组件名称] # 卸载已安装组件

设置 gcloud http 代理

  
    
    
  
  1. gcloud config set proxy/type http

  2. gcloud config set proxy/address 127.0.0.1

  3. gcloud config set proxy/port 1087

设置集群 docker 私服认证

  
    
    
  
  1. 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 键,要不然仍然无法拉取配置的私服的镜像,示例资源文件如下:

  
    
    
  
  1. apiVersion: v1

  2. kind: Pod

  3. metadata:

  4.  name: private-reg

  5. spec:

  6.  containers:

  7.  - name: private-reg-container

  8.    image: <your-private-image>

  9.  imagePullSecrets:

  10.  - name: regcred

查看集群 docker 私服配置

  
    
    
  
  1. kubectl get secret regcred --output=yaml      #base64 格式 显示

  2. kubectl get secret regcred --output="jsonpath={.data.\.dockerconfigjson}" | base64 -d # base64


以上是关于Google Kubernetes Engine(GKE)使用初探 | Linux 中国的主要内容,如果未能解决你的问题,请参考以下文章

Google Kubernetes Engine(GKE)使用初探 | Linux 中国

Google Kubernetes Engine:为服务类型启用 HTTPS

使用 Config Connector 对 Google Kubernetes Engine 集群进行地形改造

如何使用工作负载身份通过 Google Cloud .NET SDK 访问 Google Kubernetes Engine 中的 ESP?

Vertex AI 自定义预测与 Google Kubernetes Engine

Google Cloud、Kubernetes 和 Cloud SQL 代理:默认 Compute Engine 服务帐户问题