Container Service for Kubernetes (ACK)をアップグレードしよう❗️

こんにちは。 ソリューションアーキテクトの松田(@MatYoshr)です。
今回も Container Service for Kubernetes に関する記事をお届け致します🤗

f:id:sbc_y_matsuda:20190626150321p:plainf:id:sbc_y_matsuda:20190626150438p:plain

6月は KubeCon China 2019 もありましたし、定期リリースのKubernetes 1.15 もリリース(2019年6月19日(米国時間))されましたね😄

kubernetes.io

個人的にはAlibaba Cloud Container PlatformチームがオープンソースとしてKubeCon Chinaで発表したOpenKruiseが気になりますね🤔

色々と気になるネタも多いKubernetes界隈ですが、今回はITに置いて避けては通れないアップグレードに関して、Alibaba Cloud Container Service for Kubernetes (ACK) のアップグレード方法をご紹介したいと思います。

アップグレード手順は公式ドキュメントでも公開されていますが、手順にはない部分での注意点やポイントなどご紹介させて頂きたいと思います❗️

jp.alibabacloud.com

Container Service for Kubernetes のアップグレード

ACKのアップグレードは手動でアップグレードの開始を行う必要がありますが、実行を選択するだけでアップグレード処理自体は自動的に実施されます😊

なお、現状日本サイトで提供しているDedicated タイプ(Master Node 有り)のACKではMaster、Worker共に手動での更新実行が必要になります。
残念ながらスケジュール実行の機能は提供しておりません😣

ℹ️管理コンソールのデザインが旧コンソールになっていますが、手順に違いはありません。

ACKで利用可能なKubernetesのバージョンはAlibaba Cloudのプロダクトチームにより管理されています。
利用可能なKubernetesのバージョンがAlibaba Cloudで公開されるとACKのクラスターリスト画面にて「クラスターのアップグレード」に下図のような🔴が表示されます。
※ 該当のクラスターで現在使用中のバージョンよりも新しいバージョンが利用可能な場合に表示されます。

f:id:sbc_y_matsuda:20190612171526p:plain:w850

「クラスターのアップグレード」を選択すると下図の様に「アップグレード可能なバージョン」が表示されます。
アップグレード可能なバージョンはACKの提供する最新バージョンへのアップグレードのみとなります。
また、連続したバージョンでなくてもアップグレードが可能です。

ℹ️タイミングによりバラツキはありますがKubernetesの最新リリースから1~2バージョン前のマイナーバージョンでのご提供です。
 本記事執筆時点ではバージョン1.12でのご提供となっています。近々新しいバージョンが提供されるかと思います。

f:id:sbc_y_matsuda:20190612172152p:plain:w650

「確認」を選択することでアップグレード処理が開始されます。
あとは正常に終了するのを待つだけです。

f:id:sbc_y_matsuda:20190612172404p:plain:w650

アップグレードが実行できない場合

アップグレードを実行した際に下図の様なエラーが発生することがあります。
とても分かりにくくて申し訳ないのですがメッセージ内に必要な作業が記載されていることがあります😓
下図でいうとPlease update your terway to newest version.と表示されている部分が該当します。
※ どうしたら良いか判らない場合はエラーメッセージの内容を添えてサポートにお問い合わせください。

f:id:sbc_y_matsuda:20190612173551p:plain:w650

先程のエラーはterwayをアップデートしろとなっていましたのでその作業を行います。
ℹ️terway はAlibaba Cloud の開発したCNI Network Pluginです、詳しくは下記のリンクをご覧ください。

クラスターリスト画面にて「アドオンのアップグレード」を選択します。

f:id:sbc_y_matsuda:20190612173858p:plain:w850

ACK用のコンポーネントが表示されますので必要なもの、今回ですとterwayのアップグレードを選択します。

f:id:sbc_y_matsuda:20190612175753p:plain:w650

確認画面が出ますので「確認」を選択します。

f:id:sbc_y_matsuda:20190612182522p:plain:w650

アップグレードが完了すると対象のコンポーネントが「最新」になります。
画面を閉じて再び「クラスターのアップグレード」を実施して下さい。

f:id:sbc_y_matsuda:20190612182843p:plain:w650

正常にアップグレードが出来る場合

正常に開始できた場合、以下の様な画面が表示されアップグレードが実行されます。

f:id:sbc_y_matsuda:20190612183200p:plain:w650

アップグレード実行中にノードの状態を確認してみます。kubectl get nodes でノードのステータスが確認できます。
一斉にアップグレードが実施される訳ではなく、ローリングで各ノードのアップグレードが実施されます。

f:id:sbc_y_matsuda:20190612183646p:plain

この時はMaster Node 3台、Worker Node 4台の計7台のアップグレードでしたが10分ほどで完了しました。
※アップグレード中はMaster が命令を受け付けないので、Node追加やDeploymentなどが実施できません。

f:id:sbc_y_matsuda:20190612184425p:plain:w650

kubectl get nodes でノードのステータスを確認すると全てのノードのVersionが更新されています。

f:id:sbc_y_matsuda:20190625173811p:plain

ACKのアップグレード作業は以上になります。
思っていたより簡単だったのではないでしょうか?

アップグレードのポイント整理

アップグレードのポイントに関して最後に簡単にまとめたいと思います。

f:id:sbc_y_matsuda:20190628181243p:plain

おわりに

如何でしたでしょうか?
Kubernetesのアップグレードは大変なイメージがありますが、ACKでは簡単に実現できたのではないでしょうか😊
Alibaba CloudのKubernetes Serviceは管理コンソールから使い易く出来ている部分が多く、Kubernetesが初めてでも比較的使い易く、運用しやすいサービスではないかなと思います。

Kubernetesを使ってみたいけど難しそうと思っていた方も、是非使ってみてください🤗

Author Profile

https://secure.gravatar.com/avatar/b00b5531fbdbc674e9f7c685a1ed32c1?s=800&d=identicon

松田悦洋(@MatYoshr)
SBクラウド株式会社 Alibaba Cloud Solution Architect

Alibaba以外にもAWS、Azure、GCPなどクラウド全般が好きです
  GitHub   Qiita