Skip to content

APIリファレンス (v2) ​

パッケージ ​

apps.emqx.io/v2 ​

package v2 は apps v2 APIグループのAPIスキーマ定義を含みます。

リソースタイプ ​

BootstrapAPIKey ​

登場箇所:

フィールド説明デフォルトバリデーション
key stringパターン: ^[a-zA-Z\d-_]+$
secret string最大長: 128
最小長: 3
secretRef SecretRefEMQX APIキーを含むSecretエントリへの参照。

Config ​

登場箇所:

フィールド説明デフォルトバリデーション
mode string設定更新の適用方法を決定します。
* Merge: 新しい設定を既存の設定にマージします。
* Replace: 設定全体を置き換えます。
Merge列挙: [Merge Replace]
data stringHOCON形式のEMQX設定。
この設定はコンテナに base.hocon として供給されます。詳細は
ドキュメントを参照してください。

DSDBReplicationStatus ​

登場箇所:

フィールド説明デフォルトバリデーション
name stringデータベース名
numShards integerデータベースのシャード数
numShardReplicas integerシャードレプリカの総数
lostShardReplicas integer失われたサイトに属するシャードレプリカの総数
numTransitions integer現在のシャード所有権の遷移数
minReplicas integerデータベースシャードの最小レプリケーション係数
maxReplicas integerデータベースシャードの最大レプリケーション係数

DSReplicationStatus ​

データベースごとのDSレプリケーションステータスの概要。

登場箇所:

フィールド説明デフォルトバリデーション
dbs DSDBReplicationStatus 配列

EMQX ​

EMQXクラスターを表すカスタムリソース。

フィールド説明デフォルトバリデーション
apiVersion stringapps.emqx.io/v2
kind stringEMQX
metadata ObjectMetametadataのフィールドはKubernetes APIドキュメントを参照してください。
spec EMQXSpecEMQXクラスターの望ましい状態の仕様。
status EMQXStatusEMQXクラスターの現在の状態。

EMQXCoreTemplate ​

登場箇所:

フィールド説明デフォルトバリデーション
metadata ObjectMetametadataのフィールドはKubernetes APIドキュメントを参照してください。
spec EMQXCoreTemplateSpecコアノードの望ましい状態の仕様。
詳細: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

EMQXCoreTemplateSpec ​

登場箇所:

