Kubernetesは複数のDockerコンテナを連携させるためのシステム。
kubectl run newdemo --image=cloudnatived/demo:hello --port=8888--labels app=newdemo # このような設定があるとする
kubectl get deployments newdemo -o yaml --export >deployment.yaml
現在の設定をファイルにエクスポートして、それをGit管理するとすばやく移行できる。
kubectl diff -f deployment.yaml
- replicas: 10 + replicas: 5
kubectl runを実行すると実行できないときがある。
$ kubectl run ... The connection to the server localhost:8080 was refused - did you specify the right host or port?
落ち着いてstatusを確認する。
$ kubectl status minikube type: Control Plane host: Stopped kubelet: Stopped apiserver: Stopped kubeconfig: Stopped
単に動いてないことがわかったので、起動する。
$ minikube start
再度kubectl runする。
$ kubectl run ...
pod/demo created
kubectlが、どのコンテキストにいるか確認できる。
kubectl config current-context
これは、minikube、つまりローカル環境のcontextにいて、Kubernetesとの通信のcontextにはなっていないことを示す。
minikube ip
minikube dashboard
kubectl describe deployment postgres
kubectl get Pods
minikube service webapp
kubectl describe service webapp
チェックしたIPアドレスにpostしてみて、データベースに値を保存・登録できるのを確認する。
Kubernetesをローカルで動かすことは難しいので、代替手段が必要。 minikubeによってローカルで試したり、開発に使うことができる。
kubernetes/minikube: Run Kubernetes locally
導入手順。 minikube start | minikube
kubectlも動かすために必要。 Install and Set Up kubectl on Linux | Kubernetes
minikube start
🏄 Done! kubectl is now configured to use “minikube” cluster and “default” namespace by default
AWS上で動かすためにはまた別のインストールが必要。
export KUBERNETES_PROVIDER=aws; curl -sS https://get.k8s.io | bash
kelseyhightower/kubernetes-the-hard-way: Bootstrap Kubernetes the hard way on Google Cloud Platform. No scripts.
kubernetesの仕組みから学ぶ。
公式ドキュメント。
git clone git://github.com/cloudnativedevops/demo.git
マネージドkubernetesが絶対にいい。差別化につながらない面倒な作業は、アウトソーシングするべき。 リソースを解放してコアビジネスへ投入できるようになるから。
メトリクスは「なぜか」という疑問の解決に役立つ。動作している/してないの単純な判断を超えて、監視の新しい次元を切り開く。スピードメータや温度計のように、現在の状況に関する数値情報を与える。 メトリクスは、内部から監視する。従来のブラックボックス監視と異なる。
ソフトウェアはデフォルトで不透明である。ソフトウェア自体を測定できるようにして、何を実行しているかについて人間が推論できるよう情報を生成させることが必要。
4大シグナル。
- リクエスト
- エラー
- 持続期間
- 飽和度
prometheus/prometheus: The Prometheus monitoring system and time series database. OSSの監視ツール。
クラウドネイティブの世界では、適切なメトリクスとオブザーバビリティデータがなければ、現在の状況を的確に把握するのは極めて難しくなる。
Kubernetes Podcast from Google kubernetesのポッドキャスト。