GCPUGでのライトニングトーク(自己紹介とKubernates)
by
とこま
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Lightning talk Makoto Hashimoto
Slide 2
Slide 2 text
2 自己紹介 ● これまでやってきたこと、現在やっていること – エンタープライズ系アプリケーション ● Java&framework->ESB(Enterprise Service Bus) ● Business Rule Engine – ビッグデータ関連 ● Scala / Spark ● NoSQL(CouchDB 、 MongoDB 、 Couchbase) ● Amazon Elastic MapReduce(Spark 、 S3) ● プログラミング言語 – Java 、 python 、 Javascript 、 Clojure 、 Scala ● 開発環境 – Linux(Ubuntu)/Emacs – Cider(Clojure) 、 Encime(Scala) https://goo.gl/xD4gWN
Slide 3
Slide 3 text
3 自己紹介 ● これから新たにやろうとしていること – ブロックチェーン関連 ● Ethereum ● HyperLedger – 最適化問題 ● Google ortools(Google の Paris Lab が開発 ) – 工場のシフトスケジューリング、生産ラインの最適化 ● 個人的には – 神戸市内で農業と IT を繋げる活動 ● 食に興味あり ● シェアリングエコノミーと結びつけられないか?
Slide 4
Slide 4 text
4 自己紹介 農業と IT をつなぐ活動
Slide 5
Slide 5 text
5 神戸のムーブメント https://readyfor.jp/projects/tanigami 谷上プロジェクト https://www.nikkei.com/article/DGXMZO30513150V10C18A5AM1000/ マッキンゼーの研修拠点が新神戸に ( 日経新聞の web サイトより ) http://thebridge.jp/2017/04/announcing-500-kobe-accelerator- program-2017 http://urban-innovation-kobe.com/
Slide 6
Slide 6 text
6 GCPAG Kobe への期待 ● 何か面白いことができそう ! ● 地元で集まって技術者のネットワーキング ● テーマは? – 機械学習、 AI – インフラ (Kubernetes) U
Slide 7
Slide 7 text
7 GCP との関わり、やってみたいこと ● 3 月末から個人アカウントで利用開始 – 知り合いが GCP に転職して Facebook メッセージがきたのがきっかけ – Compute Engine(Bitcoin やEthereumの環境構築に利用 ) – Big Query ● BigData 関連 – GCP 環境での Sparkの利用 (Dataprop) – BigQueryでの PoC( バッチ、ストリーミング ) ● App Engine – AppEngine example with Clojure – WordPress ● Clojure wrapper for Google API – Google API for Clojurescript(ML API) – Clojurescript(Javascript) にて vision-api を用いた物体認識アプリケー ションを作成中( はまっています) ● そして Kubenetes
Slide 8
Slide 8 text
8 GCP との関わり、やってみたいこと $ time gcloud compute instances start instance-2 Starting instance(s) instance-2...done. Updated [https://www.googleapis.com/compute/v1/projects/test- project-199421/zones/us-east1-b/instances/instance-2]. real 0m9.996s user 0m0.607s sys 0m0.079s (ns my-gae.core (:require [compojure.core :refer :all] [compojure.route :as route])) (defroutes app (GET "/" [] "
こんにちは
") (route/not-found "
ページがみつかりません
")) GCP の IAS(Compute Engine) の起動は速い ! GAE の Clojure コード例
Slide 9
Slide 9 text
9 Kubernetes でやってみたいこと ● DevOps – ローカルでクラスタ環境を構築して開発・テストを 行い、さくっとプロダクション環境に持っていきたい – Minikube→GKE ● オンプレ、クラウド非依存 – オンプレ、クラウドベンダに依存しない可搬性の高 い基盤を構築したい ● クラスタリング – Spark 、 NoSQL などビッグデータの環境を k8s で構 築する – Hyperledger の環境を k8s で構築する
Slide 10
Slide 10 text
10 Kubernetes とは ● 公開コンテナを利用したインフラ環境の構築、運 用を容易にするためのソフトウェア – ソフトウェア組み合わせによる環境構築を容易にする – クラスタリング環境の構築を行い、手動・自動スケー リング機能を提供する – ローリングアップデートと呼ばれる稼働中のソフトウェア のアップデートを可能にする ● Google が社内で開発して、実際に利用しているコ ンテナ管理システムである Borg をベースにして 2018 年 6 月に公開 ● 船の操縦手 , 統括者・支配者というギリシャ語で あり、 k8s と略される
Slide 11
Slide 11 text
11 Kubernetes の構成要素 ● Pod – Kubernetes にデプロイできるオブジェクトの最小単位 – pod には Docker などのコンテナが 1 つ以上含まれる – ポッドで複数のコンテナが実行される場合、コンテナは単一のエンティ ティとして管理され、ポッドのリソースを共有 (ボリューム、ネットワーキン グ ) ● Deployment – Pod の配備と冗長化( レプリカ ) を行う – ReplicaSet の生成・管理を行う ● Service – Pod へのアクセスを提供する – ExternalIP を提供することで外部へのサービスを公開する ● Node – Docker などのコンテナのホストとなる物理的もしくは仮想的なマシン
Slide 12
Slide 12 text
12 マスターコンポーネント 構成要素 説明 kube-apiserver RESTベースのkubernetesの操作を行うフロ ントエンドAPIを提供 etcd クラスタデータを保持する分散型KVS kube-controller- manager 各種コントローラーを起動し、その状態を管 理するマネージャー cloud-controller- manager 各ベンダーのクラウド基盤とのやり取りを行 う kube-scheduler 可用性、パフォーマンス、および容量に大き な影響を与えるポリシーリッチ・トポロジを意 識したワークロード固有の機能を提供
Slide 13
Slide 13 text
13 ワーカーコンポーネント 構成要素 説明 kubelet クラスタのノード上で稼動するエージェン ト、podの中でコンテナが稼動していることを 保証する Kube-proxy KubernetesのServiceが持つ仮想的なIPア ドレス(cluster IP)へのアクセスをルーティング Container Runtime コンテナのためのソフトェアであり、現在 Docker, rkt, runcおよびOCIランタイム仕様 の実装が動く
Slide 14
Slide 14 text
14 アドオン 構成要素 説明 DNS KubernetesのためのDNSで多くのクラスタで はこのDNSを利用しており、クラスタ立ち上げ 時にDNSは起動する Web-ui (Dashboard) KubernetesのためのWebベースのダッシュボー ドであり、クラスタ自身とクラスタで稼動する アプリケーションの管理とトラブルシューティン グを行う Container Resource Monitoring 時系列のコンテナのリソースモニタリングのた めのメトリックスのデータベースおよびこれらの データを表示するためのUI Cluster-Level Logging クラスタレベルのロギングメカニズムおよび検 索・表示のためのインターフェイス
Slide 15
Slide 15 text
15 アーキテクチャ図 クラウド kubecnl kube- apiserver etcd kube- controller- manager cloud- controller- manager kubelet Container runtime kube-proxy ノード kubelet Container runtime kube-proxy ノード
Slide 16
Slide 16 text
16 オンプレ ( ノート PC) と GKE で切り替え kubecntl
Slide 17
Slide 17 text
17 うまくいかなかったところ $ kubectl get pods Error from server (Forbidden): pods is forbidden: User "client" cannot list pods in the namespace "default": Unknown user "client" ● Local PC(ubuntu 16.04) で以下を実行すると うまくいかない – gcloud container clusters get-credentials xxx ● Compute engine と同じ環境の ~/.kube/config をローカルにコピーするとうまく いく ( 当日の早朝 2 時頃に分った 涙 ) – これではまずいので現在問題究明中
Slide 18
Slide 18 text
18 一応できた ! $ kubectl config use-context minikube Switched to context "minikube". $ kubectl config use-context gke_test-project-199421_us-east1-b_my- cluster Switched to context "gke_test-project-199421_us-east1-b_my-cluster". ● minikube( ローカル環境 ) への切り替え ● GKE( クラスタ環境 ) への切り替え
Slide 19
Slide 19 text
19 次回機会があれば ● Kubernetes の続き – 実践的なより複雑なクラスタの構成の解説 – DevOps について ● Cloujure/Clojurescript ベースの物体認識ア プリ – oogle-vision-api などを利用 – Clojure on app-engine などなど・・・・・ みんなで盛り上げましょう !