jtwp470’s blog

日記とかプヨグヤミングとか

Certified Kubernetes Application Developer 試験を受験してきました

Certified Kubernetes Application Developer (CKAD) - Cloud Native Computing Foundation

多分、日本人では2番めのベータテスター*1になったのではないでしょうか? CKADのベータ試験を先程受験してきました。

https://www.cncf.io/wp-content/uploads/2018/04/kubernetes-ckad-color.png

あんまり資格試験とか興味がなかったのですが最近kubernetesに興味を持ち始めていろいろ使うようになってからもっと理解を深めたいけど学ぶ題材がないなぁという状態でした。そこで聞いたCKADのベータ試験が始まると聞いてせっかくだから受験してどういう問題が出るか見てみよう、勉強しようという気持ちで受験してきました。 出題内容もCKAと違ってkubernetesの利用者向けの試験ですので使う私からしたら勉強になるな、という決意です。

受験について

現在はベータ試験のため、ベータ試験に申し込みます。ただし書いている現在 (4/30) で消えているのでもうベータ試験の募集は終了してしまったようです。 受験料は$1000 と書かれていましたがベータ試験のクーポンコードを入力すると$100 となりました。クレジットカードで決済します。

The passing score for the CKAD exam has now been set to 66%. After you receive your score, and if you do not pass, you will have a free retake eligibility for twelve months.

送られてきたメールにはこのように書いてあります。合格点は66%以上なようです。また試験を受けて不合格だった場合には12ヶ月の間であれば1回は無料で再受験できるようです。

その他

その他細かいことですが受験の際に疑問になったことが2つほどあり、解消したので一応情報として掲載しておきます。

ID について

Candidates are required to provide a means of photo identification before the Exam can be launched. Acceptable forms of photo ID include current, non-expired: passport, government-issued driver's license/permit, national ID card, state or province-issued ID card, or other form of government issued identification. If acceptable proof of identification is not provided to the exam proctor prior to the exam, entry to the exam will be refused. Candidates who are refused entry due to lack of sufficient government issued ID will not be eligible for a refund or rescheduling. Please also note that the presented international Passport or government issued form of identification must contain Western (English) characters.

メールにて受験の必須要項としてこのようなものが送られてきます。簡単に訳すと次のようになります。

受験者は試験が始まる前に写真付きのIDが必要です。受理される形式のものとしては期限内で有効なパスポート、政府発行の運転免許証、国民IDカード、州政府発行なIDか、そのほか政府の発行するIDとなります。試験の前に受理できる受験証明書が提出されない場合、試験を受験することは出来ません。政府発行によるIDを試験前までに用意できず受験拒否となった受験者は払い戻し、または試験の日にちの再設定の対象となりません。さらにパスポートや政府発行のIDには西洋の(英語)文字が書かれている必要があります。

私は日本政府発行のパスポートを所持しているためそれを用いました。おそらく日本国内発行の写真付きIDのうち英語が書かれているものはパスポートかアマチュア無線従事者免許証くらいしか存在しないと思います。 さて、用意はしたのですが提出先はどこなのでしょうか? 調べても見当たらず結局受験日になってしまいました。結論を言うと提出先があるのではなく受験前にWebcamの前に提示して見せるというものでした。なのでそこはあんまり心配するものではないです。

英語について

日本人、英語力低いですよね。私もその一人で英語力ダメダメです。私の英語力はTOEICで700点くらいしかないクソ雑魚なので割と英文読むのがしんどいです。一応チャットで試験中に英語を日本語に翻訳するためにGoogle Translateを用いてもいいか? と質問してみたところ、Extensionをつかうならいいよ、と言われたので、英語に関しては心配しないでもいいかと思います。 ただ、心配ならk8s.ioのドキュメントが大体辞書なしでサラッと読めるくらいの英語力はほしいところです。

f:id:jtwp470:20180430220140p:plainGoogle Chrome の翻訳Extension

出題内容について

  • 13% – Core Concepts
  • 18% Configuration
  • 10% Multi-Container Pods
  • 18% – Observability
  • 20% – Pod Design
  • 13% – Services & Networking
  • 8% – State Persistence

割と受験範囲がほぼこれどおりでます。

kubernetes.io

は一通り舐めておいたほうが無難です

感想

とにかく2時間で20問は量が多かったです。なので何問かは解かずに捨ててしまいました。意味がわからんな、と思ったら落として言ってもいいと思います。 あとWebコンソールのエディタが貧弱なので書くのがしんどくなります。この辺エディター使っていいよとかになってくれればいいんですけどね。 更にググるのが禁止になり公式ドキュメントしか参照が許されないので2時間英語と格闘が続いて疲弊しますw k8s.io のドキュメントに検索機能があるため、そこの検索で何とかしましたが英語だったのがちょっとしんどくなりましてw

ひとまず、Kubernetesを勉強してみて、自分の能力を確認してみるならうってつけの試験かなと思いました。

結果

結果が来ました。残念ながら不合格でしたorz

f:id:jtwp470:20180501114914p:plain

2週間程度で適当にk8sを触っている分だと半分くらいしか理解できていないということがわかりましたw もう一度再挑戦ができるので再度勉強をし直して再受験したいと思います! 後受かったら何を勉強したかざっとまとめようかとおもいますw

*1:1番目はおそらくCAの青山さんです。https://developers.cyberagent.co.jp/blog/archives/15383/

