百日半狂乱

Shut the fuck up and write some code!!

builderscon tokyo 2018 にスタッフとして参加してきた。

去年のbuilderscon tokyo 2017当日スタッフとして参加して、そのClosingでカンファレンスのコンセプト*1に共感して、

youtu.be

それでも結構悩んで色々考えた結果、コアスタッフとして参加することにしたのが去年の11月くらい。

カンファレンスの準備から関わったのが今回が初めてだったけど、そこからなんだかんだ色々やらせてもらって、builderscon tokyo 2018は2018/09/08の本編2日目をもってひとまず終了した。

関わったスタッフの皆様、本当にお疲れ様でした。

ここでは、忘れ去る前に、色々スタッフ業を通して体験したことや、極々個人的なことをつらつらと書き下しておこうと思う。

*1:"This is your opportunity to jump out of your comfort zone."

続きを読む

Nodeのマシンタイプをケチって覚えたdebugging kubernetes

GKE上に立ち上げている自前のkubernetesのClusterは、一番安いという理由だけでg1-small*1を使い続けていた。しかし、いざ複数のPodを追加したりし始めると、Nodeのリソース不足が原因で色々ハマったので、そこで覚えた細かいデバッグ手法をのごとく逆引き辞書っぽくメモしていく。ついでにリソースとは無関係なkubernetesのネットワーク関連でハマったこともメモ。すでに使い込んでいる人にとって目新しいものはない気がする。

以下、例となっているPodのデプロイは、状況を再現しやすいという理由だけで手前味噌のprometheus実験レポジトリを元に行っているのでprometheusが云々と多少言っているが、基本的にPodの内容がなんであれ、リソースが足りなくなった場合に何が起こって、kubectlで何を確かめれば良さそうか、という点を中心に書き下していく。

*1:値段を改めて調べて気が付いたが、preemptible VMsでGKE上にkubernetesのClusterを立ち上げることができるっぽい。しかもかなり節約になる。くっ...!!

続きを読む

gcloud config / kubectl config 事始め。

手元のgcloudに紐付く複数のaccount/project/k8s cluster/k8s namespaceを持っている場合、とにかくどのアカウントで、何のロールで、どこのプロジェクトのどのクラスタに向かってgcloudやkubectlを叩いているのか都度確認しながら作業することになる。gcloudとkubectlはそれぞれconfigというリクエストの投げ先(context)の設定をするのに重要なサブコマンドを持っていて、これらを正しく設定しないと所望のプロジェクトなりクラスタにアクセスできない。サブコマンドがどちらもconfigという名前なので、慣れてくると覚えるキーワードが少なくて大変良いが、頭の中で二つを整理しないうちは似たようなコマンドが色々出てくるので何が何やらわからなくなってくる。

また、個々の設定方法はコマンドのhelpなりドキュメントを見ればわかるが、最初は脳内に逆引き辞書的なものが存在しないので、そもそも必要なコマンドに辿り着けない。gcloud cheat sheetとかで調べればやり方的なものは出てくるけど、結局自分で触ったものしか理解できないし何より全然覚えないので、観念して自前のチートシートを書き溜めることにした。

ここではサブコマンドconfigに関わるものを中心に、クラウド上にリソースを作り始めたりする前に確認しておきたい事柄(バージョンやパーミッションなど)を書き下す。

  • コマンドのインストール
  • account/project/region/zoneをまとめて扱うnamed configurationsの設定と切り替え
  • GKE上にk8sクラスタを作成
  • master/nodeのバージョン確認とアップグレード
  • kubectlのcontext設定とnamespaceの設定と切り替え
  • kubectlに既存のk8sクラスタを認識させる (get-credentials)
  • kubectlのcontextとnamespaceの管理に便利なプロンプトとCLIの導入
  • user/service accountのロールとパーミッション確認方法
続きを読む

一人Hands-on: Manage Kubernetes Clusters on AWS Using Kops & WEB+DB PRESS Vol.99写経

Manage Kubernetes Clusters on AWS Using KopsWEB+DB PRESS Vol.99: 実践 Kubernetesを参考に一人Hhands-onをしてみた。

本当はGKEで触る方が良いと思いつつ、AWSの方が仕事で慣れているので入りやすい、re:Inventで参加するHands-onで万が一何言っているのかさっぱりわからない時のためのチートシート作成、の二つの理由でkopsでkubernetes入門を試みた。

以下、

  • 自分の記憶力を一切信用しない
  • コマンドの出力もなるべく記録
  • 途中の寄り道で見つけたことも記録

という方針でメモをとっているので記事が縦に長い。

続きを読む