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 | 退避戦略の設定。 |