📝 BLOG.IK.AM

@making's memo
(🗃 Categories 🏷 Tags)

Cloud Foundry Container Runtime 0.16.0を0.17.0にアップデート

🗃 {Dev/CaaS/Kubernetes/CFCR}

🏷 AWS 🏷 BOSH 🏷 CFCR 🏷 Kubernetes 🏷 Kubo

🗓 Updated at 2018-06-01T03:46:32+09:00 by Toshiaki Maki  🗓 Created at 2018-06-01T03:34:52+09:00 by Toshiaki Maki  {✒️️ Edit  ⏰ History}


Kubernetes 1.10.0およびMulti-Masterに対応したCFCR 0.17.0がリリースされたので、
前回作成したCFCR 0.16.0の環境を0.17.0にアップデートします。

CFCR 0.17.0にアップデート

まずはBastion serverにログイン。

./ssh-bastion.sh 

BOSH用の環境変数を読み込みます。

cd cfcr-manifests
source bosh-aws-env.sh

v0.17.0のタグを使ってmanifestを更新します。

cd kubo-deployment
git fetch origin --tag
git checkout v0.17.0
cd ..

CFCR v0.17.0用にStemcellをアップデートします。

STEMCELL_VERSION=$(bosh int kubo-deployment/manifests/cfcr.yml --path /stemcells/0/version)
bosh upload-stemcell https://s3.amazonaws.com/bosh-aws-light-stemcells/light-bosh-stemcell-${STEMCELL_VERSION}-aws-xen-hvm-ubuntu-trusty-go_agent.tgz

CFCR v0.17.0を指定するops-fileを作成します。

cat <<EOF > ops-files/kubernetes-kubo-0.17.0.yml
- type: replace
  path: /releases/name=kubo?
  value:
    name: kubo
    version: 0.17.0
    url: https://bosh.io/d/github.com/cloudfoundry-incubator/kubo-release?v=0.17.0
    sha1: 0ab676b9f6f5363377498e93487e8ba31622768e
EOF

deploy-kubernetes.shを更新して、作成したops-fileを使います。
Masterは引き続き1インスタンスにするため、ops-files/misc/single-master.ymlも使います。

cat <<'EOF' > deploy-kubernetes.sh
#!/bin/bash
bosh deploy -d cfcr kubo-deployment/manifests/cfcr.yml \
    -o kubo-deployment/manifests/ops-files/misc/single-master.yml \
    -o kubo-deployment/manifests/ops-files/addons-spec.yml \
    -o kubo-deployment/manifests/ops-files/iaas/aws/lb.yml \
    -o kubo-deployment/manifests/ops-files/iaas/aws/cloud-provider.yml \
    -o ops-files/kubernetes-kubo-0.17.0.yml \
    -o ops-files/kubernetes-worker.yml \
    -o ops-files/kubernetes-master-lb.yml \
    --var-file addons-spec=<(for f in `ls specs/*.yml`;do cat $f;echo;echo "---";done) \
    -v kubernetes_cluster_tag=${kubernetes_cluster_tag} \
    -v kubernetes_master_host=${master_lb_ip_address} \
    --no-redact
EOF
chmod +x deploy-kubernetes.sh

CFCR 0.17.0をデプロイします。 0.16.0から0.17.0の差分

./deploy-kubernetes.sh

Addonを更新します。

bosh -d cfcr run-errand apply-addons

k8s 1.10のクラスタが手に入りました!

$ kubectl get node -o wide
NAME                                          STATUS    ROLES     AGE       VERSION   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
ip-10-0-2-5.ap-northeast-1.compute.internal   Ready     <none>    45m       v1.10.3   <none>        Ubuntu 14.04.5 LTS   4.4.0-127-generic   docker://17.12.1-ce

クラスタのスケールアウト

Workerを2インスタンス、Masterを3インスタンスにスケールアウトしましょう。

cat <<EOF > ops-files/kubernetes-worker.yml
- type: replace
  path: /instance_groups/name=worker/instances
  value: 2
EOF
cat <<'EOF' > deploy-kubernetes.sh
#!/bin/bash
bosh deploy -d cfcr kubo-deployment/manifests/cfcr.yml \
    -o kubo-deployment/manifests/ops-files/addons-spec.yml \
    -o kubo-deployment/manifests/ops-files/iaas/aws/lb.yml \
    -o kubo-deployment/manifests/ops-files/iaas/aws/cloud-provider.yml \
    -o ops-files/kubernetes-kubo-0.17.0.yml \
    -o ops-files/kubernetes-worker.yml \
    -o ops-files/kubernetes-master-lb.yml \
    --var-file addons-spec=<(for f in `ls specs/*.yml`;do cat $f;echo;echo "---";done) \
    -v kubernetes_cluster_tag=${kubernetes_cluster_tag} \
    -v kubernetes_master_host=${master_lb_ip_address} \
    --no-redact
EOF
./deploy-kubernetes.sh 

bosh vmsでVM一覧を確認。

$ bosh -d cfcr vms
Using environment '10.0.2.252' as client 'admin'

Task 61. Done

Deployment 'cfcr'

Instance                                     Process State  AZ  IPs       VM CID               VM Type        Active  
master/485d11d9-6390-40d7-97dd-b6f92b3148c6  running        z2  10.0.2.7  i-0f6a5ceca5c869797  small          -  
master/7e776fbe-ea80-499c-b1d6-9f1aa8af29bc  running        z3  10.0.2.8  i-01ef1a2a6b0e38f84  small          -  
master/bc14d482-2481-4cd4-ab61-f8998959befe  running        z1  10.0.2.4  i-0e0c6b90f7b2ee10d  small          -  
worker/9a57034a-99a5-48cb-9db0-59841e083a8c  running        z1  10.0.2.5  i-03d3204bfe5f4ba1f  small-highmem  -  
worker/ac71f182-ce0b-4c6d-8811-2605c3248121  running        z2  10.0.2.9  i-0412554a975042d05  small-highmem  -  

5 vms

Succeeded

EC2コンソールは次のようになります。

image