フィールド説明デフォルトバリデーション
nodeSelector object (keys:string, values:string)Podがノードに配置されるために満たすべきセレクター。
Podがスケジュールされるノードのラベルと一致する必要があります。
詳細: https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes/
nodeName string特定のノードにこのPodをスケジュールするリクエスト。
空でなければ、スケジューラーはリソース要件を満たすと仮定してこのノードにPodをスケジュールします。
affinity AffinityPod割り当てのためのアフィニティ。
参照: https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes-using-node-affinity/
tolerations Toleration 配列Podのトレランス。
指定された場合、Podは<key,value,effect>の組み合わせにマッチする任意のテイントを許容します。
topologySpreadConstraints TopologySpreadConstraint 配列指定されたトポロジー間でマッチするPodをどのように分散させるかを指定します。
replicas integerインスタンスの望ましい数。
コアノードの場合、各インスタンスは一貫したIDを持ちます。
2最小: 0
minAvailable IntOrString"selector"で選択されたPodのうち、少なくとも"minAvailable"が利用可能であれば強制退去が許可されます。
例えば、"100%"を指定するとすべての任意の強制退去を防止できます。
XIntOrString: {}
maxUnavailable IntOrString"selector"で選択されたPodのうち、最大で"maxUnavailable"が利用不可であれば強制退去が許可されます。
例えば0を指定するとすべての任意の強制退去を防止できます。これは"minAvailable"と相互排他的な設定です。
XIntOrString: {}
command string 配列エントリポイントの配列。シェル内で実行されません。
指定しない場合はコンテナイメージのENTRYPOINTが使用されます。
変数参照 $(VAR_NAME) はコンテナの環境変数で展開されます。解決できない場合は文字列は変更されません。$$は単一の$に変換され、$(VAR_NAME)構文のエスケープが可能です。
エスケープされた参照は変数の有無に関わらず展開されません。更新不可。
詳細: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
args string 配列エントリポイントへの引数。
指定しない場合はコンテナイメージのCMDが使用されます。
変数参照 $(VAR_NAME) はコンテナの環境変数で展開されます。解決できない場合は文字列は変更されません。$$は単一の$に変換され、$(VAR_NAME)構文のエスケープが可能です。
エスケープされた参照は変数の有無に関わらず展開されません。
詳細: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
ports ContainerPort 配列コンテナから公開するポートのリスト。
ここでポートを公開すると、システムはコンテナのネットワーク接続に関する追加情報を得ますが、主に情報提供目的です。ここでポートを指定しなくても、そのポートの公開は妨げられません。コンテナ内で0.0.0.0アドレスでリッスンしているポートはネットワークからアクセス可能です。
env EnvVar 配列コンテナ内で設定する環境変数のリスト。
envFrom EnvFromSource 配列コンテナ内の環境変数を設定するためのソースのリスト。
ソース内のキーはC_IDENTIFIERである必要があります。無効なキーはコンテナ起動時にイベントとして報告されます。複数のソースに同じキーが存在する場合、最後のソースの値が優先されます。
Envで重複キーが定義されている場合はそちらが優先されます。
resources ResourceRequirementsこのコンテナが要求する計算リソース。
詳細: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
podSecurityContext PodSecurityContextPodレベルのセキュリティ属性と共通のコンテナ設定。{ fsGroup:1000 fsGroupChangePolicy:Always runAsGroup:1000 runAsUser:1000 supplementalGroups:[1000] }
containerSecurityContext SecurityContextコンテナ実行時のセキュリティオプション。
設定されている場合、SecurityContextのフィールドはPodSecurityContextの対応するフィールドを上書きします。
詳細: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
{ runAsGroup:1000 runAsNonRoot:true runAsUser:1000 }
initContainers Container 配列Podに属する初期化コンテナのリスト。
初期化コンテナは通常のコンテナ起動前に順に実行されます。初期化コンテナが失敗するとPodは失敗とみなされ、restartPolicyに従って処理されます。初期化コンテナと通常コンテナの名前は全てユニークでなければなりません。
初期化コンテナはLifecycleアクション、Readinessプローブ、Livenessプローブ、Startupプローブを持てません。
スケジューリング時には、各リソースタイプの最大要求/制限値を計算し、それを通常コンテナの合計値と比較して最大値を使用します。制限も同様に適用されます。
詳細: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
extraContainers Container 配列メインコンテナと並行して実行する追加コンテナ。
extraVolumes Volume 配列Podに提供する追加ボリューム。
extraVolumeMounts VolumeMount 配列追加ボリュームをメインコンテナにマウントする方法を指定。
livenessProbe Probeコンテナの生存確認のための定期的なプローブ。
プローブに失敗するとコンテナは再起動されます。
詳細: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
{ failureThreshold:3 httpGet:map[path:/status port:dashboard] initialDelaySeconds:60 periodSeconds:30 }
readinessProbe Probeコンテナのサービス準備完了確認のための定期的なプローブ。
プローブに失敗するとコンテナはサービスエンドポイントから除外されます。
詳細: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
{ failureThreshold:12 httpGet:map[path:/status port:dashboard] initialDelaySeconds:10 periodSeconds:5 }
startupProbe ProbePodが正常に初期化されたことを示すプローブ。
指定されている場合、成功するまで他のプローブは実行されません。
このプローブが失敗すると、livenessProbe失敗時と同様にPodは再起動されます。
Podのライフサイクル開始時にデータのロードやキャッシュのウォームアップに時間がかかる場合に、通常の状態とは異なるパラメータを設定できます。
詳細: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
lifecycle Lifecycleコンテナのライフサイクルイベントに対して管理システムが取るべきアクション。
volumeClaimTemplates PersistentVolumeClaimSpecコアノードのデータストレージ用PVC仕様。
注意: このフィールド名は一貫性がなく、実際には単なるPersistentVolumeClaimSpecです。

EMQXNode ​

