【GKE】Google Kubenertes Engineを使ってnignxにアクセス
初期設定としてGKEを使用する為のgoogleアカウントを作成します。
GKEの操作方法
GKEの操作方法として
- GCPにアクセスし、cloud shellを使ってブラウザから操作する。
- クライアントにgcloudをインストールしてクライアントから操作する。
今回は、cloud shellを使った操作方法を実行してみます。
cloud shellはgoogle上に操作用のVM(debian)を立ち上げて、このVMを元にGKEを操作します。
このVMは1週間操作しないと削除されます。
cloud Shellを使ったGKE操作のメリット・デメリット
メリットしては、どのgcloudをインストールする必要がなくどのクライアントからでも操作する事ができます。
また、googleのGUIを利用してコマンドを利用しなくてもクラスターの作成できます。
クラスター作成等の状態をGUIで見れるので視覚的把握も簡単です。
デメリットしては、debian上でyaml等のファイルを作成する必要がある(慣れたエディッタが使えない)、エディタを使う事でかなりローカルに近い感覚で操作できます。こちはらデメリットにならないかも。
アクセスしないと作成したyamlファイルが消えてしまいます。
ブラウザ上でlinux操作になるので少しもっさりしている。
ブラウザで張り付けでファイルをコピペする場合はviで下記コマンドでずれなくなるので便利です。
Kubernetesクラスタの作成
クラスタをGUIにより作成します。
CloudShellを使った操作でクラスタ操作
右上のcloud shellをアクティブにするから下記コンソールを起動します。
下記コマンドを実行しkubectlを実行できるようにします。
cluster-1には自分のクラスタ名
最後の指定はリージョンなので自分のリージョンを指定します。
gcloud container clusters get-credentials [クラスタ名] --zone [リージョン]
例
gcloud container clusters get-credentials cluster-1 --zone us-central1-c
また画面上のエディタを開くでエクスプローラーみたいな画面で管理できます。
こちらを使いyamlファイルを作成しましょう。
下記yamlファイルを作成し
apiVersion: v1
kind: ReplicationController
metadata:
name: frontend
spec:
replicas: 3
selector:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx-container
image: nginx
ports:
- containerPort: 80
下記コマンドでコンテナをデプロイ
kubectl create -f nginx-rc.yaml
次のyamlファイルでserviceを作成
apiVersion: v1
kind: Service
metadata:
name: frontend
spec:
ports:
- port: 80
targetPort: 80
selector:
app: nginx
type: LoadBalancer
作成したyamlファイルの実行
kubectl create -f nginx-service.yaml
作成したserviceのIPを下記コマンドで確認
kubectl get service
良く使うkubernetesのコマンド
ポッドの確認
kubectl get pods
podの削除
kubectl delete pod pod名
サービスの確認
kubectl get service
サービスの削除
kubectl delete service サービス名
Kubenetesの4つのリソース
今回はkindにReplicaSetとServiceを適用しましたがその他にも種類があります。
- Pod
- Service
- ReplicaSet
- Deployment
参考
https://news.mynavi.jp/itsearch/article/devsoft/4358