<

一足遅れて Kubernetes を学び始める - 02. Docker For Mac -

ストーリー

  1. 一足遅れて Kubernetes を学び始める - 01. 環境選択編 -
  2. 一足遅れて Kubernetes を学び始める - 02. Docker For Mac -
  3. 一足遅れて Kubernetes を学び始める - 03. Raspberry Pi -
  4. 一足遅れて Kubernetes を学び始める - 04. kubectl -
  5. 一足遅れて Kubernetes を学び始める - 05. workloads その 1 -
  6. 一足遅れて Kubernetes を学び始める - 06. workloads その 2 -
  7. 一足遅れて Kubernetes を学び始める - 07. workloads その 3 -
  8. 一足遅れて Kubernetes を学び始める - 08. discovery&LB その 1 -
  9. 一足遅れて Kubernetes を学び始める - 09. discovery&LB その 2 -
  10. 一足遅れて Kubernetes を学び始める - 10. config&storage その 1 -
  11. 一足遅れて Kubernetes を学び始める - 11. config&storage その 2 -
  12. 一足遅れて Kubernetes を学び始める - 12. リソース制限 -
  13. 一足遅れて Kubernetes を学び始める - 13. ヘルスチェックとコンテナライフサイクル -
  14. 一足遅れて Kubernetes を学び始める - 14. スケジューリング -
  15. 一足遅れて Kubernetes を学び始める - 15. セキュリティ -
  16. 一足遅れて Kubernetes を学び始める - 16. コンポーネント -

前回

一足遅れて Kubernetes を学び始める - 01. 環境選択編 -にて、Kubernetes を学ぶ環境を考えてみました。いきなり GKE を使うんじゃなくて、お手軽に試せる DockerForMac を使おうとなりました。

Docker For Mac を試す

環境

# Machine
iMac (21.5-inch, 2017)
# Docker
Docker Community Edition:
  Version: 18.06.1-ce-mac73 (26764)
Docker Engine:
  Version: 18.06.1-ce
Kubernetes:
  Version: v1.10.3

実践

さっそく、使ってみます。 (入門 Kubernetes参考)

~ $ kubectl get componentstatuses
NAME                 STATUS    MESSAGE              ERROR
controller-manager   Healthy   ok
scheduler            Healthy   ok
etcd-0               Healthy   {"health": "true"}

Kubernetes では、MasterNode と WorkerNode の 2 種類の Node が存在しており、 そのうちの MasterNode にあるコンポーネントの一覧が上記よりわかります。詳細については、こちらにあります。 要は、kubectl apply -f nginx.yaml とすると

  1. etcd にマニュフェスト(nginx.yaml)を登録
  2. controller-manager が etcd にあるマニュフェストと既存 pod を比べて pod が少ないことを検知
  3. scheduler が適切な数の pod に調整

という理解になりました。また、全てのやり取りは、api-server を経由しているそうです。

私なりの理解をアウトプットしたものが下記になります。 (ほとんど真似した感じです。しかし、アウトプットするだけで理解が深まるため実施。 アウトプット大事! )

Kubernetes_learning.png
Kubernetes_learning.png
~ $ kubectl get nodes
NAME                 STATUS    ROLES     AGE       VERSION
docker-for-desktop   Ready     master    120d      v1.10.3
~ $ kubectl get pods
No resources found.

使い始めたばかりだと、pod が1つもない状態ですね。 また、DockerForMac では、もちろん動かしているマシンは一台(VM とか使えば増やせますが)なので、 MasterNode と WorkerNode が同一になっているはずです。試してみます。

# nginx.yaml
apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
    - name: nginx
      image: nginx
      ports:
        - containerPort: 80
          name: http
          protocol: TCP
~ $ kubectl apply -f nginx.yaml
pod "nginx" created
~ $ kubectl get pod -o wide
NAME      READY     STATUS    RESTARTS   AGE       IP           NODE
nginx     1/1       Running   0          3m        10.1.0.157   docker-for-desktop

