概要
Docker for Mac with Kubernetes のBeta版が利用できるようになってましたので、動かしてみました。
マニュアルはこのへん
https://docs.docker.com/docker-for-mac/#kubernetes
手順
インストール
Docker for MacのEdgeバージョンをインストールする必要があります。
ファイルのパス
https://download.docker.com/mac/edge/Docker.dmg
インストールして About Docker
を見るとこんな感じです。
サインイン
Dockerにサインインする必要があるので、メニューからサインインします。
起動
Preferenceから Kubernetes
を選択し、 Enable Kubernetes
にチェックを入れて、
Apply
します。
kubectlコマンド
Kubernetesが起動すると、 kubectl
コマンドが使えるようになってます。
- 起動前
$ which kubectl
kubectl not found
- 起動後
$ which kubectl
/usr/local/bin/kubectl
Homebrew等でkubectlを既にインストールしていて、 /usr/local/bin/kubectl
がある場合、先に削除しておく必要があるようです。
contextの変更
kubectlのcontextsを確認します。
# kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
docker-for-desktop docker-for-desktop-cluster docker-for-desktop
* gke_xxxxxxxx_asia-northeast1-a_sasaki-cluster-1 gke_xxxxxxxx_asia-northeast1-a_sasaki-cluster-1 gke_xxxxxxxx_asia-northeast1-a_sasaki-cluster-1
gke_xxxxxxxx_asia-northeast1-a_sasaki-test-cluster gke_xxxxxxxx_asia-northeast1-a_sasaki-test-cluster gke_xxxxxxxx_asia-northeast1-a_sasaki-test-cluster
contextを docker-for-desktop
に変更します。
$ kubectl config use-context docker-for-desktop
Switched to context "docker-for-desktop".
$ kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* docker-for-desktop docker-for-desktop-cluster docker-for-desktop
gke_xxxxxxxx_asia-northeast1-a_sasaki-cluster-1 gke_xxxxxxxx_asia-northeast1-a_sasaki-cluster-1 gke_xxxxxxxx_asia-northeast1-a_sasaki-cluster-1
gke_xxxxxxxx_asia-northeast1-a_sasaki-test-cluster gke_xxxxxxxx_asia-northeast1-a_sasaki-test-cluster gke_xxxxxxxx_asia-northeast1-a_sasaki-test-cluster
確認
これで使えるようになっています。
$ kubectl describe nodes
Name: docker-for-desktop
Roles: master
Labels: beta.kubernetes.io/arch=amd64
beta.kubernetes.io/os=linux
kubernetes.io/hostname=docker-for-desktop
node-role.kubernetes.io/master=
Annotations: node.alpha.kubernetes.io/ttl=0
volumes.kubernetes.io/controller-managed-attach-detach=true
Taints: <none>
CreationTimestamp: Sat, 06 Jan 2018 10:49:55 +0900
Conditions:
Type Status LastHeartbeatTime LastTransitionTime Reason Message
---- ------ ----------------- ------------------ ------ -------
OutOfDisk False Sat, 06 Jan 2018 10:57:45 +0900 Sat, 06 Jan 2018 10:49:44 +0900 KubeletHasSufficientDisk kubelet has sufficient disk space available
MemoryPressure False Sat, 06 Jan 2018 10:57:45 +0900 Sat, 06 Jan 2018 10:49:44 +0900 KubeletHasSufficientMemory kubelet has sufficient memory available
DiskPressure False Sat, 06 Jan 2018 10:57:45 +0900 Sat, 06 Jan 2018 10:49:44 +0900 KubeletHasNoDiskPressure kubelet has no disk pressure
Ready True Sat, 06 Jan 2018 10:57:45 +0900 Sat, 06 Jan 2018 10:49:44 +0900 KubeletReady kubelet is posting ready status
Addresses:
InternalIP: 192.168.65.3
Hostname: docker-for-desktop
Capacity:
cpu: 2
memory: 1999Mi
pods: 110
Allocatable:
cpu: 2
memory: 1899Mi
pods: 110
System Info:
Machine ID:
System UUID: 4D3CB816-82BD-8F36-8FF2-D448EAF7BF18
Boot ID: 99b16caa-794e-4918-ae57-f8dd1c37f723
Kernel Version: 4.9.60-linuxkit-aufs
OS Image: Docker for Mac
Operating System: linux
Architecture: amd64
Container Runtime Version: docker://17.12.0-ce
Kubelet Version: v1.8.2
Kube-Proxy Version: v1.8.2
ExternalID: docker-for-desktop
Non-terminated Pods: (7 in total)
Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits
--------- ---- ------------ ---------- --------------- -------------
docker compose-75f8bb4779-rd9b8 0 (0%) 0 (0%) 0 (0%) 0 (0%)
kube-system etcd-docker-for-desktop 0 (0%) 0 (0%) 0 (0%) 0 (0%)
kube-system kube-apiserver-docker-for-desktop 250m (12%) 0 (0%) 0 (0%) 0 (0%)
kube-system kube-controller-manager-docker-for-desktop 200m (10%) 0 (0%) 0 (0%) 0 (0%)
kube-system kube-dns-545bc4bfd4-rvvzp 260m (13%) 0 (0%) 110Mi (5%) 170Mi (8%)
kube-system kube-proxy-b94gv 0 (0%) 0 (0%) 0 (0%) 0 (0%)
kube-system kube-scheduler-docker-for-desktop 100m (5%) 0 (0%) 0 (0%) 0 (0%)
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.)
CPU Requests CPU Limits Memory Requests Memory Limits
------------ ---------- --------------- -------------
810m (40%) 0 (0%) 110Mi (5%) 170Mi (8%)
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal NodeHasSufficientDisk 9m (x8 over 9m) kubelet, docker-for-desktop Node docker-for-desktop status is now: NodeHasSufficientDisk
Normal NodeHasSufficientMemory 9m (x8 over 9m) kubelet, docker-for-desktop Node docker-for-desktop status is now: NodeHasSufficientMemory
Normal NodeHasNoDiskPressure 9m (x7 over 9m) kubelet, docker-for-desktop Node docker-for-desktop status is now: NodeHasNoDiskPressure
Normal Starting 6m kubelet, docker-for-desktop Starting kubelet.
Normal NodeAllocatableEnforced 6m kubelet, docker-for-desktop Updated Node Allocatable limit across pods
Normal NodeHasSufficientDisk 5m (x8 over 6m) kubelet, docker-for-desktop Node docker-for-desktop status is now: NodeHasSufficientDisk
Normal NodeHasSufficientMemory 5m (x8 over 6m) kubelet, docker-for-desktop Node docker-for-desktop status is now: NodeHasSufficientMemory
Normal NodeHasNoDiskPressure 5m (x7 over 6m) kubelet, docker-for-desktop Node docker-for-desktop status is now: NodeHasNoDiskPressure
システムコンテナ
Kubernetes関連のコンテナはデフォルトでは見えないようになっています。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
Preferenceで Show system containers
にチェックを入れると、見れるようになります。
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
00d920237e91 docker/kube-compose-controller "/compose-controller…" 4 minutes ago Up 3 minutes k8s_compose_compose-75f8bb4779-rd9b8_docker_0d27063d-f284-11e7-a992-025000000001_0
383d77fc9835 gcr.io/google_containers/k8s-dns-sidecar-amd64 "/sidecar --v=2 --lo…" 4 minutes ago Up 3 minutes k8s_sidecar_kube-dns-545bc4bfd4-rvvzp_kube-system_eb5dbeb6-f283-11e7-a992-025000000001_0
33bc91c18665 gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64 "/dnsmasq-nanny -v=2…" 4 minutes ago Up 3 minutes k8s_dnsmasq_kube-dns-545bc4bfd4-rvvzp_kube-system_eb5dbeb6-f283-11e7-a992-025000000001_0
a07ccccbc715 gcr.io/google_containers/k8s-dns-kube-dns-amd64 "/kube-dns --domain=…" 4 minutes ago Up 3 minutes k8s_kubedns_kube-dns-545bc4bfd4-rvvzp_kube-system_eb5dbeb6-f283-11e7-a992-025000000001_0
c62af488ecdb gcr.io/google_containers/kube-proxy-amd64 "/usr/local/bin/kube…" 4 minutes ago Up 3 minutes k8s_kube-proxy_kube-proxy-b94gv_kube-system_eb4494f6-f283-11e7-a992-025000000001_0
0d6870191555 gcr.io/google_containers/pause-amd64:3.0 "/pause" 4 minutes ago Up 3 minutes k8s_POD_kube-dns-545bc4bfd4-rvvzp_kube-system_eb5dbeb6-f283-11e7-a992-025000000001_0
003ef58116b7 gcr.io/google_containers/pause-amd64:3.0 "/pause" 4 minutes ago Up 3 minutes k8s_POD_kube-proxy-b94gv_kube-system_eb4494f6-f283-11e7-a992-025000000001_0
37c6084548b5 gcr.io/google_containers/pause-amd64:3.0 "/pause" 4 minutes ago Up 3 minutes k8s_POD_compose-75f8bb4779-rd9b8_docker_0d27063d-f284-11e7-a992-025000000001_0
cd8c1ff65a12 gcr.io/google_containers/kube-controller-manager-amd64 "kube-controller-man…" 4 minutes ago Up 3 minutes k8s_kube-controller-manager_kube-controller-manager-docker-for-desktop_kube-system_14053f30ffdac3d94dc69b1a16dc611d_0
8312db8077a8 gcr.io/google_containers/kube-scheduler-amd64 "kube-scheduler --ad…" 4 minutes ago Up 3 minutes k8s_kube-scheduler_kube-scheduler-docker-for-desktop_kube-system_972d74c9fc2f4ebd8ab673058e386a65_0
78581567de01 gcr.io/google_containers/kube-apiserver-amd64 "kube-apiserver --ad…" 4 minutes ago Up 3 minutes k8s_kube-apiserver_kube-apiserver-docker-for-desktop_kube-system_16875061c80d82c0825badac9afb1ff5_0
c2522304db1a gcr.io/google_containers/etcd-amd64 "etcd --advertise-cl…" 4 minutes ago Up 3 minutes k8s_etcd_etcd-docker-for-desktop_kube-system_56a21c0a5f545c0cca5388c457bb1b3b_0
cffe2403d4f6 gcr.io/google_containers/pause-amd64:3.0 "/pause" 4 minutes ago Up 3 minutes k8s_POD_kube-scheduler-docker-for-desktop_kube-system_972d74c9fc2f4ebd8ab673058e386a65_0
70a196659b1f gcr.io/google_containers/pause-amd64:3.0 "/pause" 4 minutes ago Up 3 minutes k8s_POD_kube-controller-manager-docker-for-desktop_kube-system_14053f30ffdac3d94dc69b1a16dc611d_0
1ff3169d6835 gcr.io/google_containers/pause-amd64:3.0 "/pause" 4 minutes ago Up 3 minutes k8s_POD_kube-apiserver-docker-for-desktop_kube-system_16875061c80d82c0825badac9afb1ff5_0
ef1780261519 gcr.io/google_containers/pause-amd64:3.0 "/pause" 4 minutes ago Up 3 minutes k8s_POD_etcd-docker-for-desktop_kube-system_56a21c0a5f545c0cca5388c457bb1b3b_0