銀の光と碧い空

クラウドなインフラとC#なアプリ開発の狭間にいるエンジニアの日々

2021年10月にCKAとCKADに同日受験して合格しました

f:id:tanaka733:20211027225813p:plain CKA: Certified Kubernetes AdministratorとCKAD: Certified Kubernetes Application Developerを同じ日に受験して合格しました。

CKA/CKAD(あとCKSも?)は、例えばAzureの資格試験(AZ-303: Microsoft Azure Architect Technologiesなど)と異なり、実際のkubernetes環境を操作して問題として与えられた状態にすることが求められる試験であり、ドキュメントの参照も一定の範囲で可能ということで、異なる準備が必要だったのでまとめてみました。

kubernetes経験と準備期間

OpenShiftのサポートエンジニアとして約3年、そのあとNew Relicに移ってからはNew Relicのkubernetes Integrationのサポートを通して約2年半、扱う機会がありました。ただ、New Relicに移ってからはNew Relic製品全体を担当していたのでkubernetesに触る機会は減ってしまい、せっかくなのでCKA,CKADを通して最新のkubernetes知識をキャッチアップしておこうと思ったのがきっかけです。

試験のバウチャーは約1年前に買ったものの当時は忙しく1年あればいつか暇になるだろうと思っていたら、ますます忙しくなる中失効の連絡が来たのであわてて試験の予約をして、1ヶ月ほど準備 しました。

試験の予約と受験環境

予約は公式サイトで行います。日本の営業時間でも選択肢は多いので、CKAを11時から、CKADを15時からでとりました。

受験環境は受験者が用意する責任があります。机の上にものがなく、まわりにもものがなく、静寂な環境が必要ということで、どう考えても家の中でそんな環境を用意できそうになかったので、会社で契約しているシェアオフィスのソロスペースを使うことにしました。パソコンは会社支給のMacBook Proを使いました。(私用PCはデスクトップだったため)

環境チェックは受験前に行われるのですが、ウェブカメラで部屋の四方と机の上、机の下を写す必要があり、かなり厳格にチェックされます。自分の場合置けたものは、PCとマウス、外部ディスプレイ、ケーブルそしてラベルを剥がしたペットボトルに入れた水です。

また、今回借りたシェアオフィスの部屋の中にコントロールパネル的なものがあり、それを非表示で操作できない状態にする必要がありました。これらの条件の詳細は更新される必要があるので公式サイトでチェックしましょう。

docs.linuxfoundation.org

試験勉強

自分の場合、運のいいことに試験を予約した直後に会社がUdemyと契約し自由に使えるようになりました。そのため、UdemyのCKAとCKADのコースで主に勉強しました。おそらく知識のキャッチアップとしてはこれで十分だと思われます。

一応OpenShiftでそれなりに詳しくkubernetesを知っていたので動画部分を倍速で復習し、Udemyの一貫としてオンラインで提供されるラボ課題を中心に取り組みました。ラボはkodecloudというサービスで提供されており、kodecloud のみを単独で契約することもできるようです。

kodekloud.com

内容的にはkodecloudのラボで十分キャッチアップできるのですが、オンライン端末の操作性は受験環境とは異なります。そこでぜひおすすめしたいのが、受験チケット購入で一緒についてくるkubernetes Exam Simulatorです。

killer.sh

実は購入当初はこれがついてくることに全く気づかず、受験数日前に最終確認するときに気づいてあわてて受けました。My Portalの試験予約ページからアクセスできます。

f:id:tanaka733:20211027214109p:plain

kubernetes Exam Simulatorの最大のメリットは本番とほぼ同じ操作感であることです。例えば、受験環境はWebブラウザ上で提供されるのですが、コンソールは1つしか提供されません*1。kodecloudは気軽に複数コンソールを開けるので注意が必要です。

逆にSimulatorで気をつけないといけないのは、試験につき1セットの問題しか用意されておらず、1回起動すると36時間しかその環境にアクセスできず、1つの試験につき2回までしか環境を起動できないことです*2。なので、これで勉強するのはあまりおすすめできません。例えば、おおよそCKA/CKADに必要な知識は身についているはずだけど...みたいな人は、まず最初にこれでリハーサルしてみるという使い方はできると思います。

また、Simulatorのサイトにも書いていますが、与えられる問題は本番より難しく、量も多いです。自分はドキュメントを検索しながら*3、3時間で全部の問題を解き、7割くらいの得点でした。本番では時終わったあとに十分に見直しをして30分くらい余った状態で試験を終えました。

試験準備

知識のキャッチアップは前項の勉強のところで書きましたが、それ以外にやっておいたほうがよい準備があります。なによりまずImportant Instructionsを熟読しましょう。知らないと受験できなくなることもありますし、試験に役立つ情報もあります。

