Think Twice

Memorandum

CentOS7 minimal で Kubernetes ~part 2~

kubernetes/README.md at master · kubernetes/kubernetes · GitHub
Kubernetes Cluster を組んだので、podを動かします。ずっとmasterでの作業です。

docker-strorage-setupの設定(minion)(不要かも)

マニュルには記載がないですが、これで私の環境では動くようになった。
状況は後述。

# Edit this file to override any configuration options specified in
# /usr/lib/docker-storage-setup/docker-storage-setup.
#
# For more details refer to "man docker-storage-setup"
DATA_SIZE=4GB

pod 作成

pod-nginx.yamlをつくる
apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  containers:
  - name: nginx
    image: nginx
    ports:
    - containerPort: 80
podを起動
$ kubectl create -f pod-nginx.yaml
pod 確認
$ kubectl get pods
NAME      READY     STATUS    RESTARTS   AGE
nginx     1/1       Running   0          14m
Volumes を指定したpodも作成

データを永続化するためにVolumesを指定

apiVersion: v1
kind: Pod
metadata:
  name: redis
spec:
  containers:
  - name: redis
    image: redis
    volumeMounts:
    - name: redis-persistent-storage
      mountPath: /data/redis
  volumes:
  - name: redis-persistent-storage
    emptyDir: {}
$ kubectl create -f pod-redis.yaml
pods/redis
$ kubectl get pods
NAME      READY     STATUS    RESTARTS   AGE
nginx     1/1       Running   0          23m
redis     1/1       Running   0          27s

docker-storage-setup の設定

podを動かすまでdockerではまった。
最初はkubectl create をしても全然PodがRunningにならなかった。

$ kubectl get pods
NAME      READY     STATUS                                  RESTARTS   AGE
nginx     0/1       Image: nginx is not ready on the node   0          4m
$ kubectl get events
Sun, 16 Aug 2015 01:46:15 -0400   Sun, 16 Aug 2015 01:46:15 -0400   1         nginx      Pod       implicitly required container POD   failed         {kubelet minion-1}     Failed to create docker container with error: no such image


minionのログを見てみると、拡張できないというエラーログが。

# cat /var/log/messages
Aug 16 01:46:29 localhost lvm[2293]: Thin centos-docker--pool is now 100% full.
Aug 16 01:46:29 localhost lvm[2293]: Insufficient free space: 1 extents needed, but only 0 available
Aug 16 01:46:29 localhost lvm[2293]: Failed to extend thin centos-docker--pool.
# lsblk
NAME                          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                             8:0    0   12G  0 disk
├─sda1                          8:1    0  500M  0 part /boot
└─sda2                          8:2    0 11.5G  0 part
  ├─centos-root               253:0    0 10.3G  0 lvm  /
  ├─centos-swap               253:1    0  1.2G  0 lvm  [SWAP]
  ├─centos-docker--pool_tmeta 253:2    0   12M  0 lvm
  │ └─centos-docker--pool     253:4    0   20M  0 lvm
  └─centos-docker--pool_tdata 253:3    0   20M  0 lvm
    └─centos-docker--pool     253:4    0   20M  0 lvm
sr0                            11:0    1 1024M  0 rom


100%になってる。

# lvs
  LV          VG     Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  docker-pool centos twi-a-t-M- 20.00m             100.00 0.36
  root        centos -wi-ao---- 10.27g
  swap        centos -wi-ao----  1.20g


いろいろググったけど、Linuxに関する知識が貧弱すぎて、よくわからなっかたので、
Setting Up Storage — Project Atomic
を見て、
dockerを再インストール後、
minionの/etc/sysconfig/docker-storage-setupにDATA_SIZE=4GBを追加。

# cat /etc/sysconfig/docker-storage-setup
DATA_SIZE=4GB