Docker, Kubernetesの学び方について(基礎編)
基礎編では、Avintonにおいて、インフラ、プラットフォーム学習希望者に推奨しているDocker, Kubernetesの学び方(主に推奨リソース)を中心に紹介します。紹介する推奨リソースには内容が重複する部分があるため、理解度に応じて適宜飛ばして学習するなどしてください。皆さまが学習をする際に、参考にしていただければ幸いです。
DockerやKubernetesなどのクラウドネイティブ技術においては、残念ながら日本語の資料はとても少ないです。ほとんどの公式ドキュメントや一次ソース、学習教材は英語です。英語が苦手な方は、Google翻訳やGoogle Chromeの自動字幕起こし機能などを駆使してみてください。
Docker, Kubernetesについての基本的な説明は、本ページでは省略します。Avinton Academyの他のページに任せることにします。
Linux, ネットワーク基礎
Docker、KuberntesはLinux上で稼働するため、基本的なLinuxの知識が必要となります。
LPIC1の内容の習得は必須、LPIC2まで学習することが望ましいです。Avintonでは、LPIC1を習得後、Dockerの学習と並行してLPIC2の学習をする人が多いように感じます。LPICに関してはAvinton Academyでも紹介されております。
Docker, Kubernetesのネットワークを理解する上で、基礎的なネットワークの知識も必要です。
具体的には、TCP/IPプロトコル、サブネット、スイッチング、ルーティングなどが必要です。迅速に基礎的なネットワークの知識を得たい人には、以下書籍を推奨します。Linuxを使ってTCP/IPについて学ぶことができます。
Docker、コンテナを学ぶための推奨リソース
Kuberntesはコンテナのオーケストレーションツールなので、先にDocker、コンテナについて学習する必要があります。
はじめに、Udemyの動画(または他の書籍等)で学習をし、その後、Docker公式ドキュメントのTutorial labsやSample Applicationsにおいて、アプリケーションをコンテナ化するような少し実践的な内容や、セキュリティ、ベストプラクティスについて学習することを推奨します。
- Udemy
- Docker公式ドキュメント
Kuberntesを学ぶための推奨リソース
Kuberntes公式ドキュメントのKubernetes Basics Modulesを学習後、Kuberntes Up and Runningという無料の書籍(ebook)に取り組むことを推奨します。この書籍では、Kuberntesの基本をハンズオンを通して網羅的に学ぶことができます。18章全てを学習するに越したことはありませんが、最低限14章まで学習することを推奨します。
書籍を終えたら、Kubernetes公式ドキュメントのTutorialsで、実際にアプリケーションをKuberntesクラスターにデプロイしながら学ぶことを推奨します。Tasksに関しては、書籍と重複する部分があるので、理解が浅い部分を中心に復習という意味で利用するのが良いでしょう。
またVMwareによる無料のKubernetesのオンライン学習コースであるKubeAcademyでは、ハンズオンや解説などを通じて、より実践的な内容を学ぶことができます。こちらも書籍と重複する部分があるので、進捗や理解度に合わせて視聴するコースを選択してください。
- Kubernetes公式ドキュメント(Basics)
- 書籍 (Kubernetes Up and Running)
- Kubernetes公式ドキュメント(Tasks,Tutorials)
- KubeAcademy by VMware
学習用Kubernetes環境の構築
ローカルのPC上でKubernetes学習環境を構築することができます。いずれも少ないリソース使用量でKubernetes環境をシミュレートすることができます。初心者の方におすすめはMinikubeとkindです。使っている人が多いので、Web上に情報がたくさんあると思います。
Docker, Kubernetesの学び方について(応用編)
ここからは、DockerやKubernetesを本番環境で使用するために必要な知識や技術を学ぶための学習リソースを紹介します。
Docker応用編
Dockerを本番環境で使用するために、いくつか知っておくべきベストプラクティスがあります。以下のページには安全で軽量かつ堅牢なコンテナを構築するために知っておくべき内容が記載されています。コンテナを構築した際には本番環境にデプロイする前に、以下を参考にして最適化、脆弱性スキャンなどを行ってください。
- Best practices for writing Dockerfiles – Docker公式チュートリアル
- Image-building best practices – Docker公式チュートリアル
- Docker development best practices – Docker公式チュートリアル
- コンテナ構築のおすすめの方法 – Google
- Best practices writing a Dockerfile – Bitnami
Kubernetesの学習リソース (応用編)
クラウド上に無料でKubernetes環境を構築することもできます。Oktetoではリソース使用量の制限はありますが、簡単なアプリケーションのデプロイなどはすぐに試すことができます。
またローカルに複数台のVMを立てて、複数ノードのクラスターを構築、シミュレーションすることもできます。マスターノードを2台上で構成することで高可用性の実証も行うことができます。
資格試験やKubernetesの詳細までがっつり理解をしたい方にはKubernetes The Hard Wayをおススメします。ドキュメントではGoogle Cloud Platform上に構築する手順が記載されているため、クラウドに支払う代金が発生します。無料でやりたい方はローカルのVM上でもほぼ同じことを実践できます。
Kubernetesの資格試験はCKA, CKAD, CKSの3種類があります。試験についてはこちらのページをご確認ください。Kubernetesの管理者を目指している方は、CKAの取得の検討おススメします。Kubernetes上にアプリケーションをデプロイしたいアプリケーションエンジニアの方は、CKADをおススメします。受験料が非常に高額ですので、よく勉強してから受験することをおすすめします。
勉強方法としては、前述のKubernetes The Hard Wayを実施後、以下のUdemyコースがおススメです。(頻繁にセールで安くなっているので、定価では買わないことをおススメします。)模擬試験も含めて試験対策を十分に行うことができます。勉強の際には常にKubernetesの公式ドキュメントを参照してください。公式ドキュメントは非常によく整備されていますし、試験の本番中も公式ドキュメントの参照が許可されています。また、CKAの模擬試験にはkiller.shがおススメです。ほとんど同じ形式の問題がでます。こちらはCKAの受験申し込みをした際には、無料で利用できます。
最新技術のキャッチアップ
KubernetesやDockerなどのクラウドネイティブ技術では、トレンドの変化が非常に速いです。また、使用しているOSSの脆弱性、セキュリティパッチなどの情報は、なるべく早く入手して対処する必要があります。Feed購読用のアプリケーションを使用して、技術ブログページやリリースノートのページなどをフォローしておきましょう。
まとめ
DockerやKubernetesなどのクラウドネイティブ技術はここ数年で非常に注目されている技術です。一方で概念や仕組みは複雑で、学習コストも高く、技術トレンドの変化のスピードも非常に速いです。しかしながら、Kubernetesやクラウドネイティブ技術のエンジニアへの需要は非常に高く、Linuxの基礎からしっかりと着実に学んでいくことで、プラットフォームエンジニア、インフラエンジニアとしてのキャリアは非常に安定します。紹介した学習リソースをもとに、ぜひともインフラエンジニア、プラットフォームエンジニアとしてのキャリアが実ることを祈っています。
あなたも、Avintonでこのような最先端技術を習得し活用してみませんか?
社員の成長を導きながら、AIやビッグデータなどの最先端技術をプロジェクトに活用していくことが私たちのビジョンです。Avintonの充実した技術研修でスキルアップを図り、あなたのキャリア目標を一緒に達成しませんか?