WorkerNode に Pod が作られていますね。んー、これだとある程度の学習には繋がりそう(Pod の動き)ですが、 後の学ぶ ReplicaSet や Daemonset など Node 横断した機能を経験したい場合には不向きのようですね。 まあ、簡単に使えるので良いっちゃ良いのですが...

次は、いくつかのコマンド(cp,exec, port-forward)を試してみます。

~ $ touch memo.txt
~ $ ls
nginx.yaml memo.txt
~ $ kubectl cp memo.txt nginx:/memo.txt
~ $ rm memo.txt
~ $ ls
nginx.yaml
~ $ kubectl cp nginx:/memo.txt ./memo.txt
~ $ ls
nginx.yaml memo.txt
~ $ kubectl exec -it nginx bash
root@nginx:/# exit
exit
~ $

ローカルと Pod との双方向コピー、仮想的なターミナルを体験していました。 「ふ〜ん、で?」ってなっちゃいました。(笑)

お片付け

~ $ kubectl delete -f nginx.yaml
pod "nginx" deleted

ものたりない

やっぱり Node 増やしたい!! Raspberry Pi でおうち Kubernetes 構築【論理編】を見て、これをやるっきゃない! すごく今更だけど、試してみようと思います。 次回はこちらです。

Tags

Cloud Native Days Tokyo 2019 -2019年7月22-23日参加レポート

2019-07-27

今回、東京で開催されましたCloud Native Days Tokyo 2019に2日間とも参加してきましたので、報告しようと思います。セッション毎の報告というより、全体を通した感想を話そうかなと思います。...

一足遅れて Kubernetes を学び始める - 16. コンポーネント -

2019-06-10

前回 一足遅れて Kubernetes を学び始める - 15. セキュリティ -では、RBACによる権限について学習しました。今回は最後にKubernetesのコンポーネントについて学習します。...

一足遅れて Kubernetes を学び始める - 15. セキュリティ -

2019-06-07

前回 一足遅れて Kubernetes を学び始める - 14. スケジューリング -では、AffinityなどでPodのスケジューリングについて学習しました。今回は、セキュリティについて学習します。...

一足遅れて Kubernetes を学び始める - 14. スケジューリング -

2019-06-05

前回 一足遅れて Kubernetes を学び始める - 13. ヘルスチェックとコンテナライフサイクル -では、requestsやlimitといったヘルスチェックの仕方を学びました。今回は、Affinityなどによるスケジューリングについて学習します。...

【大阪・梅田】Kubernetes Meetup Tokyo

2019-06-01

大阪からKubernetes Meetup Tokyoに参加できるとのことで、こちらに参加してきました。Kubernetesの生みの親である3人の内の1人のJoe Bedaから、Kubernetesの歴史の経緯について教えて頂きました。その話がとてもわかりやすく、なるほどなと思ったので、ぜひとも共有したいと思います。...

一足遅れて Kubernetes を学び始める - 13. ヘルスチェックとコンテナライフサイクル -

2019-05-30

前回 一足遅れて Kubernetes を学び始める - 12. リソース制限 -では、requestsやlimitなどのリソース制限について学習しました。今回は、ヘルスチェックとコンテナライフサイクルについて学習します。...

一足遅れて Kubernetes を学び始める - 12. リソース制限 -

2019-05-29

前回 一足遅れて Kubernetes を学び始める - 11. config&storage その2 -では、storageについて学習しました。今回は、リソース制限について学習します。...

一足遅れて Kubernetes を学び始める - 11. config&storage その2 -

2019-05-27

前回 一足遅れて Kubernetes を学び始める - 10. config&storage その1 -では、configについて学習しました。今回は、storageを学びます。...

一足遅れて Kubernetes を学び始める - 10. config&storage その1 -

2019-05-23

前回 一足遅れて Kubernetes を学び始める - 09. discovery&LB その2 -では、様々なserviceを学習しました。今回は、config&storageのconfigを学びます。...

【大阪】BMXUG勉強会 -Kubernates体験&Watson Discovery入門- 2019年3月27日参加レポート

2019-05-22

今回、k8sの体験を目的として参加したのですが、意外な収穫があったので、共有したく、記事を書くことにしました。...

一足遅れて Kubernetes を学び始める - 09. discovery&LB その2 -

