幻魔ナイトブログ

主に絵、音楽、プログラミングなどについて書きます。

Kubernetes確認問題(Pod編)

f:id:MahiroN:20200725153751p:plain

Kubernetesリソースについての問題

問: Podを定義する時にspecの配下で必須となるパラメータを答えなさい。

containersとvolumes

問: containersについて主要なパラメータを6つ答えなさい

以下の6つ
- name
- image
- imagePullPolicy
- command
- args
- env
- volumeMounts:

問: imagePullPolicyにおいて「ローカルにない場合はリポジトリからイメージをダウンロードしたい」場合には次のうちどれに指定する?

  • Never
  • Always
  • IfNotPresent
InNotPresent

# 解説
Alwaysはいつもイメージをリポジトリからダウンロードする場合、
Neverは絶対にローカルのイメージを使用する時に指定します。

問: containersの中で定義する「command」と「args」はそれぞれdockerの何に対応するか?また、「env」はなにか?

command: dockerのエントリーポイントにあたる。
args: dockerのCMD(コマンド)にあたる。
env: 環境変数を引き渡すためのもの。ただしこれはdockerでは一般的でない。

問: spec配下のvolumeMountsで定義する必要があるのは何か?

nameとmountPath

# 解説と注意
nameで指定する名前は「volumes」で定義する。ストレージ名と一致させる必要があります。

問: volumes配下で定義するのは名前を示す「name」と「データの保存先」です。「データの保存先」のうちPodの実行サーバー上に保存したい場合は何を指定する?

hostPath

問: volumes配下で定義するのは名前を示す「name」と「データの保存先」です。「データの保存先」のうちnfsに保存したい場合は何を指定する?

nfs

問: volumes配下で定義するのは名前を示す「name」と「データの保存先」です。「データの保存先」のうちKubernetesリソースに保存したい場合は何を指定する?

configMap または secret

問: volumes配下で定義するのは名前を示す「name」と「データの保存先」です。「データの保存先」のうち空フォルダに保存したい場合は何を指定する?

emptyDir

問: volumesでhostPathを使用する場合、定義する必要があるものは何か?

「path」と「type」

# 解説
「path」はPodが実行されているサーバー上のどのパスに保存するかを指定します。
「type」はどういう種別で保存するかを指定します。

問: volumesでhostPathを使用する場合、既存のディレクトリを指定したい場合には「type」に何を指定すれば良いか?

Directory

# 解説
他にも以下の指定が可能です
・File: 存在するファイル
・DirectoryOrCreate: ディレクトリが存在しない場合は作成する
・FileOrCreate: ファイルが存在しない場合は作成する

問: volumesでnfsを使用する場合、定義する必要があるものは何か?

「server」と「path」

# 解説
「server」にはnfsのIPを指定します。
「path」にはnfs上の保存先のパスを指定します。

問: volumesでconfigMapまたはsercretをを使用する場合、定義する必要があるものは何か?

「name」と「items」

# 解説と補足
nameでconfigMapの具体的なリソース名を指定します。
configMapの「name」についてsecretの場合は「secretName」を指定します。

「items」は
name: TEST
items:
 - key:  test.cgf
    path: test.cgf
と指定し、items内でconfigMapのどの鍵を使用するか指定します。「path」は一般的に鍵と同じ値にします。

問題にしていないけれど補足 空ディレクトリを指定する場合には以下のようにします。

emptyDir: {}

お問合わせはこちら