はてなブログがSSL対応されたのでこちらを技術ブログとしようと思います

表題のとおりです。今結構前からmediumをブログとして使っていたのですが、はてなブログを使わない理由の1つにSSL対応されていないということがあったのですが、先日公式からアナウンスが有りました。

staff.hatenablog.com

本ブログもSSL化に対応されたので早速SSLを有効化しました。

挙動について

ちょいっと技術的な話ですが、curl で自分のブログにSSLでアクセスしてみます。

% curl -I https://jtwp470.hatenablog.jp/
HTTP/1.1 200 OK
Server: nginx
Date: Sun, 11 Mar 2018 02:59:30 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Vary: Accept-Encoding
Vary: User-Agent, X-Forwarded-Host, X-Device-Type
Access-Control-Allow-Origin: *
Content-Security-Policy-Report-Only: block-all-mixed-content; report-uri https://blog.hatena.ne.jp/api/csp_report
P3P: CP="OTI CUR OUR BUS STA"
X-Cache-Only-Varnish: 1
X-Content-Type-Options: nosniff
X-Dispatch: Hatena::Epic::Web::Blogs::Index#index
X-Frame-Options: DENY
X-Page-Cache: hit
X-Revision: bfbec940d94e11790280484f3b97149a
X-XSS-Protection: 1
X-Runtime: 0.047087
X-Varnish: 432949723
Age: 0
Via: 1.1 varnish-v4
X-Cache: MISS
Cache-Control: private

こんな感じ。HTTP/2 には対応してないみたいです。ちなみにこのcurl は HTTP/2 をビルドオプションにつけているため、対応しているサイトであれば自動的にHTTP/2になります。

% curl --version
curl 7.58.0 (x86_64-apple-darwin16.7.0) libcurl/7.58.0 OpenSSL/1.0.2n zlib/1.2.8 libidn2/2.0.4 nghttp2/1.31.0
Release-Date: 2018-01-24
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy

% curl -I https://jtwp470.net/
HTTP/2 200
server: nginx/1.10.3 (Ubuntu)
date: Sun, 11 Mar 2018 03:02:27 GMT
content-type: text/html
content-length: 6328
last-modified: Mon, 24 Jul 2017 14:31:33 GMT
etag: "597604c5-18b8"
x-frame-options: SAMEORIGIN
x-xss-protection: 1; mode=block
x-content-type-options: nosniff
strict-transport-security: max-age=31536000
accept-ranges: bytes

セキュリティ的な面ではどうなのか

% curl -I https://jtwp470.hatenablog.jp/
HTTP/1.1 200 OK
Server: nginx
Date: Sun, 11 Mar 2018 02:59:30 GMT
Content-Type: text/html; charset=utf-8
Connection: keep-alive
Vary: Accept-Encoding
Vary: User-Agent, X-Forwarded-Host, X-Device-Type
Access-Control-Allow-Origin: *
Content-Security-Policy-Report-Only: block-all-mixed-content; report-uri https://blog.hatena.ne.jp/api/csp_report
P3P: CP="OTI CUR OUR BUS STA"
X-Cache-Only-Varnish: 1
X-Content-Type-Options: nosniff
X-Dispatch: Hatena::Epic::Web::Blogs::Index#index
X-Frame-Options: DENY
X-Page-Cache: hit
X-Revision: bfbec940d94e11790280484f3b97149a
X-XSS-Protection: 1
X-Runtime: 0.047087
X-Varnish: 432949723
Age: 0
Via: 1.1 varnish-v4
X-Cache: MISS
Cache-Control: private

もう一度これを見てみましょう。よくある、Strict-Transport-Security ヘッダがついていないですね。もしかするとはてなブログの前段はみんな同じロードバランサーを経由しているのかもしれませんね。もしこれを設定してしまうと全はてなブログに対してSSLでアクセス行ってしまいますからねw

結構いろんなドメインでいろんなサイトをホスティングしている影響がこんなところに出ているのかなと思います。

ということで特筆して何かしているわけではなく、ただただHTTP over SSLが使えるようになったと考えるといいかなと思います。

Mixed Content を潰す

SSL化すると http で利用しているCSS、JS、画像などが含まれていると mixed contentという警告が出てしまいます。なるべく潰すために片っ端から潰します。 基本的に http から https へ書き換えるだけで大丈夫です。

ただ、今使っているテンプレートの一部にhttpが残っているようでどうやって潰すか考えています。何かいい方法を思いついたら投稿します。

何か致命的にヤバイところを見つけましたらTwitterか、コメント欄で教えてもらえると助かります。

最後に

ひとまずはてなブログSSL化されて良かったです。ただ、個人的にはブログを書くのにいちいちMarkdownを書いてプレビューみて確認っていうのはもう面倒極まりないことで可能であればDropbox Paperのような雰囲気で書けると非常に重宝するなと言う気持ちなので早くそういうのに対応してほしいです。 ひとまずMediumにある技術ネタはこちらに移動して、Mediumの方はオタク旅行記などジャンルを変えていこうかなと思います。

medium.com

初UberEATSデビューした

クソ遅くてSSLにも対応していないブログにサラバしてるんです。面倒ですがmediumの方へ回ってください。ごめんなさい🙇 medium.com

ドメインをお名前.comからGoogle Domainsに移管してみた

medium.com

ISUCON7予選に参加してボロ負けしてきた

本文はMediumにあります。

medium.com