2019-05-15

前回 一足遅れて Kubernetes を学び始める - 08. discovery&LB その1 -でServiceについての概要を学びました。今回は下記を一気に学びます。...

一足遅れて Kubernetes を学び始める - 08. discovery&LB その1 -

2019-05-07

前回 一足遅れて Kubernetes を学び始める - 07. workloads その3 -でようやくworkloadsが終了しました。今回は、discovery&LBを進めようと思います。...

一足遅れて Kubernetes を学び始める - 07. workloads その3 -

2019-05-06

前回 一足遅れて Kubernetes を学び始める - 06. workloads その2 -にて、DaemonSetとStatefulSet(一部)を学習しました。今回は、StatefulSetの続きとJob,CronJobを学習します。...

一足遅れて Kubernetes を学び始める - 06. workloads その2 -

2019-05-05

前回 一足遅れて Kubernetes を学び始める - 05. workloads その1 -では、Pod,ReplicaSet,Deploymentの3つを学習しました。今回はDaemonSet,StatefulSet(一部)を学びます。...

一足遅れて Kubernetes を学び始める - 05. workloads その1 -

2019-05-03

前回 一足遅れて Kubernetes を学び始める - 04. kubectl -では、kubenetesのCLIツールkubectlを学習しました。今回は、目玉機能であるworkloadsについて学習します。...

一足遅れて Kubernetes を学び始める - 04. kubectl -

2019-05-02

前回 一足遅れて Kubernetes を学び始める - 03. Raspberry Pi -では、RaspberryPiの環境にKubernetesを導入しました。無事、動作確認ができたので、さっそく学習していきたいです。...

一足遅れて Kubernetes を学び始める - 03. Raspberry Pi -

2019-04-28

前回 一足遅れて Kubernetes を学び始める - 02. Docker For Mac -では、MacでKubernetesを軽く動かしてみました。DockerForMacでは、NodeがMasterのみだったため、Kubernetesを学習するには、ものたりない感がありました。そこで、RaspberryPiを使っておうちKubernetesを構築することになりました。...

一足遅れて Kubernetes を学び始める - 01. 環境選択編 -

2019-04-18

経緯 Kubernetesを使えるようになりたいな〜(定義不明) けど、他にやりたいこと(アプリ開発)あるから後回しにしちゃえ〜!!と、今までずっと、ちゃんと学ばなかったKubernetesを、本腰入れて使ってみようと思います。...

一足遅れて Kubernetes を学び始める - 16. コンポーネント -

2019-06-10

前回 一足遅れて Kubernetes を学び始める - 15. セキュリティ -では、RBACによる権限について学習しました。今回は最後にKubernetesのコンポーネントについて学習します。...

一足遅れて Kubernetes を学び始める - 15. セキュリティ -

2019-06-07

前回 一足遅れて Kubernetes を学び始める - 14. スケジューリング -では、AffinityなどでPodのスケジューリングについて学習しました。今回は、セキュリティについて学習します。...

一足遅れて Kubernetes を学び始める - 14. スケジューリング -

2019-06-05

前回 一足遅れて Kubernetes を学び始める - 13. ヘルスチェックとコンテナライフサイクル -では、requestsやlimitといったヘルスチェックの仕方を学びました。今回は、Affinityなどによるスケジューリングについて学習します。...

一足遅れて Kubernetes を学び始める - 13. ヘルスチェックとコンテナライフサイクル -

2019-05-30

前回 一足遅れて Kubernetes を学び始める - 12. リソース制限 -では、requestsやlimitなどのリソース制限について学習しました。今回は、ヘルスチェックとコンテナライフサイクルについて学習します。...

一足遅れて Kubernetes を学び始める - 12. リソース制限 -

2019-05-29

前回 一足遅れて Kubernetes を学び始める - 11. config&storage その2 -では、storageについて学習しました。今回は、リソース制限について学習します。...

一足遅れて Kubernetes を学び始める - 11. config&storage その2 -

2019-05-27

前回 一足遅れて Kubernetes を学び始める - 10. config&storage その1 -では、configについて学習しました。今回は、storageを学びます。...