登場箇所:

フィールド説明デフォルトバリデーション
name stringノード名
podName string対応するPod名
status stringノードの状態
otpRelease stringノードが動作しているErlang/OTPのバージョン
version stringEMQXのバージョン
role stringノードの役割。coreまたはreplicant
sessions integerMQTTセッション数
connections integer接続中のMQTTクライアント数

EMQXNodesStatus ​

登場箇所:

フィールド説明デフォルトバリデーション
replicas integerレプリカの総数。
readyReplicas integer準備完了のレプリカ数。
currentRevision string対応するコアまたはレプリカントセットの現在のリビジョン。
currentReplicas integer現在のリビジョンで動作しているレプリカ数。
updateRevision string対応するコアまたはレプリカントセットの更新リビジョン。
現在のリビジョンと異なる場合、セットは更新中です。
updateReplicas integer更新リビジョンで動作しているレプリカ数。
collisionCount integer

EMQXReplicantTemplate ​

登場箇所:

フィールド説明デフォルトバリデーション
metadata ObjectMetametadataのフィールドはKubernetes APIドキュメントを参照してください。
spec EMQXReplicantTemplateSpecレプリカントノードの望ましい状態の仕様。
詳細: https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

EMQXReplicantTemplateSpec ​

登場箇所:

フィールド説明デフォルトバリデーション
nodeSelector object (keys:string, values:string)Podがノードに配置されるために満たすべきセレクター。
Podがスケジュールされるノードのラベルと一致する必要があります。
詳細: https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes/
nodeName string特定のノードにこのPodをスケジュールするリクエスト。
空でなければ、スケジューラーはリソース要件を満たすと仮定してこのノードにPodをスケジュールします。
affinity AffinityPod割り当てのためのアフィニティ。
参照: https://kubernetes.io/docs/tasks/configure-pod-container/assign-pods-nodes-using-node-affinity/
tolerations Toleration 配列Podのトレランス。
指定された場合、Podは<key,value,effect>の組み合わせにマッチする任意のテイントを許容します。
topologySpreadConstraints TopologySpreadConstraint 配列指定されたトポロジー間でマッチするPodをどのように分散させるかを指定します。
replicas integerインスタンスの望ましい数。
コアノードの場合、各インスタンスは一貫したIDを持ちます。
2最小: 0
minAvailable IntOrString"selector"で選択されたPodのうち、少なくとも"minAvailable"が利用可能であれば強制退去が許可されます。
例えば、"100%"を指定するとすべての任意の強制退去を防止できます。
XIntOrString: {}
maxUnavailable IntOrString"selector"で選択されたPodのうち、最大で"maxUnavailable"が利用不可であれば強制退去が許可されます。
例えば0を指定するとすべての任意の強制退去を防止できます。これは"minAvailable"と相互排他的な設定です。
XIntOrString: {}
command string 配列エントリポイントの配列。シェル内で実行されません。
指定しない場合はコンテナイメージのENTRYPOINTが使用されます。
変数参照 $(VAR_NAME) はコンテナの環境変数で展開されます。解決できない場合は文字列は変更されません。$$は単一の$に変換され、$(VAR_NAME)構文のエスケープが可能です。
エスケープされた参照は変数の有無に関わらず展開されません。更新不可。
詳細: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
args string 配列エントリポイントへの引数。
指定しない場合はコンテナイメージのCMDが使用されます。
変数参照 $(VAR_NAME) はコンテナの環境変数で展開されます。解決できない場合は文字列は変更されません。$$は単一の$に変換され、$(VAR_NAME)構文のエスケープが可能です。
エスケープされた参照は変数の有無に関わらず展開されません。
詳細: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell
ports ContainerPort 配列コンテナから公開するポートのリスト。
ここでポートを公開すると、システムはコンテナのネットワーク接続に関する追加情報を得ますが、主に情報提供目的です。ここでポートを指定しなくても、そのポートの公開は妨げられません。コンテナ内で0.0.0.0アドレスでリッスンしているポートはネットワークからアクセス可能です。
env EnvVar 配列コンテナ内で設定する環境変数のリスト。
envFrom EnvFromSource 配列コンテナ内の環境変数を設定するためのソースのリスト。
ソース内のキーはC_IDENTIFIERである必要があります。無効なキーはコンテナ起動時にイベントとして報告されます。複数のソースに同じキーが存在する場合、最後のソースの値が優先されます。
Envで重複キーが定義されている場合はそちらが優先されます。
resources ResourceRequirementsこのコンテナが要求する計算リソース。
詳細: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
podSecurityContext PodSecurityContextPodレベルのセキュリティ属性と共通のコンテナ設定。{ fsGroup:1000 fsGroupChangePolicy:Always runAsGroup:1000 runAsUser:1000 supplementalGroups:[1000] }
containerSecurityContext SecurityContextコンテナ実行時のセキュリティオプション。
設定されている場合、SecurityContextのフィールドはPodSecurityContextの対応するフィールドを上書きします。
詳細: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
{ runAsGroup:1000 runAsNonRoot:true runAsUser:1000 }
initContainers Container 配列Podに属する初期化コンテナのリスト。
初期化コンテナは通常のコンテナ起動前に順に実行されます。初期化コンテナが失敗するとPodは失敗とみなされ、restartPolicyに従って処理されます。初期化コンテナと通常コンテナの名前は全てユニークでなければなりません。
初期化コンテナはLifecycleアクション、Readinessプローブ、Livenessプローブ、Startupプローブを持てません。
スケジューリング時には、各リソースタイプの最大要求/制限値を計算し、それを通常コンテナの合計値と比較して最大値を使用します。制限も同様に適用されます。
詳細: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
extraContainers Container 配列メインコンテナと並行して実行する追加コンテナ。
extraVolumes Volume 配列Podに提供する追加ボリューム。
extraVolumeMounts VolumeMount 配列追加ボリュームをメインコンテナにマウントする方法を指定。
livenessProbe Probeコンテナの生存確認のための定期的なプローブ。
プローブに失敗するとコンテナは再起動されます。
詳細: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
{ failureThreshold:3 httpGet:map[path:/status port:dashboard] initialDelaySeconds:60 periodSeconds:30 }
readinessProbe Probeコンテナのサービス準備完了確認のための定期的なプローブ。
プローブに失敗するとコンテナはサービスエンドポイントから除外されます。
詳細: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
{ failureThreshold:12 httpGet:map[path:/status port:dashboard] initialDelaySeconds:10 periodSeconds:5 }
startupProbe ProbePodが正常に初期化されたことを示すプローブ。
指定されている場合、成功するまで他のプローブは実行されません。
このプローブが失敗すると、livenessProbe失敗時と同様にPodは再起動されます。
Podのライフサイクル開始時にデータのロードやキャッシュのウォームアップに時間がかかる場合に、通常の状態とは異なるパラメータを設定できます。
詳細: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes
lifecycle Lifecycleコンテナのライフサイクルイベントに対して管理システムが取るべきアクション。

