Kush's Wiki
Kubernetes
#
Cloud Native
Docker
のようなアプリケーション
コンテナ
のオーケストレーションを行うオープンソースのプラットフォーム
CNCF
graduated project
Loading...
Fetching description...
Kustomize
Kubernetesの設定ファイルをYAMLで記述する際、 kustomization.yaml によってリソース定義の集約等を行うことができるInfrastructure as Codeツール 環境ごとに共通化できる設定(base)、環境ごとの差分設定(overlays)を扱い、設定ファイルの記述を最低限にする 利用パターン Deployment等に指定するイメージを最新のバージョンで置きかえるようなケース > kustomize edit set image $BEFORE_IMAGE_NAME=$AFTER_IMAGE_NAME Kustomize - Kubernetes native configuration management
Knative Eventing
Knativeにおいて、KubernetesのCRDによってイベント駆動アーキテクチャを実現するコンポーネント イベントはCloudEvents仕様に準拠し、標準のHTTP POSTリクエストで送受信される https://knative.dev/docs/eventing/
KYAML
Kubernetes 1.34からアルファ版公開されたKubernetes向けのYAMLフォーマット
kube-scheduler
Helm
Container Storage Interface
CSI コンテナオーケストラレーション(主にKubernetes)でのコンテナ化されたワークロードから任意のストレージシステムを使用可能にするための仕様とその実体であるProtocol Buffers(gRPC通信前提)定義を提供する container-storage-interface/spec
サービスメッシュ
#Network #Observability #Security #API Architecture マイクロサービスで行われるようなサービス間通信をルーティング、監視、保護する機能を提供する Kubernetesにおいてはクラスタ単位でサービスメッシュを構築する サービスメッシュはクラスタ内の全てのサービス間通信を制御するコントロールプレーンとコントロールプレーンで指定された作業が実行されるデータプレーン(サービス)の2つの基本要素を持つ。
Aikido Security/
Platform
#Security "Unified Security Platform" を標榜する商用 SaaS(カテゴリは ASPM / Application Security Posture Management)。10 種類超のセキュリティスキャンを単一 UI に集約する スキャン対象: SAST / SCA / DAST / シークレット / IaC / コンテナ / CSPM / マルウェア / Code Quality / Outdated Software Terraform / CloudFormation / Kubernetes マニフェストの設定ミス検出にも対応 特徴 AutoFix / Bulk Fix で修正 PR を自動生成 AI Pentesting Agents による DAST 自動化(200+ エージェント) Aikido Intel - 依存パッケージのマルウェア検出 TL;DR Summary で脆弱性の要約と対応指針を提示 https://www.aikido.dev/
Istio/
AuthorizationPolicy
#Security/Authorization Istioにおいてアプリケーション(L7)認可の役割を担うリソース KubernetesのCRDによって用意されており、Network policyに比べ柔軟でHTTP特有の設定が可能 Istio / Authorization Policy
Istio/
Telemetory
#Observability Kubernetes/Istio環境のサービスメッシュ内において、テレメトリーが生成される方法を定義するCRD 例としてOpenTelemetryのOpenTelemetry Collectorによるプロバイダを指定することができる https://istio.io/latest/docs/reference/config/telemetry/
Knative Serving
Knativeにおいて、KubernetesのCRDによって4種類のリソースを定義しアプリケーションの提供を行う Serviceの別APIのようなサービスディスカバリパターン Scale to zeroや自動スケーリングによるリソース効率の最適化が主な目的 https://github.com/knative/specs/blob/main/specs/serving/overview.md
Argo
Helmfile
Helmfileは、Helmチャートをデプロイするための宣言的な仕様を提供するツールです。宣言的な構成管理はInfrastructure as Codeの実践であり、GitOpsワークフローに適し、複数のHelmリリースを効率的に管理することができます。 概要 Helmfileを使用することで、Kubernetes環境における複数のHelmチャートのデプロイメントを、YAMLファイルで宣言的に管理できます。これにより、環境ごとの設定の違いを明確にし、再現性の高いデプロイメントを実現します。 主な機能 複数のHelmリリースを一つのファイルで管理 環境ごとの値のオーバーライド リリース間の依存関係の定義 デプロイの差分確認(diff機能) https://helmfile.readthedocs.io/en/latest/ DevOps
Dapr
Argo CD
Google Cloud/
GKE
Google Cloud/
Gateway
#Cloud Native Google CloudのGKE上でGateway APIを適用する 外部Gatewayをデプロイする時は、GatewayClassに gke-l7-global-external-managed を指定した上で、Certificate Managerのような手段でセキュリティを担保する Kubernetes APIの NamedAddress に静的IPアドレスを指定することができる 方法 Gateway のデプロイ | Google Kubernetes Engine (GKE) | Google Cloud
Istio
Secrets Store CSI Driver
Kubernetesコミュニティによってメンテナンスされているドライバ Container Storage Interface(CSI)のAPIを実装しており、様々なクラウドベンダーのSMSにアクセスできる
クラウドネイティブで実現する マイクロサービス開発・運用 実践ガイド
Important Components for Kubernetes
#Observability OpenTelemetry CollectorをKubernetes上で構築するコンポーネント群の説明 Prometeus Receiverの例ではDaemonSet(agent)またはDeployment(gateway)を用いた実装のサンプルコードが置かれている https://opentelemetry.io/docs/platforms/kubernetes/collector/components/
Kubernetesで実践する Platform Engineering
Kubernetesパターン 第2版
CloudNativePG
#Cloud Native #Data Engineering Kubernetes上でPostgreSQLクラスタのライフサイクルを管理するOperator プライマリ/スタンバイ構成によるストリーミングレプリケーションで高可用性を実現 外部HAツール(Patroni等)に依存せずKubernetes APIと直接統合 CNCF sandbox project https://cloudnative-pg.io/
GitOps
Weaveworks社によって提唱された、#Cloud Nativeの文脈においてgitを用いた設定管理を行うような#Continuous Delivery手法 対象は主にKubernetesとなる
Argo Rollouts
OpenTelemetry/
OpenTelemetryCollector
#Observability Kubernetes上にOpenTelemetryのCollectorを構築するためのCRD/Operator https://github.com/open-telemetry/opentelemetry-operator?tab=readme-ov-file
Kubernetes Icons Set
#Documentation Kubernetesの各リソース等のアイコンを公開しているリポジトリ 様々なダイアグラムサービスのデータセットに利用されている https://github.com/kubernetes/community/tree/master/icons
KEDA
etcd
Dapr Agents
#Cloud Native Kubernetes NativeなDaprプロジェクト上でLLMを利用した会話型エージェントを開発できる DaprのワークフローによるメッセージングベースのAIエージェント連携も可能 https://dapr.github.io/dapr-agents/
Platform Engineeringの2つの「IDP」~Internal Developer Platformとは?
Platform Engineering Internal Developer Platform Kubernetes RBAC Internal Developer Portal https://codezine.jp/article/detail/19376
Node affinity
Kubernetesのkube-schedulerにおいて、必須ルールと推奨ルールを設定しNodesへの割り当てを決定させる Assigning Pods to Nodes | Kubernetes
Beyond the Twelve-Factor App
#Software Design #Cloud Native #Security/Authentication #Security/Authorization The Twelve-Factor Appを現代のクラウドネイティブ環境向けに拡張した方法論。Kevin Hoffmanによって著され、オリジナルの12要因を15要因に拡張している。 追加された3つの新要因 2. API First - サービス設計において、実装前にAPIインターフェースを定義し契約駆動開発を促進 #API Architecture 14. Telemetry - メトリクス、ログ、トレースの収集を通じた包括的な監視機能 #Observability 15. Authentication and Authorization - 認証・認可をアプリケーション設計の第一級の関心事として組み込む Authentication / Authorization 既存要因の改訂 Kubernetes ConfigMap/Secretsなどコンテナ時代の設定管理や、Infrastructure as Code(IaC)による環境構築など、現代的なベストプラクティスを反映した注釈が追加されている。 https://www.vmware.com/docs/ebook-beyond-the-12-factor-app
Amazon/
EKS
Elastic Kubernetes Service #Cloud Native AWSクラウド上でKubernetesを実行するマネージドサービス、Kubernetes準拠であるため既存のKubernetesアプリケーションと互換性がある Kubernetes Serviceでのロードバランシングに加え、Elastic Load Balancingの使用をサポートしている What is Amazon EKS? - Amazon EKS
Ambassador Edge Stack
Datadog Agent
#Observability Datadogへホストのログを送信するソフトウェア。 各ホストの環境別にいくつかのインストール手段が用意されている 例としてKubernetesへのインストール方法は以下 Kubernetes に Datadog Agent をインストールする https://docs.datadoghq.com/ja/agent/?tab=Linux
Kubernetes Network Policy Recipes
Network policyの実装例をまとめたリポジトリ ahmetb/kubernetes-network-policy-recipes Kubernetes
Cilium
#Network #Cloud Native #Observability #Security https://cilium.io/ eBPF技術を活用したクラウドネイティブなネットワーキングソフトウェア KubernetesのCNIとしてネットワークの接続、保護、監視を提供する ユースケースとして以下のような例がある L4 ロードバランシング https://cilium.io/use-cases/load-balancer/ kube-proxy https://cilium.io/use-cases/kube-proxy/ サービスメッシュ https://cilium.io/use-cases/service-mesh/ Gateway API https://cilium.io/use-cases/gateway-api/ Ingress https://cilium.io/use-cases/ingress/
kube-proxy
Kubernetes/
PodDisruptionBudget
PDB 定常的に使用可能にしたいPod数を指定するような仕組み シングルトンなServiceを構築するようなケースで常に1台を使用可能にする、といった用途がある Disruption | Kubernetes Kubernetes
Kubernetes/
DNS
#Network KubernetesにおけるDNS。PodとServiceをスケジューリングし、Service名によってURIを解決できる https://kubernetes.io/ja/docs/concepts/services-networking/dns-pod-service/
Kubernetes/
Annotation
Labelの利用がそぐわないケースで代替となるメタデータの指定方法、ツールやライブラリからパラメータのように利用されることを想定している Labelと異なりインデックスはされない Kubernetes
Kubernetes/
Controller
Kubernetesクラスタ内でDeploymentによってシングルトンに起動され、リソースへ観察、分析、アクションを行うような役割 コントローラの監視対象となるのは以下 Label Annotation ConfigMap Controllers | Kubernetes
Kubernetes/
コンテナライフサイクルフック
Kubernetes上のコンテナのライフサイクルとして開始時(ENTRYPOINT)と終了時にフックを命令できる機能 コンテナライフサイクルフック | Kubernetes
Kubernetes/
ClusterRoleBinding
Kubernetes/
Initコンテナ
#Cloud Native Podと一緒に定義可能な初期化を行うコンテナ サイドカーでも同挙動は実現可能だが、ただ一度のみ実行されるのでリソースを調整しやすい Init Containers | Kubernetes Kubernetes
Kubernetes/
ユーザ
Kubernetesにおけるサブジェクト(主体)の一つ
Kubernetes/
ExternalSecret
CRDの1つで、外部のSMSから取得した値をSecretとして同期するための宣言を行うリソース External Secrets Operator (ESO) によって導入される。SecretStore / ClusterSecretStoreで接続先プロバイダを定義し、ExternalSecretが同期対象の項目とKubernetes Secretへのマッピングを記述する ExternalSecret | external-secrets Kubernetes
Kubernetes/
ConfigMap
Kubernetes/
ReplicaSet
Kubernetes/
Probe
#Continuous Delivery Pod上で定期的に実行されるコンテナの診断、ヘルスチェック チェックの方法として以下の4つがある gRPC HTTP TCP Socket Exec 任意のコマンドを実行し、成功の返り値0を期待する Probeには戦略を示すようないくつかの種類が存在する Podのライフサイクル | Kubernetes Kubernetes
Kubernetes/
Pod Security Standards
PSS #Security Podが満たすべきセキュリティ標準 3つのセキュリティプロファイルにグループ分けされており上から順に制限が厳しくなっていく Privileged Baseline Restricted Pod Security Standards | Kubernetes Kubernetes
Kubernetes/
ServiceAccount
Kubernetes/
Security
#Security Kubernetesクラスタとワークロードを保護するためのセキュリティ対策の総称 4Csセキュリティモデルに基づき、Cloud、Cluster、Container、Codeの各レイヤーで多層防御を実装する 主なセキュリティ機能: アクセス制御: ServiceAccount、Role、RBAC Pod保護: Security Context、Pod Security Standards、Pod Security Admission ネットワーク: Network policy、サービスメッシュ シークレット管理: Secret https://kubernetes.io/docs/concepts/security/
Kubernetes/
Service
Kubernetes/
Deployment
Kubernetes/
Inter-pod affinity and anti-affinity
kube-schedulerにおいて、Podアフィニティでは同一Nodes内に配置されるPodを指定することができる 合わせてPodアンチアフィニティでは同一ノードに配置されるべきでないPodを指定できる Assigning Pods to Nodes | Kubernetes Kubernetes
Kubernetes/
Nodes
Kubernetes/
Label
リソースのメタデータとしてリソースを特定するために用いられる Labelにはインデックスが貼られるため高速な検索が可能 Kubernetes
Kubernetes/
Downward API
Podのメタデータを環境変数を通じてコンテナに渡すようなケースで利用できるAPI Downward API | Kubernetes Kubernetes
Kubernetes/
Readiness Probe
Probeに失敗するとトラフィックを受け取らないようにし、アプリケーションが自分自身で復帰するのを期待する readnessProbeをいつ使うべきか? Readiness Probeを定義する Kubernetes
Kubernetes/
Topology Spread Constraint
kube-schedulerにおいて、Inter-pod affinity and anti-affinityでは解決できないようなRolling Update時の不均等なPod配置を許容する Pod Topology Spread Constraints | Kubernetes Kubernetes
Kubernetes/
リソース
RESTfulなKubernetes APIでリソースとして扱われるオブジェクト
Kubernetes/
Ingress
Kubernetes/
HorizontalPodAutoscalar
Kubernetes/
CRD
Kubernetes/
Secret
Kubernetes/
Liveness Probe
Probeに失敗するとコンテナを再起動する livenessProbeをいつ使うべきか? HTTPリクエストによるLiveness Probeを定義する Kubernetes
Kubernetes/
Security Context
Pod定義に#Security文脈の設定を追加するAPI 主にLinuxベースの以下のような観点に対する制御を行う Non-root User Linux Capabilities Configure a Security Context for a Pod or Container | Kubernetes Kubernetes
Kubernetes/
Immutable Configuration
Kubernetesの設定管理において、設定ファイルを隠蔽する専用のコンテナを用意し、Initコンテナと emptyDir を組み合わせることでアプリケーションコンテナに設定ファイルをロードさせるパターン ConfigMapと異なり、設定ファイルのコンテナイメージバージョン管理によってイミュータブルに扱うことができる
Kubernetes/
CronJob
Kubernetes/
Namespace
1つのクラスタ内に存在するリソース群を名前空間として分離することができる機能 Deployment,Serviceなどは名前空間内に配置できるが、PersistentVolumeなどはクラスタ全体に適用されるため名前空間内に配置できない Namespaces | Kubernetes Kubernetes
Kubernetes/
Gateway API
#API Architecture #Network #Cloud Native L4/L7を扱うKubernetes公式のAPIゲートウェイ GatewayClass Gateway HTTPRoute の3つを定義し実装する GatewayClassはGKEのようなクラウドサービスが用意するケースがあり、外部or内部を選択できる Introduction - Kubernetes Gateway API
Kubernetes/
Pod Security Admission
PSA #Security Pod Security Standardsを違反する可能性がある際のアクションを実行する アクションは以下の3つ Warn Audit Enforce Pod Security Admission | Kubernetes Kubernetes
Kubernetes/
DaemonSet
Kubernetes/
Headless Service
Serviceの定義方法の一つ clusterIP .spec.clusterIP を "None" に指定することで、PodのIPを直接参照するような設定にしkube-proxyはServiceに関与しなくなる Service | Kubernetes Kubernetes
Kubernetes/
Startup Probe
Probeにおいてアプリケーションの起動にとても長い時間がかかる場合、Startup Probeが成功した後にLiveness ProbeまたはReadiness Probeを開始するような設定ができる startupProbeをいつ使うべきか? Startup Probeを使用して、起動の遅いコンテナを保護する Kubernetes
Kubernetes/
GracePeriod
Podを終了する際、プロセスがSIGTERMシグナルを受け取ってからSIGKILLで強制終了されるまでの猶予期間 デフォルトは30秒で、terminationGracePeriodSecondsで設定可能 主な処理フロー: Podが「Terminating」状態になりSIGTERMシグナルが送信される アプリケーションがGracePeriod内に終了すれば即座に次の段階へ GracePeriod経過後も実行中の場合、SIGKILLで強制終了 preStopフックもGracePeriod内で実行される https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-termination Kubernetes
Kubernetes/
Volume
Kubernetes/
Taints and Tolerations
kube-schedulerにおいて、Node affinityのようなPodに対する設定ではなくNodesに対する設定によってPodの配置を決定する Taints and Tolerations | Kubernetes Kubernetes
Kubernetes/
PersistentVolume
Kubernetes/
Role
Kubernetes/
Operator
CRDによるカスタムリソースとそれを操作するControllerを共に使うパターン Operator pattern | Kubernetes Kubernetes
Kubernetes/
Network policy
Kubernetes/
StatefulSet
Kubernetes/
ClusterRole
Kubernetes/
Job
Kubernetes/
RoleBinding
Kubernetes/
Pod
Kubernetes/
Recommended Labels
#Cloud Native Kubernetesリソースを標準的な方法で記述するための共通Labelセット ツール間の相互運用性を実現し、アプリケーションをクエリ可能な方法で記述する 標準ラベル app.kubernetes.io プレフィックスを使用 app.kubernetes.io/name - アプリケーション名 app.kubernetes.io/instance - 一意なインスタンス識別子 app.kubernetes.io/version - 現在のバージョン app.kubernetes.io/component - アーキテクチャ内のコンポーネント app.kubernetes.io/part-of - 上位レベルのアプリケーション名 app.kubernetes.io/managed-by - 管理ツール https://kubernetes.io/docs/concepts/overview/working-with-objects/common-labels/
Trivy
#Security #Cloud Native #Continuous Integration コンテナイメージ、Kubernetes、IaC、リポジトリを対象とした包括的な脆弱性・設定ミス・シークレットスキャナー Aqua Securityによって開発されたオープンソースツール 主な機能: 脆弱性スキャン - コンテナイメージ、ファイルシステム、gitリポジトリ IaC設定ミス検出 - Dockerfile、Kubernetesマニフェスト、Terraformなど シークレット検出 - APIキー、パスワード等の機密情報 SBOM生成 - ソフトウェア部品表の作成と検出 ライセンススキャン DevSecOpsのシフトレフトセキュリティを実現し、CI/#Continuous Deliveryパイプラインに統合可能 SASTツールの一種として静的解析を実行する。--format sarif で SARIF 出力に対応し GitHub Code Scanning に取り込める https://trivy.dev/ https://github.com/aquasecurity/trivy