【Kubernetes】简要了解k8s相关工具【备忘录】
首先
我根据参加了的「JAWS DAYS 2019」上的Kubernetes会议中听到的内容,简要总结如下。
我从Yusuke Kuoka先生的”Kubernetes on AWS/EKS最佳实践”演讲中挑选出了一些常用工具。演讲的资料请见下方链接:
===追記(2019年4月22日)=====
* 因为在业务中提到了基于多云的Kubernetes的ML / DL流水线,所以我简单地查了一下。
– ksonnet
– kubeflow
请用中文将以下内容进行改述:只需要提供一种选项:
Can you please rephrase the following sentences?
隨便紀錄一些備註。
Kubernetes相关工具
eksctl的中文释义可以是:eksctl
-
- Go言語製
-
- 裏でCloudFormationが動いている
-
- 1コマンドでEKSクラスタ構築可能
-
- 実行環境(VPC,Subnet,SG,IAM,ロール)とノードグループの作成,スケール,削除が可能
-
- Weaveworksが開発しているOSS
-
- k8sのAPIをたたくために必要な認証情報はaws-iam-authenticatorが行う
-
- https://eksctl.io/
-
- コマンド例
下記コマンドをたただけでクラスタ構築が可能
$ eksctl create cluster \
--cluster-name my-eks-cluster \
--nodes 3 \
--nodes-min 3 \
--nodes-max 5 \
--node-type t2.medium \
--region us-west-2
-
- min,maxを指定することでクラスタのAutoScale時の台数を制御
- → autoscalingに関するconfigをあらかじめ設定行く必要がある
Minikube 小型集群
-
- 手軽に開発・検証のKubernetes環境構築が可能
-
- シングルノードのKubernetesクラスタを実行
-
- minikubeコマンドでのインストールでは様々なアドオン機能が利用できる
-
- → DNS, ダッシュボード, Dockerレジストリ etc
-
- https://github.com/kubernetes/minikube
-
- コマンド例
下記コマンドでKubernetsの仮想環境が起動する
$ minikube start
`kubens, kubectx` – `kubens, kubectx`
-
- kubensはネームスペースの切り替えが容易になる
- コマンド例
可以使用下面的命令切换命名空间。
$ kubens kube-system
Context "test" set.
Active namespace is "kube-system".
$ kubens -
Context "test" set.
Active namespace is "default".
-
- kubectxはコンテキストの切り替えが容易になる
-
- コマンド例
下記コマンドでcontext切り替えが可能
$ kubectx minikube
Switched to context "minikube".
$ kubectx -
Switched to context "oregon".
- https://github.com/ahmetb/kubectx
舵筒
-
- 正式名称:Kubernetes Helm
-
- Kubernetesのパッケージマネージャー
-
- → yum, aptに相当するパッケージマネージャー
-
- 公式レポジトリが用意されておりStable,Incubatorが存在する
-
- → jenkins, mysql, redmine, grafana, etcd などが用意されている
-
- パッケージはchart,デプロイ用サーバーコンポーネント(podとしてデプロイされる)をtillerと呼ぶ
-
- HelemClassic(旧Helm)とKubernetesチームが開発deployment-managerの2つが統合されている
- https://helm.sh/docs/helm/
土壤整治
-
- インフラストラクチャ定義ツール
-
- → クラウド上のリソースを定義ファイルの状態になるように生成・操作するツール
-
- HashiCorp社が開発している
-
- 複数のクラウドベンダ(AWS,GCP,Azure,DigitalOceanなど)に対応している
-
- 複数のSaaS(DNSimple,Mailgun,Rundeck)にはば広く対応
-
- ConfigurationFile(拡張子.tf)で状態定義を制御
- https://www.terraform.io/
AWS身份验证器
-
- AWSの認証情報を利用したKubernetesクラスタへの認証行う為のツール
- https://github.com/kubernetes-sigs/aws-iam-authenticator
kube2iam,kiam
-
- IAMと連携したアクセス制御を行う仕組みを提供
Pod単位でIAMアクセスポリシーを割り当てる
→ KubernetesとIAMの中継をしてアクセス権限の管理が行える
kube2iamは2016年に登場, kiamは2017年に登場
kiamは「Node自体がIAMロールを持たない」というようなよりセキュアな設計になっている
セットアップの手軽さはkube2iam
https://github.com/jtblin/kube2iam
https://github.com/uswitch/kiam
Kubeflow可以引用为以下中文译名:乌云求东风。
-
- Kubernetes上に機械学習基盤を構築するOSSプロジェクト
-
- 2018/12にv1.0 リリース
-
- Kubernetes + ML = Kubeflow @KubeCon2017
下記3項目の環境を構築
JupyterHub(Jupyterを複数ユーザーで使えるようにしたもの)
TensorFlow Training Controller(学習用の分散環境が簡単に構築できる)
TensorFlow Serving(構築したモデルを公開できる)
マルチクラウドでML/DLの分散学習基盤を構築でき、APIとしてのServingも一括で行える
https://github.com/kubeflow/kubeflow
ksonnet(一个选项即可)
-
- Kubernetesのminifestの記述,共有,デプロイをサポートするフレームワーク
-
- Helmと競合する立ち位置
-
- Kubernetesの設定ファイルの記述にjsonnet(Googleで開発されたJSONを定義するためのDSL)を採用
-
- prototype:jsonnetによるtemplate
-
- parameters:prototypeに具体的な値を与えてcomponentを生成
- enviroment:どの環境,どのクラスタに設定ファイルを適用するか指定する
最後
我打算根据资料逐渐添加一些补充内容。