プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • Kubernetes
  • 【Kubernetes】マニフェストファイルの構成、「ConfigMap」、「Secret…
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【Kubernetes】マニフェストファイルの構成、「ConfigMap」、「Secret(設定用リソース)」

08.14

  • miyabisan2
  • 3件のコメント

この記事は2分で読めます

例

種別、メタデータ、コンテナの三部構成になっています。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: nginx
  name: nginx-1
spec:
  containers:
  - image: wrong-nginx
    name: nginx
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}

種別

設定を変えることは基本ない。

1
2
apiVersion: v1
kind: Pod

apiVersion

kindによって指定できるapiバージョンが異なります。(Podの場合はv1と指定します。)

以下のようなAPIドキュメントを読んで探します。

https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.24/

GroupがCoreの場合は記述の省略が可能です。

kind

Podなどリソースの種別を指定します。

メタデータ

設定を変えることは基本ない。

1
2
3
4
5
metadata:
  creationTimestamp: null
  labels:
    run: nginx
  name: nginx-1

name

一意の名前をつける。(Pod名などになる。)

namespace

何もなければ「default」が指定されます。

labels

任意でキーバリューのペアを指定することができます。

コンテナ

1
2
3
4
5
6
7
spec:
  containers:
  - image: wrong-nginx
    name: nginx
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always

containers

コンテナを複数指定できます。

image

バージョン指定がない場合はlatest(最新版)指定になるので思わぬ誤動作につながる可能性があるので注意が必要です。

imagePullPolicy

Always

毎回レポジトリからダウンロードを行う。

Never

ローカルのイメージを利用する。

IfNotPresent

ローカルに存在すればローカルを利用。存在しなければレポジトリからダウンロードする。

name

複数あるコンテナを特定するための名前をつけます。

command

コンテナに対する処理を記述する。Dockerで言えばENTRYPOINTが対応します。

args

コンテナに対する処理を記述する。Dockerで言えばCMDが対応します。

env

環境変数を渡せる。Kubernetesではこれで環境設定を渡すことが多い。

volumes

name

ボリューム名

hostPath

保存先。Pod実行サーバー上

nfs

保存先。NFSサーバー上

configMap

保存先。Kubernetesリソース

secret

保存先。Kubernetesリソース

emptyDir

保存先。空フォルダ

ConfigMapとは?

設定情報を保存するためのリソース。機密性のないデータをキーと値のペアで保存してPodから参照可能

メリット

コンテナイメージと環境固有の設定を切り離す。アプリケーションがポータブルになります。

例

  • アプリケーション接続先のDBのホスト名
  • conf

使用方法

  • コンテナの環境変数の設定
  • 読み取り専用のボリュームを作成し、コンテナから読み込む

Secret(設定用リソース)とは?

機密情報(パスワード、トークンなど)を保存管理してPodから参照可能。データの中身はbase64エンコードされています。

使い方はConfigMapにかなり似ています。

種類

  • Opaque(一番よく使われる)
  • kubernetes.io/dockercfg
  • kubernetes.io/basic-auth

例

  • 接続先DBのパスワード
  • Dockerレジストリのアクセス権限

使用方法

  • ボリューム内のファイルとしてPod内のコンテナにマウントする。
  • コンテナの環境変数の設定
  • kubeletがDockerイメージをpull際に使用
スポンサーリンク
  • 2022 08.14
  • miyabisan2
  • 3件のコメント
  • Kubernetes
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2022 07.23

    【Kubernetes】「kubectl」のよく使うコマンド

  2. 2020 11.12

    【Kubernetes】基本的な用語

  3. 2022 07.24

    【Kubernetes】「Kubernetesオブジェクト」、「ワークロードリソース」について

  4. 2022 07.23

    【Kubenetes】「kubectl」について

  5. 2019 12.15

    【Kubernetes】「Kubernetes(クバネティス)」の概要

  6. 2020 11.12

    【Kubernetes】アーキテクチャ

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【Kubernetes】「Namespace」について

【Linux】「Alpine Linux」とは?

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー