kakakakakku blog

Weekly Tech Blog: Keep on Learning!

docker の検索結果:

Kubernetes と Falco を組み合わせて脅威検出に入門する

…016 image=docker.io/library/nginx node01 $ grep falco /var/log/syslog (中略) Apr 16 14:00:00 node01 falco: 14:00:00.000000000: Notice A shell was spawned in a container with an attached terminal (user=kc-internal user_loginuid=-1 nginx (id=aa…

Pod でルートファイルシステムを読み取り専用にする securityContext.readOnlyRootFilesystem

…固有の機能ではなく,Docker にも docker run コマンドに --read-only オプションが用意されている. securityContext: readOnlyRootFilesystem: true 検証 : BusyBox まず securityContext.readOnlyRootFilesystem: true を設定して BusyBox を起動するサンプルマニフェストを作る. apiVersion: v1 kind: Pod metadata: …

Airflow : SlackAPIPostOperator と SqsPublishOperator に入門する

…rator を試す Docker を使って構築した環境だと ./dags ディレクトリに Python ファイルを置くと DAG として認識される.まずは Slack に通知をする SlackAPIPostOperator を試したく ./dags/my_dag_slack.py を以下のように作る.SlackAPIPostOperator のパラメータは必要最小限にして以下を設定した. task_id : Airflow タスク名 token : Slack API Tok…

Airflow : PythonOperator と BranchPythonOperator に入門する

…境を独立させるなら DockerOperator を使うのが良さそう. if not shutil.which("virtualenv"): log.warning("The virtalenv_python example task requires virtualenv, please install it.") else: # [START howto_operator_python_venv] @task.virtualenv( task_id="virtualenv…

Airflow : Tutorial を使って Python で実装された DAG の基礎を学ぶ

前回の記事で構築した Airflow 検証環境を使って「Airflow Tutorial」を進めていく!今回紹介する「Airflow Tutorial」は本当によくできてて,Airflow の基本的な仕組みや操作を学べる.そして Python で実装された DAG も読めるようになる.どの項目も丁寧に書かれていて挫折しにくく工夫されていると思う. kakakakakku.hatenablog.com Airflow Tutorial airflow.apache.org 検証…

Airflow : Docker で検証環境を構築して画面と CLI と REST API で操作する

…pache.org Docker を使う 🐳 検証環境を構築する方法として,ドキュメントには「Python (pip)」と「Docker」の2種類が載っている.今回は環境をそこまで汚さずに使えて,個人的にも慣れている Docker を使う.基本的にはドキュメントの通りに進めればよく,解説も入っている.今回使う macOS など,環境ごとの注意点も載っていて親切だと感じた. airflow.apache.org まず,公開されている Docker Compose の docke…

Redash v10 を試そう!「Redash ハンズオン資料」v10 をリリースした

…順を見直した 環境 Docker Compose で構築した環境を削除する手順を追加した 「Redash v10.0.0」で追加された新機能もあり,例えば Excel / CSV データソースは気になる人も多いと思う.代表的な新機能は以下の記事で紹介しているので,読みながら試してみると良いんじゃないかと! kakakakakku.hatenablog.com New Collaborator 🚀 Redash Meetup 運営など Redash の普及に貢献されている id…

高機能な Feature Flag サービス「Unleash」の React SDK を試した

…h Proxy も Docker で簡単に構築できる.今回は Unleash server と Unleash Proxy をどちらも構築する必要があるため,前回使った Unleash server の docker-compose.yml を拡張して,同時に構築できるようにした.以下の proxy エントリーを追加した. version: "3.4" services: web: build: . ports: - "4242:4242" environment: DATA…

2021年の振り返りと2022年の抱負

…akku blog Dockerfile で新しく使えるようになった構文「ヒアドキュメント」で複数行の RUN をシュッと書く - kakakakakku blog マイクロサービス化を目指すなら移行パターンを学ぼう /「モノリスからマイクロサービスへ」を読んだ - kakakakakku blog 検索流入キーワード Top 5(クリック数) git switch git clone depth git switch checkout brewfile git depth …

高機能な Feature Flag サービス「Unleash」の Ruby SDK を試した

…を確認して,今回は Docker Compose を使って macOS 上に構築することにした. docs.getunleash.io docker-compose.yml は GitHub に公開されているため,手順通りに実行すれば,簡単に構築できる. $ docker-compose build $ docker-compose up github.com http://localhost:4242/ にアクセスをしたら管理画面にアクセスできた!デフォルトで設定されている…

Kubeval で kustomization.yaml を対象外にする

…と,Kubeval Docker イメージを直接指定して使うことになる.公開されている garethr/kubeval Docker イメージ(GitHub リポジトリは garethr/kubeval から instrumenta/kubeval にリダイレクトされる)を使って,以下のように workflow.yml を設定すれば,期待した通りに使えるようになった.解決! name: Workflow on: push jobs: kubeval: name: kubeva…

Dockerfile で新しく使えるようになった構文「ヒアドキュメント」で複数行の RUN をシュッと書く

…21年7月30日に Docker Blog に公開された以下の記事を参考に「Dockerfile で新しく使えるようになった構文 "heredocs"」を試す.Dockerfile で「ヒアドキュメント」を使うと,今まで RUN と && \ を組み合わせて複数コマンドを 1 レイヤーにまとめていた Tips を使わずにシュッと書けるようになる.なんと! www.docker.com なお RUN と && \ を組み合わせる Tips は Intro Guide to Do…

docker run コマンドの --pid オプションで PID namespace を共有する

docker run コマンドで使える --pid オプションを試す.Docker では以下のドキュメントに書いてある通り,デフォルトでは PID namespace でコンテナ同士を隔離する.よって,コンテナ同士でプロセスを共有することはできず,各コンテナでは PID 1 を含む「プロセス ID」を再利用できるようになっている.今回は一歩一歩確認しながら進めていく. docs.docker.com PID 1 を確認する まず,デフォルトの挙動を確認する.以下のように do…

kube-apiserver で「匿名リクエスト」を無効化する : --anonymous-auth=false

…機能の無効化を試した.kube-apiserver の --anonymous-auth オプションは「Docker/Kubernetes開発・運用のためのセキュリティ実践ガイド」の「5.3.7 匿名ユーザの取り扱い」にも載っている. Docker/Kubernetes開発・運用のためのセキュリティ実践ガイド (Compass Booksシリーズ)作者:須田 瑛大,五十嵐 綾,宇佐美 友也マイナビ出版Amazon 関連記事 kakakakakku.hatenablog.com

Secret の自動マウントをオプトアウトするかどうか : automountServiceAccountToken フィールド

…ecialist) の出題範囲にも関連するトピックが含まれているし,最近読んでいる「Docker/Kubernetes開発・運用のためのセキュリティ実践ガイド」にも automountServiceAccountToken フィールドの解説が載っていたので,気になっていた!引き続き試していくぞー! Docker/Kubernetes開発・運用のためのセキュリティ実践ガイド (Compass Booksシリーズ)作者:須田 瑛大,五十嵐 綾,宇佐美 友也マイナビ出版Amazon

Kubernetes と seccomp を組み合わせてシステムコールを制限する

… に入門するために「Docker と seccomp」を組み合わせて試した.docker run コマンドの --security-opt オプションを使って seccomp プロファイルを指定した. kakakakakku.hatenablog.com 今回は「Kubernetes と seccomp」を組み合わせて試す.設定や手順などは以下のドキュメントに詳しく載っている. kubernetes.io 検証環境 まず,kind を使って検証環境を構築する.以下の kind…

Docker と seccomp を組み合わせてシステムコールを制限する

… の機能で,今回は「Docker と seccomp」を組み合わせて試す.ドキュメントは以下にある. docs.docker.com seccomp デフォルトプロファイル まず,Docker はデフォルトで seccomp をサポートしている.Docker (Moby) の GitHub リポジトリにデフォルトプロファイル default.json がある.プロファイルは長く感じるけど,比較的簡単に読める.基本的に SCMP_ACT_ERRNO(拒否) となり,ホワイトリス…

GitHub Actions で Re:VIEW プロジェクトをビルドする

…me/review Docker Image を使うことにした.検証日時点で最新となる Re:VIEW v5.1 もサポートされていて良かった💡その前に GitHub Marketplace で Re:VIEW 専用の Action も探してみたけど,あまり良さそうなものはなかった. github.com Re:VIEW プロジェクトを作る サンプルとして review-init コマンドを使って Re:VIEW プロジェクトを作る.今回は sandbox-github-ac…

GitHub リポジトリのスター数を時系列グラフとして取得できる「starcharts」

「starcharts」を使うと GitHub リポジトリの「スター数⭐」を時系列グラフ(SVG フォーマット)として取得できる.GitHub リポジトリの README.md に載せることもできて便利! github.com kakakakakku/redash-hands-on を例にすると 「starcharts」の URL (starchart.cc) に kakakakakku/redash-hands-on のようにリポジトリ情報を追加すれば OK!以下に載せたよ…

簡単に Docker Hub の情報を取得できる Docker Hub CLI Tool(hub-tool コマンド)

「Docker Hub CLI Tool(hub-tool コマンド)」を使うと,Docker Hub の情報取得を CLI で行えるようになる.2020年12月にリリースされて,2021年1月に OSS として GitHub リポジトリも公開された.個人的には「イメージタグを検索する hub-tool tag ls コマンド」が便利すぎて頻繁に使っている.他には「レート制限の状況を確認する hub-tool account rate-limiting コマンド」も便利! g…

「RBAC Lookup」を使って RBAC に関連するオブジェクトを検索する

… 検証環境 今回は Docker Desktop for Mac の Kubernetes 1.19.3 を検証環境として使う.Role / ClusterRole / RoleBinding / ClusterRoleBinding のマニフェストを作った(GitHub に置いてある).関係性を簡単に図解すると以下のようになる. https://github.com/kakakakakku/k8s-manifests/tree/master/sandbox-rbac-loo…

kubectl-neat を使って Kubernetes のマニフェストをスッキリ表示する

….com 検証環境 Docker Desktop for Mac Kubernetes 1.19.3 事前確認 : kubectl get pods xxx -o yaml コマンド 「kubectl-neat」を試す前に事前確認として kubectl get pods xxx -o yaml コマンドを確認する.kubectl get pods コマンドに -o yaml オプションを追加すると,Pod の状態を YAML 形式で詳細に確認できる.まず,以下のマニフェストを…

n8n.io 入門 : IFTTT のようなワークフローを構築しよう

…として Mac で Docker を使って「n8n.io」を試す.現状だと Docker と npm (npx) で試せる.なお,SaaS として使える「n8n.cloud」もある(最近まで coming soon になっていた). n8n.io n8n.io 入門 : 完成形 今回は「GitHub リポジトリに対する Star⭐/ Unstar⭐をトリガーに Slack 通知とコマンド実行に条件分岐をするワークフロー」を構築して「n8n.io」に入門する.完成形を以下に載せ…

Pod に「優先度」を設定できる PriorityClass と Non-preempting 機能を試した

… 検証環境 今回は Docker Desktop for Mac で Kubernetes 1.19.3 を使う.検証をシンプルにするために「1 ノード」そして「メモリ 2 GB」にした. $ kubectl describe nodes | egrep 'Capacity:|Allocatable:|memory:' Capacity: memory: 2035604Ki Allocatable: memory: 1933204Ki 「PriorityClass」設定なし …

nginxdemos/nginx-hello イメージを使うと簡単に「コンテナ ID」を確認できる

…ができない.自分で Dockerfile を書いて nginx.conf をゴニョゴニョしたイメージを作ることもできるけど,そこまで頑張るモチベーションもなく,すぐに使えそうなイメージを探していた. NGINX-Demos GitHub に NGINX が管理をしている NGINX-Demos という名前のリポジトリがあり,そこに nginx-hello-nonroot というサンプルが公開されていた.イメージとしては,大きく以下の2種類のタグがある. nginxdemos/…

複数ユーザーでも簡単に画面共有ができる「Screego」を試した

…stall via Docker / single binary(Docker で簡単にインストール / シングルバイナリ) Integrated TURN Server see NAT Traversal(統合された TURN サーバーで NAT トラバーサルをする) screego.net 🖥 Screego を試す 「Screego」のデモサイトが公開されているため,簡単に試せる. app.screego.net デモサイトにアクセスして,そのまま「CREATE ROO…

Docker Compose で複数コンテナの準備完了を TCP / HTTP で待機できる「dockerize」を試した

Docker Compose を使って複数コンテナを起動するときに,タイミングによっては接続エラーになってしまう場合がある.具体的な例としては「データベースコンテナ」の起動が遅いために「アプリケーションコンテナ」が接続エラーになってしまうことが挙げられる. depends_on とは Docker Compose には depends_on という設定項目があり,複数コンテナの「起動順序」を制御できるようになっている.しかし,あくまでこれは「起動順序」となり,必ずしも「準備完…

Secret を暗号化して Git 管理を可能にする「Sealed Secrets」を試した

… 検証環境 今回は Docker Desktop for Mac "Edge" を使って,以下の Kubernetes 環境で試す. $ kubectl version --short Client Version: v1.19.2 Server Version: v1.19.2 なお,10/19 にリリースされた v2.4.2.0 から Kubernetes 1.19.2 が使えるようになった! docs.docker.com インストール(クライアント側) 今回は Hom…

Mac でターミナル操作をレコーディングしてシュッと公開できる「asciinema」

…インストールできる.Docker を使って docker run コマンドで実行することもできる.今回インストールした最新バージョン v2.0.2 は2019年9月にリリースされているため,直近1年ほどはアップデートされていない? $ brew install asciinema $ asciinema --version asciinema 2.0.2 asciinema.org ログイン 📹 「asciinema」はサービス登録をしなくても使える.しかし,レコーディングデ…

Argo CD に入門するために「Getting Started」をカスタマイズしながら試した

…引用 前提 今回は Docker Desktop for Mac "Edge" を使って,以下の Kubernetes 環境で試す. $ kubectl version --short Client Version: v1.18.6 Server Version: v1.18.6 1. Install Argo CD 最初に Argo CD をセットアップする.リソースとしては Namespace / Service / Deployment / ConfigMap など.今…