EMQXSpec ​

EMQXSpecはEMQXの望ましい状態を定義します。

登場箇所:

フィールド説明デフォルトバリデーション
image stringEMQXコンテナイメージ。
詳細: https://kubernetes.io/docs/concepts/containers/images
imagePullPolicy PullPolicyコンテナイメージのプルポリシー。
Always、Never、IfNotPresentのいずれか。
:latestタグ指定時はデフォルトでAlways、それ以外はIfNotPresent。
詳細: https://kubernetes.io/docs/concepts/containers/images#updating-images
imagePullSecrets LocalObjectReference 配列このPodSpecで使用されるイメージをプルするために同じネームスペース内のSecretへの参照のリスト。
指定された場合、これらのSecretは個別のプラー実装に渡されます。
詳細: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod
serviceAccountName stringServiceAccount名。
管理されたReplicaSetsやStatefulSetsは認証のために指定されたServiceAccountに関連付けられます。
詳細: https://kubernetes.io/docs/concepts/security/service-accounts
bootstrapAPIKeys BootstrapAPIKey 配列EMQX APIにアクセスするためのブートストラップAPIキー。
更新不可。
config ConfigEMQX設定。
clusterDomain stringKubernetesクラスターのドメイン。cluster.local
revisionHistoryLimit integerロールバックを可能にするために保持する古いReplicaSets、StatefulSets、PersistentVolumeClaimsの数。3
updateStrategy UpdateStrategyクラスターアップグレード戦略の設定。{ type:Recreate }
coreTemplate EMQXCoreTemplateEMQXコアノードを実行するPodのテンプレート。{ spec:map[replicas:2] }
replicantTemplate EMQXReplicantTemplateEMQXレプリカントノードを実行するPodのテンプレート。
dashboardServiceTemplate ServiceTemplateEMQXダッシュボードを公開するServiceのテンプレート。
ダッシュボードServiceは常にEMQXコアノードのセットを指します。
listenersServiceTemplate ServiceTemplate有効なEMQXリスナーを公開するServiceのテンプレート。
リスナーServiceは、有効かつ存在する場合はEMQXレプリカントノードのセットを指します。
そうでなければEMQXコアノードのセットを指します。