一足遅れて Kubernetes を学び始める - 10. config&storage その1 -

2019-05-23

前回 一足遅れて Kubernetes を学び始める - 09. discovery&LB その2 -では、様々なserviceを学習しました。今回は、config&storageのconfigを学びます。...

一足遅れて Kubernetes を学び始める - 09. discovery&LB その2 -

2019-05-15

前回 一足遅れて Kubernetes を学び始める - 08. discovery&LB その1 -でServiceについての概要を学びました。今回は下記を一気に学びます。...

一足遅れて Kubernetes を学び始める - 08. discovery&LB その1 -

2019-05-07

前回 一足遅れて Kubernetes を学び始める - 07. workloads その3 -でようやくworkloadsが終了しました。今回は、discovery&LBを進めようと思います。...

一足遅れて Kubernetes を学び始める - 07. workloads その3 -

2019-05-06

前回 一足遅れて Kubernetes を学び始める - 06. workloads その2 -にて、DaemonSetとStatefulSet(一部)を学習しました。今回は、StatefulSetの続きとJob,CronJobを学習します。...

一足遅れて Kubernetes を学び始める - 06. workloads その2 -

2019-05-05

前回 一足遅れて Kubernetes を学び始める - 05. workloads その1 -では、Pod,ReplicaSet,Deploymentの3つを学習しました。今回はDaemonSet,StatefulSet(一部)を学びます。...

一足遅れて Kubernetes を学び始める - 05. workloads その1 -

2019-05-03

前回 一足遅れて Kubernetes を学び始める - 04. kubectl -では、kubenetesのCLIツールkubectlを学習しました。今回は、目玉機能であるworkloadsについて学習します。...

一足遅れて Kubernetes を学び始める - 04. kubectl -

2019-05-02

前回 一足遅れて Kubernetes を学び始める - 03. Raspberry Pi -では、RaspberryPiの環境にKubernetesを導入しました。無事、動作確認ができたので、さっそく学習していきたいです。...

一足遅れて Kubernetes を学び始める - 03. Raspberry Pi -

2019-04-28

前回 一足遅れて Kubernetes を学び始める - 02. Docker For Mac -では、MacでKubernetesを軽く動かしてみました。DockerForMacでは、NodeがMasterのみだったため、Kubernetesを学習するには、ものたりない感がありました。そこで、RaspberryPiを使っておうちKubernetesを構築することになりました。...

一足遅れて Kubernetes を学び始める - 01. 環境選択編 -

2019-04-18

経緯 Kubernetesを使えるようになりたいな〜(定義不明) けど、他にやりたいこと(アプリ開発)あるから後回しにしちゃえ〜!!と、今までずっと、ちゃんと学ばなかったKubernetesを、本腰入れて使ってみようと思います。...

LLVM入門 - javascriptをLLVM(Rust:inkwell)でJITコンパイルするまで

2021-09-04

コンパイラ基盤であるLLVMについて、全く知識がない私が、javascriptソースコードをパースしLLVMでコンパイルできるようになりました。LLVMの記事は数多くありますが、初心者向けの記事が少なく感じたため、本記事では、できる限り分かりやすくLLVMについて紹介できる記事を書こうと思います。ソースコードは、こちらに置いています。...

Apache Beam + Kotlin 開発 実践入門

2020-07-10

どうも、こんにちは。Re:ゼロ2期 始まりましたね、 @silverbirderです。最近、仕事の関係上、Apache Beam + Kotlin を使うことになりました。それらの技術が一切知らなかったので、この記事に学んだことを書いていきます。...

一足遅れて Kubernetes を学び始める - 16. コンポーネント -

2019-06-10

前回 一足遅れて Kubernetes を学び始める - 15. セキュリティ -では、RBACによる権限について学習しました。今回は最後にKubernetesのコンポーネントについて学習します。...

一足遅れて Kubernetes を学び始める - 15. セキュリティ -

2019-06-07

前回 一足遅れて Kubernetes を学び始める - 14. スケジューリング -では、AffinityなどでPodのスケジューリングについて学習しました。今回は、セキュリティについて学習します。...

