0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

🔰Kubernetes入門 - リソース/ツール解説

Posted at

KubernetesでIaCに用いる主なリソースやツール

以下は、KubernetesでIaCを実現する際によく利用されるリソースやツールを、その定義方法概要意義ない場合の問題点とともにまとめた一覧です。とりあえず思いついた分だけ。。。

リソースおよびツール一覧

名前 定義方法 (YAML) 概要 意義 ない場合の問題点
Namespace yaml<br>apiVersion: v1<br>kind: Namespace<br>metadata:<br> name: my-namespace Kubernetesリソースを論理的に分割する仕組み。 リソースの分離、アクセス制御、ポリシー適用を容易にする。 複数チームやプロジェクト間でリソース競合や不適切なアクセスが発生する可能性がある。
ConfigMap yaml<br>apiVersion: v1<br>kind: ConfigMap<br>metadata:<br> name: my-config<br>data:<br> key: value 環境設定データを格納するリソース。 アプリケーションコードから環境設定を分離し、再利用性を向上。 設定値がハードコーディングされるため、デプロイ環境ごとにコード変更が必要になる。
Secret yaml<br>apiVersion: v1<br>kind: Secret<br>metadata:<br> name: my-secret<br>data:<br> username: bXktdXNlcm5hbWU= 機密情報(パスワード、トークンなど)を格納するリソース。 セキュアに機密情報を管理できる。 機密情報が平文で扱われ、セキュリティリスクが高まる。
Ingress yaml<br>apiVersion: networking.k8s.io/v1<br>kind: Ingress<br>metadata:<br> name: my-ingress<br>spec:<br> rules:<br> - host: example.com HTTP/HTTPSトラフィックをPodにルーティングするリソース。 トラフィック管理を容易にし、外部アクセスをセキュアに構成可能。 外部からのアクセス設定が複雑になり、管理負荷が増える。
Deployment yaml<br>apiVersion: apps/v1<br>kind: Deployment<br>metadata:<br> name: my-app<br>spec:<br> replicas: 3 アプリケーションの状態(スケール、アップデート戦略など)を管理するリソース。 宣言的なアプリケーション管理を可能にし、スケーラビリティや可用性を向上。 手動でコンテナを管理する必要があり、運用コストが増大する。
Gateway API yaml<br>apiVersion: gateway.networking.k8s.io/v1beta1<br>kind: Gateway<br>metadata:<br> name: my-gateway<br>spec:<br> gatewayClassName: my-gateway-class<br> listeners:<br> - protocol: HTTP<br> port: 80 Kubernetesのネットワーク層を定義する新しい標準API。Ingressの進化版。 複雑なネットワークトポロジーやマルチテナント環境での柔軟なトラフィック管理が可能。 Ingressでは対応が難しい高度なルーティング要件や、複数のリスナーの管理が煩雑になる。
Istio yaml<br>apiVersion: networking.istio.io/v1beta1<br>kind: VirtualService<br>metadata:<br> name: my-service<br>spec:<br> hosts:<br> - example.com サービス間通信を制御するサービスメッシュツール。 サービス通信の観測性、セキュリティ、リトライ/フェイルオーバーを提供。 サービス間通信の管理が複雑化し、トラブルシューティングが困難になる。
Gatekeeper yaml<br>apiVersion: templates.gatekeeper.sh/v1beta1<br>kind: ConstraintTemplate<br>metadata:<br> name: k8srequiredlabels<br>spec:<br> crd:<br> spec:<br> names:<br> kind: K8sRequiredLabels Open Policy Agent (OPA)をKubernetesに統合し、ポリシーの強制を行うツール。 CI/CDの一環としてポリシー適用を自動化し、セキュリティやコンプライアンスを向上。 ポリシー違反のリソースがデプロイされ、セキュリティや安定性に影響を与える。
Helm yaml<br>name: my-chart<br>version: 1.0.0<br>dependencies:<br> - name: redis<br> repository: https://charts.bitnami.com/bitnami<br> version: 14.8.8 Kubernetesリソースをパッケージ化して管理するツール。 再利用性とデプロイの簡素化を実現し、複雑なアプリケーションを効率的に管理可能。 マニフェスト管理が手作業になるため、ミスや運用コストが増加する。
ArgoCD yaml<br>apiVersion: argoproj.io/v1alpha1<br>kind: Application<br>metadata:<br> name: my-app<br>spec:<br> source:<br> repoURL: https://github.com/my-repo<br> path: ./my-app GitOpsに基づきKubernetesマニフェストを管理するツール。 IaCの自動化とバージョン管理が容易になり、信頼性とスピードが向上。 手動デプロイが必要となり、人為的なミスや不整合が発生しやすくなる。
Prometheus yaml<br>apiVersion: monitoring.coreos.com/v1<br>kind: ServiceMonitor<br>metadata:<br> name: my-monitor<br>spec:<br> selector:<br> matchLabels:<br> app: my-app メトリクス収集とモニタリングを行うツール。 クラスタやアプリケーションの可視化と監視を可能にし、障害検知を迅速化。 障害発生時の原因特定が困難になり、ダウンタイムが長引くリスクが高まる。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?