docs.linuxfoundation.org

本人確認書類

試験直前にウェブカメラごしに見せる必要があります。ローマ字(ラテン文字表記)かつ署名がある本人確認書類だとパスポートが代表的ですが、最近のご時世だと失効した人もいるかもしれません。運転免許証などはローマ字表記がないのでもう1つの書類が必要です。いくつか列挙されていて「Japanese Health Insurance Card」とも書かれていますが、あくまで「有効で、署名があって、ローマ字表記」されている必要があるとのことです。そうでない保険証は使えないと言われました。

ドキュメントのブックマークとドキュメントサイトの構造の確認

CKA/CKADは与えられたkubernetes環境に対して、問題で指示された状態にもっていくタスクが中心です。また、そのときにブラウザで1つだけ追加でタブを開くことができ、以下のサイトとそのサブドメイン(と翻訳が提供されているドメイン)にアクセスできます。

ドキュメントを中心に見ていくことになると思うのですが、注意点は公式サイト上での検索はhttps://kubernetes.io/search/ で提供されるためアクセスが許可されていないということです。また、許可されているサイト内に許可されていないサイトへのリンクが存在しますが、そのリンクをクリックしないことは受験者が自らの責任で求めれています。なので試験中にドキュメントのリンクを踏むことは極力さけたいところです。

そこで、まず受験用にChromeのプロファイルを新規作成した上で、あらかじめ自分が必要なサイトをブックマークにしておきます。自分はSimulatorの問題を解く時に必要だったドキュメントをブックマークにしました。

f:id:tanaka733:20211027215821p:plain

環境設定

CKA & CKAD Environmentのページに利用可能なツールが記載されています。

docs.linuxfoundation.org

まず、kubetlのエイリアスとしてkがbash補完こみで設定されているので、この設定を自分で行う必要はありません。となると、残るはYAML編集です。kubernetes管理にはYAMLが必要不可欠ですが、当然この試験でも大量のYAMLを作成、編集する必要があります。自分は普段はVisual Studio Codeを使うGUI派なのですが試験では使えないので、vimを使うことにしました。が、デフォルト設定だとひどく使いづらいので、以下の.vimrcを設定しました。

set tabstop=2
set shiftwidth=2
set expandtab
set number

この内容も暗記する必要があるので、覚えられる人はもっとたくさん設定してもいいです。また最低限覚えておいた操作は以下の通りです。

操作

  • :wq 保存して終了
  • :w 保存(終了しない)
  • :q! 保存せずに強制終了
  • :set nonumber 行番号非表示(複数行コピーのときに利用)

移動と削除

  • 矢印キー 矢印方向に移動
  • 0 行頭に移動
  • $ 行末に移動
  • :行番号 行番号に移動
  • D カーソル位置から行末まで削除 (ドキュメントから持ってきたYAMLのname: のあとを削除するのに利用)
  • dd カーソル行を行単位で削除(ドキュメントから持ってきたYAMLのいらない部分を削除するのに利用)

使いこなしている人から見ればこの程度???って思われそうですが、このくらいでなんとかなりました。

また1つのコンソールしか開けない代わりにtmuxが利用できますが、普段使っていないので使わないことにしました。実際使えれば便利かなと思う問題はありましたが、大きな問題にはなりませんでした。

試験本番

15分前からアクセスできるようになります。最初に環境チェックが行われて、スムーズにいけば5~10分くらいで完了し試験がスタートします。今回、1回目の受験で部屋のコントトールパネルが問題視されたため、その対応で30分近くかかってから試験がスタートしました。試験時間はスタートしてからカウントされるので影響ないのですが、試験直前に余計な心配ごとが増えるので環境チェックは念入りにしておきましょう。

あと、独り言を含めて話すのは禁止なので、最近のリモートワークで独り言を言いながら仕事をするような人は注意しましょう、

試験問題の言語

試験問題の言語は日本語と英語(あと中国語もあった記憶)から選べます。最初日本語に設定して、翻訳に違和感を感じることなく解いていたのですが、試しに英語に変えたときに意味が全く異なる翻訳になっている部分があることに気づきました。具体的には言及できないのですが正反対といってもよい意味になる誤訳でした。操作したあとに気づき、操作を切り戻す手順がわからずあせったこともあり、以後は問題を英語で表示して解きました。

同日受験

もともと同時受験するつもりはなかったのですが、受験バウチャーの失効まで時間がないので同日受験することにしました。結果的には、試験範囲のかなりが重なっているので全然問題なかったです。

CKADの2021年9月の更新

CKADは2021年9月に内容が更新されています。

training.linuxfoundation.org

内容としては最近よく使われている概念が追加されたということなので、この内容を含んだ教材で勉強すればOKでした。Udemyのコースではすでにこの更新用の章が追加されています。

