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コンソールは次のようになります。