一足遅れて Kubernetes を学び始める - 14. スケジューリング -

2019-06-05

前回 一足遅れて Kubernetes を学び始める - 13. ヘルスチェックとコンテナライフサイクル -では、requestsやlimitといったヘルスチェックの仕方を学びました。今回は、Affinityなどによるスケジューリングについて学習します。...

一足遅れて Kubernetes を学び始める - 13. ヘルスチェックとコンテナライフサイクル -

2019-05-30

前回 一足遅れて Kubernetes を学び始める - 12. リソース制限 -では、requestsやlimitなどのリソース制限について学習しました。今回は、ヘルスチェックとコンテナライフサイクルについて学習します。...

一足遅れて Kubernetes を学び始める - 12. リソース制限 -

2019-05-29

前回 一足遅れて Kubernetes を学び始める - 11. config&storage その2 -では、storageについて学習しました。今回は、リソース制限について学習します。...

一足遅れて Kubernetes を学び始める - 11. config&storage その2 -

2019-05-27

前回 一足遅れて Kubernetes を学び始める - 10. config&storage その1 -では、configについて学習しました。今回は、storageを学びます。...

一足遅れて Kubernetes を学び始める - 10. config&storage その1 -

2019-05-23

前回 一足遅れて Kubernetes を学び始める - 09. discovery&LB その2 -では、様々なserviceを学習しました。今回は、config&storageのconfigを学びます。...

【大阪】BMXUG勉強会 -Kubernates体験&Watson Discovery入門- 2019年3月27日参加レポート

2019-05-22

今回、k8sの体験を目的として参加したのですが、意外な収穫があったので、共有したく、記事を書くことにしました。...

一足遅れて Kubernetes を学び始める - 09. discovery&LB その2 -

2019-05-15

前回 一足遅れて Kubernetes を学び始める - 08. discovery&LB その1 -でServiceについての概要を学びました。今回は下記を一気に学びます。...

一足遅れて Kubernetes を学び始める - 08. discovery&LB その1 -

2019-05-07

前回 一足遅れて Kubernetes を学び始める - 07. workloads その3 -でようやくworkloadsが終了しました。今回は、discovery&LBを進めようと思います。...

一足遅れて Kubernetes を学び始める - 07. workloads その3 -

2019-05-06

前回 一足遅れて Kubernetes を学び始める - 06. workloads その2 -にて、DaemonSetとStatefulSet(一部)を学習しました。今回は、StatefulSetの続きとJob,CronJobを学習します。...

一足遅れて Kubernetes を学び始める - 06. workloads その2 -

2019-05-05

前回 一足遅れて Kubernetes を学び始める - 05. workloads その1 -では、Pod,ReplicaSet,Deploymentの3つを学習しました。今回はDaemonSet,StatefulSet(一部)を学びます。...

一足遅れて Kubernetes を学び始める - 05. workloads その1 -

2019-05-03

前回 一足遅れて Kubernetes を学び始める - 04. kubectl -では、kubenetesのCLIツールkubectlを学習しました。今回は、目玉機能であるworkloadsについて学習します。...

一足遅れて Kubernetes を学び始める - 04. kubectl -

2019-05-02

前回 一足遅れて Kubernetes を学び始める - 03. Raspberry Pi -では、RaspberryPiの環境にKubernetesを導入しました。無事、動作確認ができたので、さっそく学習していきたいです。...

一足遅れて Kubernetes を学び始める - 03. Raspberry Pi -

2019-04-28

前回 一足遅れて Kubernetes を学び始める - 02. Docker For Mac -では、MacでKubernetesを軽く動かしてみました。DockerForMacでは、NodeがMasterのみだったため、Kubernetesを学習するには、ものたりない感がありました。そこで、RaspberryPiを使っておうちKubernetesを構築することになりました。...

一足遅れて Kubernetes を学び始める - 01. 環境選択編 -

2019-04-18

経緯 Kubernetesを使えるようになりたいな〜(定義不明) けど、他にやりたいこと(アプリ開発)あるから後回しにしちゃえ〜!!と、今までずっと、ちゃんと学ばなかったKubernetesを、本腰入れて使ってみようと思います。...