2022-01-01から1年間の記事一覧
今回の記事では Killercoda を使ってウェブ上ですぐに試せる学習コンテンツを作る.前回の記事で紹介した「Katacoda インポート機能」 ではなく,以下のドキュメントを参考にイチからシナリオを作る. killercoda.com 環境 現在 Killercoda は「3種類」の環…
Katacoda は「2022年6月末」にサービス停止になってしまった.今まで本当によく使っていたから残念だった 特に「ウェブ上ですぐに試せる手軽さ」や「学習コンテンツの豊富さ」や「独自コンテンツを作って公開できる仕組み」など,魅力的なポイントが多くあっ…
Pluto を使うと Kubernetes マニフェストの apiVersion に対して deprecated(非推奨)と removed(削除)を検出できる.警告自体は Deprecated API Migration Guide | Kubernetes を見れば確認できるし,kubectl apply コマンドを実行したときにも表示され…
「Diagrams」を使うと Python コードでアーキテクチャ図を生成できる.サポートされているアイコンセットがとても多く AWS や Google Cloud や Microsoft Azure もあれば,Kubernetes やプログラミング言語なども使える.試してみたけどめちゃくちゃ便利!ま…
ブログ記事に「ディレクトリ構造」を載せるときは tree コマンドを使っている.ディレクトリ構造が深すぎるときは tree -L で深さを指定できるし,不要なディレクトリがあるときは tree -I で除外もできる.今まで書いたブログ記事にも多くディレクトリ構造…
jupyter nbconvert コマンドを使うと Jupyter Notebook を Python コード / PDF / HTML などに変換できる.指定できるフォーマットの一覧は GitHub に載っている.また Jupyter Notebook で使える Download as メニューも同じ仕組みを使っている. github.co…
記述したテンプレートから YAML を生成するツール 「ytt」 を試す.ytt は YAML に対して「テンプレート機能」と「オーバーレイ機能」が使える.VMware 社を中心に開発されているツールセット Carvel に含まれている. carvel.dev YAML のテンプレート機能や…
実験管理やモデルレジストリなど,機械学習ライフサイクルをうまく管理するプラットフォームとして有名な「MLflow」に入門する.GitHub リポジトリの Star は 12000 もあってスゴイ!MLflow は MLOps の文脈でもよく聞くので,1度試しておこうと思った. 現…
コンテナワークロードにおけるセキュリティ対策の理解を深めるため「Docker/Kubernetes 開発・運用のためのセキュリティ実践ガイド」を読んだ.実は本書は 2021年7月頃 に1度読み終わっていたけど,実際に気になった部分を試したり,CKS (Certified Kubernet…
CNCF (Cloud Native Computing Foundation) の Kubernetes 関連資格 KCNA (Kubernetes and Cloud Native Associate) に合格した! ついに「4冠」になったー まだまだ KCNA の日本語情報は少なく,資格の普及も兼ねて紹介記事としてまとめておこうと思う. w…
Kubernetes の Service ドキュメントを読み直していたら「サービスディスカバリ」のモードとして「環境変数」と「DNS」をサポートしていると書いてあった.一般的によく使うのは「DNS」で {ServiceName}.{NamespaceName}.svc.cluster.local というレコードで…
Kubernetes でノードの Taint を確認するときに「一覧する」コマンドがなくて困るときがある.--show-labels オプションのように --show-taints オプションがあったら良いのに!例えば kubectl describe node xxx | grep Taints コマンドを実行すれば「ノー…
Jupyter Notebook で Pandas のコードを実装しているときに「指数表記を無効化」する場合は pd.options の display.float_format を設定する.以下にサンプルとして「桁数 2」と「桁数 6」の例を載せておく. # 小数点以下 桁数 2 pd.options.display.float_…
Re:VIEW で catalog.yml に設定するファイルの分割粒度は「章単位 (Chapter)」になっている.しかし,文章量が増えてくると運用面で「節単位 (Section)」にファイルを分割したくなってくることもある.例えば,以下のように「1章(1節)」と「2章(2節)」と…
Kubernetes の資格 CKS (Certified Kubernetes Security Specialist) に合格した やったー!Kubernetes 関連は3個目! 今回の記事では「勉強方法」をまとめようと思う. www.cncf.io 時系列で書くと,2021年2-3月に CKAD (Certified Kubernetes Application…
Kubernetes でコンテナワークロードの脅威検出として使える「Falco」に入門する.CNCF (Cloud Native Computing Foundation) で Incubating に位置しているプロジェクトで,今回は実際に Falco を使って Pod に対する操作(振る舞い)を検出したり,独自ルー…
GitOps ソフトウェアの Flux v1 にはイメージレジストリを監視してイメージタグを自動的に最新化する「Automate image updates(自動イメージ更新)機能」が組み込まれている.別名で「Image Ops」と言ったりもする.具体的には Deployment YAML などの anno…
Kubernetes で Pod(正確にはコンテナ単位)に securityContext.readOnlyRootFilesystem: true を設定すると,ルートファイルシステムを読み取り専用にして書き込み操作を抑止できる.アプリケーションのセキュリティ対策として使える.補足をすると Kuberne…
Kubernetes で有効化できる Admission Plugin である「NodeRestriction」の動作確認をした.簡単にまとめておく! 「NodeRestriction」は kubelet に対して Node / Pod の操作範囲を制限できる.具体例を挙げると kubelet によるラベル操作を自ノードに制限…
textlint で textlint-filter-rule-comments を使うとコメント記法で「特定のルールを無視する」範囲を設定できる. github.com しかし textlint-plugin-review と組み合わせて Re:VIEW で textlint-filter-rule-comments を使う場合は ではなく #@# という…
AppArmor (Application Armor) とは Linux Security Modules の1つで,プログラムに対して「ファイル操作」や「マウント操作」などを制限する.詳しくは以下のドキュメントに載っている. ubuntu.com コンテナワークロードのセキュリティ対策として,AppArmo…
最近「Monokle」を使っている.Monokle(モノクレ)は「Kubernetes マニフェスト用エディタ」とも言えるアプリで,2週間ほど使って操作にも慣れてきたので紹介する!macOS でも Windows でもアプリをダウンロードすればすぐに使えるぞ! github.com 機能 ☸️ …
「Software Design 2022年4月号」を読んだ.本誌の第2特集「堂々と使える!人に教えられる!本質から学ぶ Git」に寄稿をされた id:syobochim に献本(ギフトコード)をもらったので第2特集を中心にまとめる.献本ありがとうございます! Software Design (ソ…
Kubernetes を使っていると,運用面で起動中の Pod を他のノードに移動(再スケジューリング)したくなる場面がある.以下に具体的な例を挙げる.理由としては,Kubernetes では kube-scheduler によって Pod を起動する前にノードが決まる仕組み(スケジュ…
Kubernetes で「Pod Topology Spread Constraints」を使うと Pod をスケジューリングするときの制約条件を柔軟に設定できる.今回は Zone Spread (Multi AZ) を試す!詳しくは以下のドキュメントに載っている! kubernetes.io spec.topologySpreadConstraint…
Pandas で NDJSON (Newline Delimited JSON) を読み込む場合 read_json() 関数に lines=True パラメータを設定すれば OK! pandas.pydata.org NDJSON サンプル dataset.jsonl { "id": 1, "name": "Alice" } { "id": 2, "name": "Bob" } { "id": 3, "name": "…
前回の記事では Airflow 検証環境にプリセットされている DAG を使って BashOperator と PythonOperator と BranchPythonOperator を試した.今回は新しく DAG を作りつつ,気になる他のオペレーターを試す. kakakakakku.hatenablog.com SlackAPIPostOperat…
2022年3月1日に β リリースになった「一般社団法人 Python エンジニア育成推進協会」の新試験「PythonZen & PEP 8 検定試験」に合格した現在まだ β だけど合格すると「本認定」になる.PythonZen (PEP 20 - The Zen of Python) と PEP 8 から出題されるため…
プロダクトのロードマップを公開できるサービス「Roadmap.show」を試した! サービス自体はとてもシンプルで,例えば「機能 A は開発中だよ!」とか「機能 B は予定してるけどまだ未着手だよ!」という状況をユーザーに伝えることができる.以下の YouTube …
前回の記事では Airflow 検証環境を使って「Airflow Tutorial」を進めた.BashOperator を使った基本的な DAG を理解できるようになった!今回はプリセットされている他の DAG を使って BashOperator と PythonOperator と BranchPythonOperator を試す. ka…