APIリファレンス (v2)
パッケージ
apps.emqx.io/v2
package v2 は apps v2 APIグループのAPIスキーマ定義を含みます。
リソースタイプ
BootstrapAPIKey
登場箇所:
| フィールド | 説明 | デフォルト | バリデーション |
|---|---|---|---|
key string | パターン: ^[a-zA-Z\d-_]+$ | ||
secret string | 最大長: 128 最小長: 3 | ||
secretRef SecretRef | EMQX APIキーを含むSecretエントリへの参照。 |
Config
登場箇所:
| フィールド | 説明 | デフォルト | バリデーション |
|---|---|---|---|
mode string | 設定更新の適用方法を決定します。 * Merge: 新しい設定を既存の設定にマージします。* Replace: 設定全体を置き換えます。 | Merge | 列挙: [Merge Replace] |
data string | HOCON形式の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 string | apps.emqx.io/v2 | ||
kind string | EMQX | ||
metadata ObjectMeta | metadataのフィールドはKubernetes APIドキュメントを参照してください。 | ||
spec EMQXSpec | EMQXクラスターの望ましい状態の仕様。 | ||
status EMQXStatus | EMQXクラスターの現在の状態。 |
EMQXCoreTemplate
登場箇所:
| フィールド | 説明 | デフォルト | バリデーション |
|---|---|---|---|
metadata ObjectMeta | metadataのフィールドは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 Affinity | Pod割り当てのためのアフィニティ。 参照: 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 PodSecurityContext | Podレベルのセキュリティ属性と共通のコンテナ設定。 | { 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 Probe | Podが正常に初期化されたことを示すプローブ。 指定されている場合、成功するまで他のプローブは実行されません。 このプローブが失敗すると、 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 string | EMQXのバージョン | ||
role string | ノードの役割。coreまたはreplicant | ||
sessions integer | MQTTセッション数 | ||
connections integer | 接続中のMQTTクライアント数 |
EMQXNodesStatus
登場箇所:
| フィールド | 説明 | デフォルト | バリデーション |
|---|---|---|---|
replicas integer | レプリカの総数。 | ||
readyReplicas integer | 準備完了のレプリカ数。 | ||
currentRevision string | 対応するコアまたはレプリカントセットの現在のリビジョン。 | ||
currentReplicas integer | 現在のリビジョンで動作しているレプリカ数。 | ||
updateRevision string | 対応するコアまたはレプリカントセットの更新リビジョン。 現在のリビジョンと異なる場合、セットは更新中です。 | ||
updateReplicas integer | 更新リビジョンで動作しているレプリカ数。 | ||
collisionCount integer |
EMQXReplicantTemplate
登場箇所:
| フィールド | 説明 | デフォルト | バリデーション |
|---|---|---|---|
metadata ObjectMeta | metadataのフィールドは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 Affinity | Pod割り当てのためのアフィニティ。 参照: 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 PodSecurityContext | Podレベルのセキュリティ属性と共通のコンテナ設定。 | { 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 Probe | Podが正常に初期化されたことを示すプローブ。 指定されている場合、成功するまで他のプローブは実行されません。 このプローブが失敗すると、 livenessProbe失敗時と同様にPodは再起動されます。Podのライフサイクル開始時にデータのロードやキャッシュのウォームアップに時間がかかる場合に、通常の状態とは異なるパラメータを設定できます。 詳細: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes | ||
lifecycle Lifecycle | コンテナのライフサイクルイベントに対して管理システムが取るべきアクション。 |
EMQXSpec
EMQXSpecはEMQXの望ましい状態を定義します。
登場箇所:
| フィールド | 説明 | デフォルト | バリデーション |
|---|---|---|---|
image string | EMQXコンテナイメージ。 詳細: 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 string | ServiceAccount名。 管理されたReplicaSetsやStatefulSetsは認証のために指定されたServiceAccountに関連付けられます。 詳細: https://kubernetes.io/docs/concepts/security/service-accounts | ||
bootstrapAPIKeys BootstrapAPIKey 配列 | EMQX APIにアクセスするためのブートストラップAPIキー。 更新不可。 | ||
config Config | EMQX設定。 | ||
clusterDomain string | Kubernetesクラスターのドメイン。 | cluster.local | |
revisionHistoryLimit integer | ロールバックを可能にするために保持する古いReplicaSets、StatefulSets、PersistentVolumeClaimsの数。 | 3 | |
updateStrategy UpdateStrategy | クラスターアップグレード戦略の設定。 | { type:Recreate } | |
coreTemplate EMQXCoreTemplate | EMQXコアノードを実行するPodのテンプレート。 | { spec:map[replicas:2] } | |
replicantTemplate EMQXReplicantTemplate | EMQXレプリカントノードを実行するPodのテンプレート。 | ||
dashboardServiceTemplate ServiceTemplate | EMQXダッシュボードを公開する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 DSReplicationStatus | EMQX 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 string | Secretオブジェクトの名前。 | ||
secretKey string | Secretデータ内のエントリ。 | パターン: ^[a-zA-Z\d-_]+$ |
NodeEvacuationStatus
登場箇所:
| フィールド | 説明 | デフォルト | バリデーション |
|---|---|---|---|
nodeName string | 避難中のノード名 | ||
state string | 避難状態 | ||
sessionRecipients string 配列 | セッション受信先 | ||
sessionEvictionRate integer | セッション避難率(秒あたりのセッション数)。 | ||
connectionEvictionRate integer | 接続避難率(秒あたりの接続数)。 | ||
initialSessions integer | このノード上の初期セッション数 | ||
initialConnections integer | このノードへの初期接続数 |
SecretRef
登場箇所:
| フィールド | 説明 | デフォルト | バリデーション |
|---|---|---|---|
key KeyRef | EMQX APIキーを含むSecretエントリへの参照。 | ||
secret KeyRef | EMQX APIキーのシークレットを含むSecretエントリへの参照。 |
ServiceTemplate
登場箇所:
| フィールド | 説明 | デフォルト | バリデーション |
|---|---|---|---|
enabled boolean | Serviceを作成するかどうかを指定します。 | true | |
metadata ObjectMeta | metadataのフィールドはKubernetes APIドキュメントを参照してください。 | ||
spec ServiceSpec | Serviceの望ましい状態の仕様。 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 | 避難戦略の設定。 |