Kubernetes(AKS)的实施挣扎记-第1部分
请问这本书有目录吗?
-
- Kubernetes導入に至った経緯
-
- 参考にした書籍
- 学ばなければいけないことはたくさんある!
◆ Kubernetes的引入历程
在无人机解决方案中利用Azure服务
这份新闻稿中提到,我们在服务架构中采用了kubernetes,我们希望在可以公开的范围内向您详细解释。
-
- 元々Dockerコンテナで運用していた。
docker-composeだったのでプログラムを更新するとサービス停止が避けられなかった。無停止で更新デプロイしたかった。
サービスが5種類以上のコンポーネントに分かれていてそれぞれで負荷分散したかった。マイクロサービスっぽい構成にしたかった。
2018年6月にAzure Kubernetes Service(AKS)が日本リージョンで利用可能になった。
https://ascii.jp/elem/000/001/699/1699320/
2018年8月20日、Docker for MacがKubernetesを同梱した。
https://www.infoq.com/jp/news/2018/10/docker-desktop-kubernetes/
最初就是在Docker容器中运作的
由于我在自家服务开发开始的一年左右时间里并未参与服务本身的开发,所以对详细情况不太清楚。。。
-
- 最初はCentOSでdockerコンテナ運用していたらしい。(当時は他人事のように聞いていました)
-
- CentOSだとイメージサイズも無駄に大きいし動作も遅いらしい。
-
- Docker界隈では軽くてイメージサイズの小さい Alpine Linux をベースイメージに使うのが常識になりつつあるらしい。
- 一部Ubuntu Linuxでなければならないコンポーネントがあったが、原則として Alpine Linux でコンテナイメージを作成し直していたらしい。
docker-composeだったのでプログラムを更新するとサービス停止が避けられなかった
我认为,主要目的是实现无停机更新部署,这也是引入Kubernetes的主要原因。
在之前使用docker-compose进行运维时,每次进行更新部署都需要进行一系列的操作,
$ docker-compose down
$ docker-compose up
しなければならないので、ダウンタイムが発生してしまっていました。
これではどんな会社でもサービス運用できませんね。kubernetesのようなまともなコンテナオーケストレーションツールの登場が待たれてたことは理解できます。
我想要创建一个类似于微服务的架构。
この要望はヒアリングから漏れていまして、、、焦りましたが、kubernetesはマイクロサービス化が非常に簡単で、その威力に驚かされました。後ほど詳述したいと思います。
Azure Kubernetes Service(AKS)在日本也可使用了。
由于2018年6月Azure Kubernetes Service (AKS) 在日本区域可用 (https://ascii.jp/elem/000/001/699/1699320/),而我们是一家使用Azure云来开发服务的公司,所以无可否认这个事实对于向Kubernetes转变起到了推动作用。
2018年8月20日、Docker for MacがKubernetesを同梱した
kubernetesらしきものがDockerに標準で同梱されて、なんとなくスイッチオンしたら自分のMacbookの動作が重くなって。。。
なんて、当時全然知らなかったのでいろいろ触って驚いていた記憶があります。まさかこのk8sを自分が導入することになるなんて思ってもみませんでした。
Dockerにおいてもkubernetesが標準オーケストレーションサービスになるのは確実になったので、いよいよ会社でも採用する可能性が高くなりました。
導入検討開始
由于以上的经历,大约在2018年年底左右,我轻率地说出了“我想要学习Kubernetes”的话,结果事后我便遭遇了很大的困难。
◆参考にした書籍
今回参考にした書籍は主に以下の4冊です。
2019年4月にkubernetesへのシステム切り替えを行った関係で、これ以降の出版物はあまり読んでいません。
書籍はあくまで技術の基本的な理解と全体把握が目的で、導入した後の詳細は実際にコマンドを打って作業した方がスキルアップにつながります。
要するに、実際に導入して日々運用している人間は書籍の知識を超えたところにいます。実務はお勉強ではありません。
-
- 『Docker/Kubernetes 実践コンテナ開発入門』
-
- https://www.amazon.co.jp/dp/B07GP1Q3VT
-
- 出版社: 技術評論社 (2018/8/25)
『Kubernetes完全ガイド impress top gearシリーズ』
出版社: インプレス (2018/9/21)
『しくみがわかるKubernetes Azureで動かしながら学ぶコンセプトと実践知識』
出版社: 翔泳社; 1版 (2019/1/23)
『Kubernetes実践入門 プロダクションレディなコンテナ&アプリケーションの作り方 Software Design plus』
出版社: 技術評論社 (2019/3/2)
「Docker/Kubernetes实战容器开发入门」
最初に買って読んだkubernetes関連本です。
とにかく「kubernetesは既に本番環境での運用に耐えうる技術だ!」というアピールが満載です。
-
- Dockerの基礎から解説。
-
- docker-compose/swarmの説明もある。なかなかkubernetesの説明がはじまらない。
-
- docker-compose/swarmでMySQL Master/Slave構築など高度すぎるサンプルで初心者お断り。
-
- クラウドサービスはGKE(Google Kubernetes Engine)。
-
- 小さなdockerイメージの作成方法など、Alpine Linuxの説明もある。
-
- 運用TIPSや負荷テスト(locust)の説明もある。
- 独自Dockerレジストリの構築方法やCI連携(Circle CI)など高度な話題もある。
因为这个内容太高级,所以不建议给初学者。
即使是专家,也应该先看目录再决定是否购买,因为有关于是否需要的文章。
对我来说,我参考了Docker的基本理解和Alpine Linux的使用方法。
『Kubernetes完全ガイド impress top gearシリーズ』
とにかく全機能網羅を目標に2018年9月時点のkuberntesのエコシステムを含めた全体像を説明しようとしている本。
kuberntesの開発は非常に活発で速いので、もう既に現在では通用しない知識がたくさんあるかも。
-
- 環境はローカルk8s(for Mac)/minikube/Google Kubernetes Engine(GKE)/Azure Kubernetes Service(AKS)/Elastic Container Service for Kubernetes(EKS)と多彩。
-
- Dockerfileの書き方などDocker基礎解説あり。docker-compose/swarmの説明なし。いきなりkubernetes。
-
- kubernetesの膨大な数のリソースをグルーピングして概念理解させようと工夫している。
-
- Deployment/ReplicaSet/Podなどのアップデート戦略も説明されている。
- Job/CronJobの説明はあるが、欠点であるCleanupされない問題の指摘はない。
对于那些希望全面了解 Kubernetes 生态系统并希望像查字典一样使用它的人来说,这是一个推荐的选择,但由于书籍中的信息很快过时,所以可能不太适合。对我来说,基于功能进行分组的概念帮助我进行分类和整理思绪。
通过在Azure上运行Kubernetes来学习概念和实践知识,从而理解Kubernetes的工作原理。
这是适合初学者学习Kubernetes的人的书籍,是应该首先购买和阅读的书。
-
- 手書きのイラスト満載で、とにかくイメージを抱かせようと読者に説明している。
-
- サンプルや説明環境はほぼ全て Azure Kubernetes Service(AKS) 。書籍表題の通りです。
-
- 運用性とか安定性とか保守性とかインフラの高度な概念を説明しているけど、初心者には敷居が高い。
-
- AKS Cluster Autoscalerなどの説明があるが、まだpreview段階で企業がサービス提供できる段階でないことの指摘がない。
-
- 2019/05/31現在でも未だにpreview段階。 https://docs.microsoft.com/ja-jp/azure/aks/cluster-autoscaler
Kured(Kubernetes Reboot Daemon)などのAKS以外でも通用する技術の解説があり、Azure以外の利用者にもおすすめできる。
前半はイラストを駆使してkubernetesの基礎技術を解説しているので初心者に最適だが、後半はkubernetesの枠を飛び越えてインフラ全体の概念説明でレベルもグンと上がるので、前半だけ読んで後から必要に応じて読み直すのがいい使い方かな。
『Kubernetes実践入門 プロダクションレディなコンテナ&アプリケーションの作り方 Software Design plus』
最近出版された本で、買ったままあまり読んでいません。
-
- SecurityContext/PodSecuritypolicyにたいしてちゃんとした説明がある。
- Promertheusでメトリクス情報収集してGrafanaで可視化する方法など説明されている。
ザッと目を通したかぎり上記のようなことが書いてありましたが、初心者向けとも思えないし、今後必要になったら読むつもりです。
もう書籍で入門する段階ではないですね。
SecuritypolicyとPromertheusを検討中なので今後読み返す可能性大。運用に強い内容の本です。
一课以生动的方式传授深刻的道理或经验。
不要在开始之前就对所有的事情都要学习完而犹豫不决。要抛弃完美主义。特别是Kubernetes的学习成本很高,想要完全理解它是不明智的,只会导致挫败。
仅仅读完这四本书就花了一个月的时间,加上年末年初的假期。我现在后悔应该在更早的时候就开始搭建Kubernetes集群,边动手边阅读书籍。
◆有许多事情是必须学习的!
実際に企業でインフラの仕事をするには、Dockerとkubernetesを勉強して理解するだけでは足りません。
-
- MySQLを中心としたデータベース技術。SQLは分かっていた方がいいけど、DB運用関連技術の方が重要。
-
- ネットワークの知識。サブネット作成やゲートウェイの構築&設定もあるので、ネットワークに関する包括的な知識が必要。
-
- ストレージに関する技術。クラウドBLOBストレージを含むストレージ技術全般の知識。特にkubernetesのストレージには「極力頼らない」ことが重要。
-
- Docker自体Linuxカーネルのグルーピング機能なので「Linuxに関する技術」は十分理解している必要がある。OSやミドルウェアは苦手という態度は許されない。
-
- ミドルウェアの技術。nginxとかPHPアプリケーションサーバとか。LAMPあたりの基本的なことは知っておかないと厳しい。
- MVCなどのウェブアプリケーションフレームワーク技術。db migrateとか知らないとテスト環境構築もできません。
これらが分かっていないと現実に存在する情報システムのリプレースなんてできません。インフラエンジニアのベテランならいいのですが、新卒がこれらのことをコツコツと習得するのを待っていたら何年経ってもできるようになりませんね。大変な時代になりました。
◆下次
下一步是最后进行创建和验证kubernetes集群的实际阶段。