Google Kubernetes Engine(GKE)使用初探
创始人
2024-03-01 22:39:20
0

概述

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= --docker-username= --docker-password= --docker-email=

注意:设置 docker 私服后,要在 GKE 部署 k8s 服务,必须得在 k8s 资源文件(yaml 格式)中的 container
同一级指定 imagePullSecrets 键,要不然仍然无法拉取配置的私服的镜像,示例资源文件如下:

apiVersion: v1
kind: Pod
metadata:
  name: private-reg
spec:
  containers:
  - name: private-reg-container
    image: 
  imagePullSecrets:
  - name: regcred

查看集群 docker 私服配置

kubectl get secret regcred --output=yaml      #base64 格式 显示
kubectl get secret regcred --output="jsonpath={.data.\.dockerconfigjson}" | base64 -d # base64

相关内容

在CentOS系统中为Do...
理解Docker存储的核心机制:驱动与分层管理 在CentOS系统...
2025-06-16 07:41:58
我的docker随笔39:...
本文介绍在容器中修改时间而不影响宿主机的系统时间。 问题提出 某容...
2025-06-01 18:45:21
【云原生】k8s集群命令行...
kubectl应用部署命令详解一、准备工作1.1、Replicat...
2025-06-01 06:37:18
容器安全配置
本博客地址:https://security.blo...
2025-06-01 06:33:19
HTML - 容器布局,使...
HTML - 容器布局,使容器充满屏幕高度ÿ...
2025-06-01 02:27:27
一文教你彻底打败Redis...
前言 bigkey和hotkey是Redis生产中两个比较常见的问...
2025-05-30 22:50:30

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...