EMQXStatus ​

EMQXStatusはEMQXの観測された状態を定義します。

登場箇所:

フィールド説明デフォルトバリデーション
conditions Condition 配列EMQXカスタムリソースの現在の状態を表す条件。
coreNodes EMQXNode 配列クラスター内の各コアノードの状態。
coreNodesStatus EMQXNodesStatusコアノードセットの概要状態。
replicantNodes EMQXNode 配列クラスター内の各レプリカントノードの状態。
replicantNodesStatus EMQXNodesStatusレプリカントノードセットの概要状態。
nodeEvacuationsStatus NodeEvacuationStatus 配列クラスター内のアクティブなノード避難の状態。
dsReplication DSReplicationStatusEMQX Durable Storageレプリケーションの状態。

EvacuationStrategy ​

登場箇所:

フィールド説明デフォルトバリデーション
connEvictRate integerクライアント切断率(秒あたりの数)。
EMQXノード避難のconn-evict-rateと同じ。
1000最小: 1
sessEvictRate integerセッション避難率(秒あたりの数)。
EMQXノード避難のsess-evict-rateと同じ。
1000最小: 1
waitTakeover integerセッション避難開始までの待機時間(秒)。
EMQXノード避難のwait-takeoverと同じ。
10最小: 0
waitHealthCheck integerノードがロードバランサーからアクティブなバックエンドノードリストから除外されるのを待つ時間(秒)。
EMQXノード避難のwait-health-checkと同じ。
60最小: 0

KeyRef ​

登場箇所:

フィールド説明デフォルトバリデーション
secretName stringSecretオブジェクトの名前。
secretKey stringSecretデータ内のエントリ。パターン: ^[a-zA-Z\d-_]+$

NodeEvacuationStatus ​

登場箇所:

フィールド説明デフォルトバリデーション
nodeName string避難中のノード名
state string避難状態
sessionRecipients string 配列セッション受信先
sessionEvictionRate integerセッション避難率(秒あたりのセッション数)。
connectionEvictionRate integer接続避難率(秒あたりの接続数)。
initialSessions integerこのノード上の初期セッション数
initialConnections integerこのノードへの初期接続数

SecretRef ​

登場箇所:

フィールド説明デフォルトバリデーション
key KeyRefEMQX APIキーを含むSecretエントリへの参照。
secret KeyRefEMQX APIキーのシークレットを含むSecretエントリへの参照。

ServiceTemplate ​

登場箇所:

フィールド説明デフォルトバリデーション
enabled booleanServiceを作成するかどうかを指定します。true
metadata ObjectMetametadataのフィールドはKubernetes APIドキュメントを参照してください。
spec ServiceSpecServiceの望ましい状態の仕様。
https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

UpdateStrategy ​

登場箇所:

フィールド説明デフォルトバリデーション
type stringクラスターアップグレードの実行方法を決定します。
* Recreate: ブルーグリーンアップグレードを実施。
Recreate列挙: [Recreate]
initialDelaySeconds integer接続避難開始までの秒数。10最小: 0
evacuationStrategy EvacuationStrategy避難戦略の設定。