Help us understand the problem. What is going on with this article?

Certified Kubernetes Administrator (CKA) を受験してみた

More than 1 year has passed since last update.

Certified Kubernetes Administrator (CKA) を受験してみた

今回は、Japan Container DaysやKubeCon開催の中でも必ず1セッションはあるCKAについてとりあげさせてもらう。すでにQiitaや企業のエンジニアブログなどで事例紹介はされているが、直近うけた最新情報として紹介させてもらおうかと思う。

モチベーション

  • 今年の春ごろからKubeConやCNCFの活動を知り、Cloud Native Meetup Tokyoなどのコミュニティに参加しはじめたときに知り合った人らで、Kubernetesを実運用して詳しい人らがその学習していった過程でこの資格をオススメしていた。
  • 個人的にはKubernetesに興味があり、学習したアウトプットの目安に利用できないかとしたときにわかりやい基準になるとおもった。
  • 実際に自分のまわりの環境変化により、Kubernetesを利用した実運用している環境で開発する機会がありそのまま活かせる見込みが多くあった。

前提

自分自身のバックグラウンドについて簡単に前提として紹介させてもらう。
- 今までオンプレミス、パブリッククラウドを利用した環境でのサービス開発・運用経験は10年ほどある。
- 直近は、パブリッククラウド(GCP,AWS)、Kubernetesを利用した環境でのサービス開発をメインでしている。
- 受験準備開始は、2018/10月上旬〜12月中旬。当初はKubernetesの運用経験ない状態でハンズオンやチュートリアルを試しに触った程度の理解度。

試験概要

  • Certified Kubernetes Administrator (CKA) Programの詳細はこちら
  • Cost $300 : オンライン試験
  • 3時間 : 24問 (合格ライン:74%)

試験関連資料

公式に公開されている資料は以下の通り。
- 受験者向けハンドブック
- カリキュラム
- Certified Kubernetes Administrator (CKA) Exam Curriculum 1.11.0
- 試験Tips

出題範囲

  • Application Lifecycle Management 8%
  • Installation, Configuration & Validation 12%
  • Core Concepts 19%
  • Networking 11%
  • Scheduling 5%
  • Security 12%
  • Cluster Maintenance 11%
  • Logging / Monitoring 5%
  • Storage 7%
  • Troubleshooting 10% ※ 2018/12/12時点

試験前にやったこと・工夫したこと

主に以下の教材をベースに準備した。

  • Kubernetes Fundamentals(LFS258)

    • Linux Foundationの公式のオンライン学習教材。個人的には、各カテゴリについてのインプットとしては良かったが、試験のリハーサル用の演習はすくなかったため、Linux academyの後述の教材をオススメしたい。試験のバウチャーチケットとバンドルされたものを購入した。
  • Certified Kubernetes Administrator (CKA)@Linu Academy

    • 各カテゴリ別に学習できるのに加え、範囲を網羅した試験想定の予想問題もあり、オペレーションを中心に学習できるのがオススメ。初回の1週間は無料で利用可能。
  • kubernetes-the-hard-way

    • 周りで調べてみた限り一番オススメされるチュートリアル(kubernetesのインストールからsmoke test,cleanup)
    • やることはたくさんあるが通して覚えられるので一番良い。
  • kubernetes 公式ドキュメント

    • 試験中に唯一、参照可能なドキュメント。何がどこに書いてあるかを把握してあると良い。
  • トレーニング用にGCPのアカウントを新設した初回は約30000円分のクレジットがついってくるため便利。

  • バウチャーチケットは2回受験可能。1回落ちたとしても、1年以内ならもう1回リテイクの受験が可能。自分の場合、1回目は64%で落ちており、2回目のリテイクで84%この試験をパスすることができた。

準備期間

  • 2018/10月〜 12月中旬頃
    • 2018/10月上旬〜11月中旬: インプット中心の学習 (1.5ヶ月)
      • 各出題範囲の概要理解のインプットをしたりオペレーションを試しに実行してみたりした。
    • 2018/11月上旬〜12月中旬:アウトプット中心の学習(1.5ヶ月)
      • 試験問題にでてきそうなオペレーションを中心に。
      • 時間計測して最初は公式ドキュメントだけ。わからなければ調べて復習。
      • 自分の苦手なカテゴリは、SecurityやTroubleShootingまわりだったため、そこは重点的にTutorialなど手を動かすことを中心に。

試験中の工夫した点

  • 全ての問題はオペレーションが必要となる問題であるため、コマンドの実行が手に馴染んでいないと想像以上に時間が取られる

  • kubectl explainコマンドによる各パラメータ内容の把握

$ kubectl explain deployment
KIND:     Deployment
VERSION:  extensions/v1beta1

DESCRIPTION:
     DEPRECATED - This group version of Deployment is deprecated by
     apps/v1beta2/Deployment. See the release notes for more information.
     Deployment enables declarative updates for Pods and ReplicaSets.

FIELDS:
   apiVersion   <string>
     APIVersion defines the versioned schema of this representation of an
     object. Servers should convert recognized schemas to the latest internal
     value, and may reject unrecognized values. More info:
     https://git.k8s.io/community/contributors/devel/api-conventions.md#resources

   kind <string>
     Kind is a string value representing the REST resource this object
     represents. Servers may infer this from the endpoint the client submits
     requests to. Cannot be updated. In CamelCase. More info:
     https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

   metadata <Object>
     Standard object metadata.

   spec <Object>
     Specification of the desired behavior of the Deployment.

   status   <Object>
     Most recently observed status of the Deployment.

各パラメータに紐付いて深掘りしてパラメータの意味や設定の仕方、リファレンスのURLの場所をさがせる。

$ kubectl explain deployment.kind
KIND:     Deployment
VERSION:  extensions/v1beta1

FIELD:    kind <string>

DESCRIPTION:
     Kind is a string value representing the REST resource this object
     represents. Servers may infer this from the endpoint the client submits
     requests to. Cannot be updated. In CamelCase. More info:
     https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

苦労した点

  • 知識よりも実際のオペレーションが問われる内容のため、ひたすら手を動かす訓練が必要。一通り覚えるためには、そこそこの学習時間は必要となる。
  • terminalがwebベースの慣れが必要。思っていたよりも慣れるまでに時間かかる。
  • 会場の手配。会社の集中ルームのような個室の部屋があるのであれば、それで済むが、レンタルスペースを探すとなかなか手頃な価格の場所が見つかりにくい。

まとめ

今回は、CKAの受験にあたっての自分なりの工夫した点や苦労した点を紹介させてもらった。
即現場の環境で戦力化できるかはまた違う段階があるが、取得することによってベースと体系的に学習したことの証明にはなるとは思う。
日本語での受験も可能となりましたのでよりトライしやすくなったのではないかと思う。
今後は実際の現場での運用や開発でおぼえていった内容や検証結果をノウハウとして残していきたい。

参考

Blog

Github

書籍

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away