Dockerこの前はこんな感じのことをやっていました。nogawanogawa.hatenablog.com今回もDocker関連をやっていきます。今回はオーケストレーションをやっていきます。参考にさせていただいたのはこちら。試しに使ってみるDashboardを使う操作PodReplicaSetDeploymentServiceIngressその他のリソース感想オーケストレーションDockerを使用する際、下記を参考にすると、こんな感じのことも考えないといけません。平たく言うと、コンテナの周りの管理を考えないといけないってことですね。そこで、コンテナオーケストレーションが必要になってきます。cn.teldevice.co.jpこうした多数のコンテナに対する運用管理作業を一般に“コンテナオーケストレーション”と呼びます。Kubernetesをはじめとするコンテナオーケストレーションツールは、こうした作業を自動化してくれるのです。正確な表現ではありませんが、コンテナを基盤とした分散環境を実現するOSのような位置づけと言ってもいいでしょう。Kubernetesのセッションが非常に多かった印象でした。Kubernetesは使って当たり前というような雰囲気すらありました。印象としては、Kubernetesを使う前提で、マルチクラウド・ハイブリッドクラウドでどうやってシステムを管理していくかがポイントな気がしました。概要さて、Kubernatesの概要に入ります。本書によるとKubernetesは下記のように書かれています。KubernatesはGoogle社主導で開発された、コンテナの運用を自動化するためのコンテナオーケストレーションシステムです。概念Kubernetesの構成のイメージはこんな感じです。下から見ていくと、複数のNodeにまたがって、Kubernetesクラスタと呼ばれるKubernetesの様々なリソースを管理する集合体が形成されます。各Nodeは一つのKubernetesクラスタによって管理されます。Nodeが少なくとも一つは配置されます。Nodeの上に複数のコンテナを束ねたPodと呼ばれる集合が乗っかるような構成になります。PodはNodeは必ず一つのNodeに帰属する形になり、またぐことはできないようになっています。MasterNodeには、下記のようなもので構成されているようです。kube-apisetveretcdkube-schedulerkube-controller-manager試しに使ってみる使いながら勉強ということで、こちらのリポジトリを使わせていただきました。github.com勉強に使うなら、公式のチュートリアルもあるので、そっちも見ながらやると良いかもしれないです。kubernetes.ioDashboardを使う下記のコマンドでインストールできます。https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml次に、ダッシュボードへのプロキシサーバを起動します。proxy試しにアクセスしてみます。default-token-***でトークンを取れます。これを入力するとこんな感じ。Googleっぽいダッシュボードが見れました。操作Kubernetesで実行されるアプリケーションは、デプロイの構成要素であるリソースと協調して動作しています。リソースは平たく言えば、デプロイ時の設定みたいなもんですかね。何はともあれ、写経しながら確認します。PodPodは上で書いたように、コンテナの集合体です。その設定を記載して適用することで、Kubernetesクラスタの中にPodがデプロイされます。simple-pod.yamlこれでpodがデプロイされるらしいです。pod確認してみます。11s確かに起動していることがわかります。simple-pod.yamlReplicaSet次は複数のpodを束ねたReplicasetを定義・適用します。21s3つpodができています。deletedDeploymentDeploymentはRepliacasetと似ていますが、世代管理が可能になっています。created確認してみると、こんな感じです。103sリビジョン(世代)を確認してみると、1となっています。--record=true世代が一つ追加されています。ロールバックはこんな感じらしいです。backServiceServiceはPodの集合に経路やサービスディスカバリを提供するリソースです。今回の例では、特定のコンテナからだけリクエストをできるようにします。serverとなっており、片方のpodだけにリクエストが飛ぶように設定が反映されていることがわかりました。IngressServiceをKubernetesの外へ公開する設定とHttpのルーティングの設定がIngressリソースです。13sこれで80番ポートが外に開放され、外部からアクセスできるようです。その他のリソースcronとかJobとかいろいろありましたが、このへんは細かいのでしっかりアプリケーションを組む際にもっかいやります。いうわけで今回は省略。感想なんかkubernetesが起動しなかったり、ダッシュボードのログイン方法がわかんなかったりして時間食いましたが、なんとか動作は確認できました。一応、コンテナ技術については、一通りかいつまんで勉強してきました。Kubernetesなんかは、使ってなんぼだと思いますので、頑張って使っていきたいと思います。(1)ほしい物リスト買ってあげると中の人が喜びますはてなブログをはじめよう!nogawanogawaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。