※glcoud compoents updateでCloud SDKを最新にしておきます。
GKEクラスタを作成
gcloud container clusters create test-cluster --zone asia-east1-a --machine-type g1-small --num-nodes 1 --network stage-network
指定しないと、n1-standard-1とクラスタノード数3で起動します。
gcloud containers コマンドのデフォルトクラスタを「test-cluster」に設定します。
gcloud config set container/cluster test-cluster
kubectlとの連携
gcloud container clusters get-credentials
作成したクラスタの確認
gcloud container clusters describe test-cluster --zone asia-east1-a
作成するコンテナ用jsonを作成します。jsonだけでなく、yamlでも作成可能です。
{ "kind": "Pod", "apiVersion": "v1", "metadata": { "name": "nginx", "namespace": "default" }, "spec": { "containers": [ { "name": "nginx", "image": "nginx", "imagePullPolicy": "Always", "ports": [ { "containerPort": 22, "name": "ssh", "protocol": "TCP" } ] } ] } }
Pods (Containers)を作成します。
kubectl create -f nginx.json
kubectl describe pods nginx
コンテナを削除する場合は、以下コマンドで完了。
kubectl delete -f nginx.json
作成したコンテナを確認します。Node Clusterも確認できます。Datadog Agentをインストールする際、sshログインする必要があります。
kubectl get pods nginx -o wide
NAME READY STATUS RESTARTS AGE NODE nginx 1/1 Running 0 -340s gke-test-cluster-919cf59d-node-zgrc
Containerが起動すれば、Runningになるかと思います。内部的にイメージになんらか問題が生じて、Containersが起動できなくなっているケースもあります。Node Cluseterにログイン後、docker ps -aで、Containerは確認できます。(Datadogを使えば、コンテナの状態も確認できると思われます。)
Datadogに登録
Datadogの登録は割愛します。
ホストサーバーにDatadog Agentをインストール
Datadogのダッシュボードにある左メニューのIntegrationのAgentを選んで、「Debian」を選択します。 すると1行ペラっとコマンド出てきますから、それをコピーします。
DD_API_KEY=XXXXXXXXXXXXXXXXXXXXXXX bash -c "$(curl -L https://raw.githubusercontent.com/DataDog/dd-agent/master/packaging/datadog-agent/source/install_agent.sh)"
ホストサーバーからDocker Agentをインストール
IntegrationのAgentを選んで、「CoreOS」を選択します。
docker run -d --name dd-agent -h `hostname` -v /var/run/docker.sock:/var/run/docker.sock -v /proc/mounts:/host/proc/mounts:ro -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro -e API_KEY=XXXXXXXXXXXXXXXXXXXXXXX datadog/docker-dd-agent
Docker 用監視ファイルの設定
サンプルのdocker用yamlファイルが置かれているので、リネームして、agentを起動します。
cp /etc/dd-agent/conf.d/docker.yaml.example /etc/dd-agent/conf.d/docker.yaml
dd-agent start