注意点としては、例えばHelmの項目がありますがHelmのドキュメントは試験中に参照できないので、ある程度のコマンドを覚えておいてコマンドのヘルプとあわせて解く必要があることです。

*1:複数コンソールが必要な場合はtmuxが利用可能

*2:つまり、2回目起動しても1回目と同じ問題が与えられます

*3:本番ではドキュメントの検索は許可されていないことに注意

C# Tokyoで「New Relicで.NETアプリケーションを計測する」を開催しました

こちらのイベントでお話しした資料を公開します。

【オンライン】New Relicで.NETアプリケーションを計測する - connpass

www.slideshare.net

リンク

www.slideshare.net

リンク

書籍「New Relic実践入門」もぜひ、本屋で見かけたら手にとってみてください。

www.shoeisha.co.jp

2020年を振り返る

年末にかけて有給を取っていたこともあり、なんとなくプログラミングから離れていたのですが、振り返りは大事ということで振り返っておきたいと思います。

New Relic でのお仕事

昨年4月に転職したので2年目に入ります。徐々に日本法人のお客様も増え、社員も増えるし仕事も増えるという流れが強まる1年でした。実は昨年から今年の最初にかけてはお客様訪問する機会も多くあり、今までとは違った角度で見る機会になりました。また、コロナ流行以降は、本社からの通達でグローバルのすべての拠点が原則封鎖され全員在宅勤務に移行しました。もともと前職から在宅勤務でやっており、特にストレスなく、というより通勤がない分かなり効率的に仕事ができていたので、在宅勤務自体はスムーズに進められました。

仕事としては相変わらずNew Relicのサポートする技術すべてのテクニカルサポートおよび技術発信を行っているので、新しもの好きな私としてはかなり楽しみながらやっています。とはいえ、常に人は足りていない状態なので、もし興味のある方がいればぜひ声をかけてください。

New Relic技術発信については公式ブログに書いているので、個人ブログではあまり書かなくなってしまいました。

田中 孝佳, Author at New Relic公式ブログ

Microsoft MVPをAzureとDevelopment Technologiesで再受賞

毎年再受賞できるかなあと思いつつ発表の日(米国時間7/1)を迎えるのですが、今年はAzureとDevelopment Technologiesの2つのカテゴリで受賞することができました。ただ、やはりこの状況下では活動内容も大きく変わり、オフラインでの勉強会開催がほぼなくなりました。おそらく最後の登壇が1月のIgnite The Tour Osakaだったと思います。それ以降は主にC# Tokyoのオンラインイベントの開催、登壇になりました。

AzureとQ#をほとんどやっていないなあと(仕事や趣味で手は動かしているけど発表できるネタにまでなっていない)思うので、これは来年なにかやりたいなと思っています。

資格

Ignite the Tourの参加でMicrosoft認定資格試験が1回無料で受けられるというのもあって、もう1回分払って「Azure Solutions Architect Expert」を取得しました。ただ、Microsoft的にはAZ-900を取得してほしいらしく、これの取得後もしきりにAZ-900の受験をすすめるDMが届きます。Expertとはいったい...

Microsoftの資格だとExpert以上のものはないし、AWSは会社に詳しい人がわんさかいるのと、そういえばOpenShiftの内部のkubernetesしかちゃんと勉強してないな、ということでCKAとCKAD取得が2021年の目標です。

training.linuxfoundation.org

training.linuxfoundation.org

英語

仕事がら英語は読み書きメインで使うのですが、いままで機械翻訳は「誤りがあるかどうか調べるコストが高くて非効率だ」と思い使わなかったのですが、DeepLの精度の高さに感激したのと処理する量が莫大になってきたので、DeepL Proを契約して使い始めました。

www.deepl.com

これでだいぶ楽にはなったのですが、今度は自分自身の英語力の低下を感じるようになってきたので最近時間をとって勉強するようになりました。

発音はELSAというアプリでやっています。

elsaspeak.com

単語は 英英英単語という、英語で英単語の説明(つまり英英辞典)がしてあるのに加えて日本語訳があるという本で覚えています。

文法とリスニングは鬼100則というシリーズが気に入ったので読み進めています。

学習ではないですが、英語関連ではGrammalyにも課金しています。

app.grammarly.com

その他

在宅でも同じように仕事ができる自分以上に影響を受けてるのが小学生の子供で、休校期間中は勉強するコンテンツ、家の中でも楽しめるコンテンツ(工作が好きなのでペーパークラフトなど)を探したり、よく近くの公園に運動しに行ったりしていました。 学校が再開しても、林間学校的なものは中止になりましたし、運動会も参観できない形になりました。まだしばらくは状況は変わりそうにないので、できる範囲でいろんな体験ができるように考えています。そういう意味で時間に融通の利かせやすい今の仕事はわりと助かっています。