7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GKE と IKS のコマンド対比 (for novice)

Last updated at Posted at 2018-06-06

IKS (IBM Cloud Kubernetes Service) と GKE (Google Kubernetes Engine) で kubectl を実行するまでに必要なコマンドの対比メモです。 「GKE使ってる人がIKSも使ってくれたら良いな」という立場上の願いもあり、kubectlレベルの扱いは同じなので、取っ掛かりになればと思います。

クラスタのリスト表示

GKEの場合

gcloud container clusters list

IKSの場合

bx cs clusters

ノードのリスト表示

GKEの場合

gcloud compute instances list

IKSの場合

bx cs workers <クラスタ名>

kubectlの資格情報の取得

GKEの場合

gcloud container clusters get-credentials <クラスタ名>

IKSの場合

bx cs cluseter-config <クラスタ名> --admin

環境変数を表示するので、コピペして、環境変数を有効にする必要があります。 また、YAMLファイルを $HOME/.kube/config にマージすれば、後述の切り替え方法で、切り替えて利用できます。

GKEとIKSの切り換え

GKE,IKS,オンプレ 環境設定のリスト

kubectl config get-contexts

K8sクラスタの選択は、コンテキス名(クラスタ、ユーザーのセット)などを登録したものを指定する。

kubectl config use-context <コンテキスト名>

切り替え例
GKEのコンテキスト名は長いので、$HOME/.kube/configを編集して、表示を短くしました。

imac:~ maho$ kubectl config get-contexts
CURRENT   NAME                          CLUSTER         AUTHINFO                                              NAMESPACE
          gke-cluster-1                 gke_cluster-1   gke_intense-base-183010_asia-northeast1-b_cluster-1   
          iks-mycluster5                mycluster5      admin                                                 default
          kubernetes-admin@kubernetes   kubernetes      kubernetes-admin                                      
          minikube                      minikube        minikube                                              
          sandbox                       kubernetes      kubernetes-admin                                      sandbox
          sysop@sandbox                 kubernetes      sysop                                                 sandbox

# GKEを選択
imac:~ maho$ kubectl config use-context gke-cluster-1
Switched to context "gke-cluster-1".
imac:~ maho$ kubectl get node
NAME                                       STATUS    ROLES     AGE       VERSION
gke-cluster-1-default-pool-1a73d9b1-nf1l   Ready     <none>    9h        v1.10.2-gke.3
gke-cluster-1-default-pool-1e64b7b4-zd57   Ready     <none>    9h        v1.10.2-gke.3
gke-cluster-1-default-pool-f0021c00-8wl3   Ready     <none>    9h        v1.10.2-gke.3

# IKSを選択
imac:~ maho$ kubectl config use-context iks-mycluster5
Switched to context "iks-mycluster5".
imac:~ maho$ kubectl get node
NAME            STATUS    ROLES     AGE       VERSION
10.132.253.17   Ready     <none>    115d      v1.9.2-4+819981a2462d38
10.132.253.30   Ready     <none>    115d      v1.9.2-4+819981a2462d38
10.132.253.38   Ready     <none>    115d      v1.9.2-4+819981a2462d38
10.132.253.39   Ready     <none>    4d        v1.9.7-2+231cc32d0a1119
10.132.253.40   Ready     <none>    4d        v1.9.7-2+231cc32d0a1119

IKSでもk8s 1.10も利用できます。

FWの設定

GKEの場合

gcloud compute firewall-rules create myservice --allow tcp:31080

IKSの場合

IBM Cloud (旧SoftLayer)にノード・インスタンスが、作られるので、設定不要です。

kubectl

kubectlの操作方法やコマンドは、GKEとIKSで共通です。 デプロイメントのレプリケーション数を変更して、スケールさせる例です。

GKEのkubectl操作例

imac:~ maho$ kubectl config get-contexts
CURRENT   NAME                          CLUSTER         AUTHINFO                                              NAMESPACE
          gke-cluster-1                 gke_cluster-1   gke_intense-base-183010_asia-northeast1-b_cluster-1   
*         iks-mycluster5                mycluster5      admin                                                 default
          kubernetes-admin@kubernetes   kubernetes      kubernetes-admin                                      
          minikube                      minikube        minikube                                              
          sandbox                       kubernetes      kubernetes-admin                                      sandbox
          sysop@sandbox                 kubernetes      sysop                                                 sandbox
imac:~ maho$ kubectl config use-context gke-cluster-1
Switched to context "gke-cluster-1".
imac:~ maho$ kubectl get svc,pod
NAME             TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
svc/kubernetes   ClusterIP   10.19.240.1     <none>        443/TCP        10h
svc/webserver1   NodePort    10.19.255.112   <none>        80:31080/TCP   9h

NAME                             READY     STATUS    RESTARTS   AGE
po/webserver1-5d89b656f7-4nm7h   1/1       Running   0          9h
imac:~ maho$ 
imac:~ maho$ kubectl edit deploy webserver1
deployment "webserver1" edited
imac:~ maho$ kubectl get svc,pod
NAME             TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
svc/kubernetes   ClusterIP   10.19.240.1     <none>        443/TCP        10h
svc/webserver1   NodePort    10.19.255.112   <none>        80:31080/TCP   9h

NAME                             READY     STATUS              RESTARTS   AGE
po/webserver1-5d89b656f7-4bj75   0/1       ContainerCreating   0          3s
po/webserver1-5d89b656f7-4nm7h   1/1       Running             0          9h
po/webserver1-5d89b656f7-ddb5c   0/1       ContainerCreating   0          3s
po/webserver1-5d89b656f7-kkcxf   0/1       ContainerCreating   0          3s
po/webserver1-5d89b656f7-svwrn   0/1       ContainerCreating   0          3s

IKSのkubectl操作例

imac:~ maho$ kubectl config use-context iks-mycluster5
Switched to context "iks-mycluster5".
imac:~ maho$ kubectl get svc,pod
NAME             TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
svc/kubernetes   ClusterIP   172.21.0.1       <none>        443/TCP        115d
svc/webserver1   NodePort    172.21.210.145   <none>        80:31080/TCP   1h

NAME                             READY     STATUS    RESTARTS   AGE
po/webserver1-5d56bb6589-42p5p   1/1       Running   0          1h
po/webserver1-5d56bb6589-rz4mq   1/1       Running   0          1h
po/webserver1-5d56bb6589-zf8ch   1/1       Running   0          1h
(reverse-i-search)`vi': vi config
imac:~ maho$ kubectl edit deploy
deployment "webserver1" edited
imac:~ maho$ kubectl get svc,pod
NAME             TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
svc/kubernetes   ClusterIP   172.21.0.1       <none>        443/TCP        115d
svc/webserver1   NodePort    172.21.210.145   <none>        80:31080/TCP   1h

NAME                             READY     STATUS              RESTARTS   AGE
po/webserver1-5d56bb6589-42p5p   1/1       Running             0          1h
po/webserver1-5d56bb6589-g5s6c   0/1       ContainerCreating   0          3s
po/webserver1-5d56bb6589-pfsq5   0/1       ContainerCreating   0          3s
po/webserver1-5d56bb6589-rz4mq   1/1       Running             0          1h
po/webserver1-5d56bb6589-zf8ch   1/1       Running             0          1h

まとめ

GKEは元祖なので、優れた機能が有り、スタンダード的な存在と思います。 一方で、IBMは後発で追う立場でもあますが、IKSも頑張っているので、何卒、よろしくお願いします。

7
3
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
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?