CKA受験体験記 

2019/9に**Certified Kubernetes Administrator（CKA）** 合格できました。


![logo_cka.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/75458/50c1326f-84bd-9268-12c5-377686bd8f99.png)

体験記を書くのは、3度目。体験記を書くのは、内省にも役に立つと思っています。


1. [統計検定2級](http://sarah.secret.jp/worklog/?p=511)
2. [国家資格キャリアコンサルタント](http://www.lec-jp.com/caricon/reason/success/kokka/00_kuramochi_takeshi.html)

で、今回の **CKA**。

>３つは全然関係性がないものになってますが、それは私のキャリアに関係しています。。。

体験記は自身の内省にもなる。

＊当然ですが、試験の詳しい内容は明かしていません。
＊他の方と共通するような部分は短めに。


# 読者ターゲット

* 現場離れたエンジニアリングマネージャ
* 技術好きな中間管理職や役員
* 副業・兼業もしている多忙なエンジニア
* 多忙なテックリード、エバンジェリスト、アドボケイト

他の体験記の方々とは違いそうな、私の特徴的な部分をサマリーします。

* ITインフラエンジニア育ちであるが、現在の主業は**エンジニアリングマネージャ** ＋ **テックリード** ＋ **エバンジェリスト**
* 主業＋兼業ｘ２で活動中、兼業は別業種
* いわゆるクラウドネイティブ界隈のご活躍中エンジニアの方々からみたら、きっと年齢的には若くはない
* （受験当時）主業では細かい管理系業務に追われる小さいストレスが積み重なって時間を費やしている事が非常に多い・・・（愚痴！？）

というような環境にいる者が合格できた体験記です。
もし似たような方々で合格を目指す方がいたら１つのモデルケースにしてもらえればと思っております。特に、「今現場離れて、マネジメント中心で時間ないよ、でもk8sは知っておきたい、身に着けたい」と思っている人には多少の参考になるかもしれません。。。


# で、なんで受けたか？
強く思っている上から順に

* k8s が好きかだら
* k8s を知っていくと深みがすごいから（インフラ屋さん目線）
* 力試し
* 主業で威厳を保つ効果もあるとおもったから
* Google さんが生みだしたものはやっぱりすげーと思っているから
* こんなにすごい k8s がいたのに、Ansible の方が好きになっていた時期があったから（申し訳なさ感）


# そして、おまえは何者か？

私の事、以下のような属性です。

* ベースはITインフラ領域のエンジニア
* エンジニア歴はかれこれ、19年（年齢は”人生の正午”付近）
* **有資格**（レベルがあるものは関連する上位のものだけ）
  * Sun Certified Network Administrator for Solaris 8
  * LPIC Level 2
  * Oracle Database 10g RAC Expert
  * 2008 SNIA Certified Storage Professtional
  * Cloud Certified Administrator for Apache Hadoop
  * 統計検定2級
  * Certification for OpenStack Professtionals (OPCEL) 
  * 国家資格キャリアコンサルタント
  * CompTIA Linux+ ce
  * メンタルヘルス・マネジメント検定Ⅱ種
  * ファイナンシャルプランナー3級（CKA同時期に受け・・・**合格！** 2級取得のための受験条件クリア受験）
* **現・主業**
  * ITインフラ組織にて「クラウドネイティブ・プラットフォームSIをできるようになる」ための組織作り、マネージャ、テックリード
* **現・兼業**
  * IT系・専門学校講師業
  * 個人・企業向けのキャリアコンサルティング業

> なお、資格取得は人に言われて受けたものはなく、自身の成長過程で必要なもの、あるいはチャレンジしたいものを**自主的**、且つ上記の7割は**自腹**で受けてます。

>現在は基本的に現場（主ワーク）はチームスタッフにまかせるようになっているので、エンジニアリングオペレーションそのものは日々の主業務にはなってません。

# Kubernetes 歴

* はじめて知ったのは 2015 年秋
* ちゃんと知識を入れ始めたのは 2018 年春
* kubeadm だがクラスタ組んで遊んだのが 2018 GW

この後は、Qiita に記事があるようなタイミングで触っている感じ。（以下自分のQiitaへの[一覧リンク](https://qiita.com/tksarah)）

> 上記空白（2015冬～2018冬あたり）の期間は、OpenStack , Ansible , Docker , キャリアコンサルタントに打ち込んでいた

# コンテナ・Docker 歴
上記のように Kubernetes 歴はそうでもないんですが コンテナ・Docker 歴という意味では長いし、日常利用です。

* chroot を使ってセキュアな環境作りを SI する・・・2005年
* Jail 、Virtuozzo から、「コンテナ」を知る・・・2008年？
* Docker の便利さに感動、VM 離れをするようになる・・・2014年冬
* システムは VM でなく常に Docker コンテナでオペレーションするようになる・・・2015年～
  * 自宅から ESXi 環境が消える・・・
  * 出たばかりのCoreOS環境や、OpenStack 環境で PoC をするようになる

> OpenStack は 2014年～2015年（Icehouse～Mitaka） はあたりゴリゴリ中、SI は直接してないですが一部のコンポーネントの不具合提起したり、パッチ作ったり、自分で何回クラスタ作ったか覚えてない程度。

# どんくらい勉強したか

ここが、他の方とくらべてあまり参考にならないかもですが、CKA をターゲットとしてちゃんと意識して取り組んだ「**勉強期間**」としては**1週間**そこそこです。主業や兼業もあるので、それだけに時間はつぎこめず、せいぜい**2時間/日**くらいでした。


# どんな勉強したか？

これは私事なのですが、同時期にファイナンシャルプランナー試験もあったので頭の切り替えも難儀でした。なので効率重視したく、やはり試験なので**どういうところを抑えておかないといけないのか？**は、**Linux Foundation** の公式ページを確認したり、**他の方の合格体験記**を通じて改めて確認しました。

自分が参考にした書籍は以下です。

* **Docker/Kubernetes 実践コンテナ開発入門**・・・入門者も入りやすい、ステップbyステップ
* **Kubernetes 完全ガイド**・・・辞書的、アドバンストな詳解

が、中心は **kubernetes.io** の **Kubernetes Documentation** です。試験中はこちらにはアクセスできると聞いていたので、慣れるためにも知識があやふやなものとかの解釈はここばかりを見てました。


もともと IaaS を自分で作る OpenStack についてはかなり深くまでゴリゴリやってた事もあり、上記の OPCEL に至ってはノー勉強でβ版x2セット分を3，4時間で解いて合格できたレベルくらいなので、Kubernetes でプラットフォームを作る OSS としての勘所は、初学者よりはあったのではと想像してます。事実、PV、PVC あたりの理解は早かったかと。


## 基本をおさえた
Kubernetes のアーキのおさらい、主要なリソース・オブジェクトなどのマニフェストを作って apply するやつは素で書けるようにしておいた（少なくともこれできないと、お話にならないでしょ！？と思っていたので）。他は kubernetes.io ですぐに見つけて、パット使えるという感じにしておきました。これは実際の業務での活用にも近いかもです。（運用中に kubectl そのものをたたく事はほぼないだろうけど・・・そこはさておき）

他、Administrator である試験の意味をとらえればわかるのだが、クラスタを作る・保守運用するに関係する部分はおさえておく必要があります。
このあたりが、インフラ系エンジニアでないと勘所が少ないと思われるので、体系的に書籍や公式ページで学習しておく必要がありそうです。
なお、ここには[本家のページ](https://training.linuxfoundation.org/certification/certified-kubernetes-administrator-cka/)にもう少し細かく書いてあります。


## kubectl を打ち込むためにつかった環境
今年に入ってからですが、自分のQiitaにもよく出てくる **Kind（Kubernetes in Docker）** というのを多用しました。**学習環境という意味でかなり便利**です。気になる方はご参考ください。

[kind 試す](https://qiita.com/tksarah/items/b61ad205338b5688c4df)

> ただし、NetworkPolicy はデフォルトで効かぬので、NetworkPolicy を確認、PoC するようなときには他の環境あるいは、kind のカスタマイズ（ここはまだ探り切れていない）が必要

# 受験までのプロセス

* **Handbook と Important-Tips** は目を通しておくのは基本
* 申し込みと予約
  * 申し込みは、クリエーションラインさんのページから作っと行いました。試験予約自体も特にひっかかるところもなく。
* 受験場所
  * ちょっと、面倒だったのは**受験場所の確保**。何も考えたくない場合は、貸会議室が良いと思います。私はもともと自分の部屋でとおもっていたが、ちゃんと片さないとだめそうだとわかったのでやめて、貸会議室にしました。貸会議室の時間は**受験時間前後1時間**は取っておいた方がよいです。
* 当日の持ち物
  * 何も考えずに、パスポート準備

# 前日

よく食べて、よく寝ましょう。

# 当日

都内ある貸会議室を使った時の話で、気にした点だけ。

* トイレは事前にいっとく（カフェインの摂取は控える）
* 外部ディスプレイは可能でしたので、持ってく方がよい
  * 貸会議室で貸してもらえるなら、それでも。私は使い慣れているものを持っていきました。
* テーブルの上は PC、ディスプレイ以外何もなし
* 貸会議室 WiFi のスピードは **40Mbps** とれてました。これで問題なかったけど、ローカルオペレーションに比べるとほんのちょびっとのラグはあったので、もっと早いとスムーズなのかも？

# 終了後

36時間以内にメールにて。24時間過ぎたらドキドキしているといいと思います。

# 受験後の所感

CKA はインフラエンジニア向けだと感じました。

Performance-based なので、確かにそれなりの kubernetes の管理オペレーションができないと合格点には届かないと思いました。

そして、私が感じたのは**Linux も知っていないと**いけない。比較的新しい Linux ですね。たぶん10年前は使ってた・・・じゃ通じないかも。「Linux 知ってる」ってどのレベルよ？とかでいうと「こんな資格をもっていたら十分という」表現は立場上いったん控えるとして、自身で「管理者」が名乗れるくらいであればいいとおもいます。CKA 受けるような人は、ほぼクリアしているとおもいますが・・・、現場離れして久しく触っていない方は、Linuxの基本も一通りおさえておきましょう。

Terminal を使ったオペレーションなので、Terminal オペレーション（つまりコマンド打ち、Shellオペ）の速度と持久力もそれなりにないと3時間は打ち込み続けられないかもしれないです。もちろん、その正確さも必要です。

# その他

## マニフェストと kubectl コマンド
試験中、必要に応じて**マニフェストは結局すべて手打ちしちゃいました。**きっと他の方の体験記にもあるように、ひな形作って・・・そこから、みたいな方が早かったのでしょうけど、頭に浮かんだものをアウトプットしつつの方が自分ではスピードがでるとおもったのか、手打ちになっちゃいました。ま、でもそれでもなんとかなったわけです。

**kubectl コマンド**もエイリアスで "k" とするとよかったんでしょうが、それもなんかしっくりこず毎度「kubectl」と打ってました・・・さすがにこれはチリツモでいうと結構な時間がかかるので、エイリアス"k"としておくのがクレバーです。

## k8s.io のブックマークリスト
リソースやオブジェクトの書きっぷりはだいたいは覚えていったのですが、やはり忘れちゃうこともあるので「kubernetes.io のブックマークリスト」は作っておきました。が、これも多く活躍の場があったかというと、そうでもなかった・・・。うまくだいたい書けちゃったのか、たまたまなのかもしれません。あった方が安心感はあるとおもいます。

## 日頃の便利ソフト、便利機能に慣れている方、注意
試験中は、レギュレーションにも書いてありますが素の **Terminal１つ** です。日頃からエディタの特別な便利機能や高機能ソフトなどでコマンドオペレーションになれている人はプレーンな Terminal or Console の環境下での練習をしておいた方がよいかもしれないです。
ここで、私はかつて、「**”ls” コマンドや ”vi” が使えなくてもある程度システムを保守できるようになっていてこそ本物**」という先輩の教えを思い出しました。これはドラマでよくある、お医者さんが（実はOffなのに）外出先で病人に会い、その場のなんかしらで簡易でオペしちゃうみたいなシーン（大門未知子風）と似ている気がします。「試験」なのでそのくらい**本質的な実力が問われる**、とみてもよいのかもしれません。

## 年収、2000万超えの想像

たぶん、本試験ノー勉強（あえて試験対策せず）で、**100点**とれた人は、技術・スピードが高く、本質的な理解がきちんとしている人になると想像され、市場価値としては**年収2000万**とか超えちゃうくらいの人材なんじゃないかなーと思ったりしました。キャリアコンサルタント的な発想かもしれませんが。

> （注）個人と経験と知識における勝手な想像です。。。

# 最後に

きっと CKA 合格すると、Kubernetes を扱うエンジニアとしての多大な自信はつくと思います。たかが資格、されど資格。選択式ではないので、より力が試され発揮できた感もあるとおもいます。資格取得は「業務をする上ではスタートライン」という考えもあるでしょうから、今後の精進も大事ではありますが、まずは自分を褒めてもよいと思っています。

では、みなさんもよい **Kubernetes Life** を！