LoginSignup
0
0

gcloudコマンドでGKEを立ち上げてみた。

Last updated at Posted at 2023-12-22

はじめに

naritomoと申します。

本職はインフラエンジニアを行っています。

最近色々活用し始めているgcloudコマンドからのK8Sインフラ構築を実施してみました。

いろいろアドバイスいただけると嬉しいです。

立ち上げ概要

mac M1を使用し、gcloudコマンドででGKE(GCP上のK8S)を立ち上げるものになります。

前提

以下のコマンドを利用できている状態になっていること。

brew

gcpコンソールからサービスアカウントも作成すること。

gcloudインストール(初回)

curl https://sdk.cloud.google.com | bash
brew cask install google-cloud-sdk

gcloud初期設定(初回)

gcloud init

gcloudログイン設定(初回)

gcloud auth login

gcloud設定(初回)

gcloud config set project プロジェクト名
gcloud config set compute/zone asia-northeast1-a
gcloud config set compute/region asia-northeast1
gcloud config configurations list

API有効化(初回)

gcloud services enable container.googleapis.com

GKEコンポーネント導入(初回)

gcloud components install gke-gcloud-auth-plugin

~/.zshrc追記(初回)

export USE_GKE_GCLOUD_AUTH_PLUGIN=True

反映(初回)

source .zshrc

kubectlインストール(初回)

brew install kubectl

kubectl version --client

gcloudアップデート

gcloud components update

デフォルトネットワーク作成

gcloud compute networks create default --subnet-mode=auto

GKEクラスタ立ち上げ

gcloud container clusters create gke-cluster --machine-type=e2-micro --num-nodes=2 --service-account=<サービスアカウント>

GKE認証情報取得

gcloud container clusters get-credentials gke-cluster 

コンテキスト確認

kubectl config get-contexts

クラスタ確認

kubectl get all

サンプルデプロイ実施。

以下のファイルを作成する。

deploy.yml

## デプロイメント 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: web-deploy
spec:
  replicas: 3
  selector:           # これは deployment - pod 対応用
    matchLabels:
      app: web
  template:           # ここからポッド・テンプレート
    metadata:
      labels:
        app: web      # ポッドのラベル
    spec:
      containers:
      - name: nginx
        image: nginx:latest

svc-lb.yml

apiVersion: v1
kind: Service
metadata:
  name: web-service-lb
spec:
  selector:
    app: web
  ports:
  - name: webserver
    protocol: TCP
    port: 80
  type: LoadBalancer

以下のコマンドを入力し、デプロイする。

kubectl apply -f deploy.yml

kubectl apply -f svc-lb.yml

デプロイ確認

kubectl get svc
→External-IPの値を確認する。(数分待つ。)

以下のサイトへアクセスしてnginx画面が出てくること。

http://<External-IP>

サンプルデプロイ削除

kubectl delete -f .

削除方法

クラスタ削除

gcloud container clusters delete gke-cluster

デフォルトネットワーク削除

gcloud compute networks delete default

おわりに

この記事がgcloud/GKEを扱う方の助けになればと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0