4.6. 他の API オブジェクト
4.6.1. LimitRange
制限範囲は、Kubernetes namespace のリソースに設定される最小/最大の制限を実施するメカニズムを提供します。
制限範囲を namespace に追加することで、個別の Pod またはコンテナーによる CPU およびメモリーの最小および最大使用量を適用できます。
4.6.2. ResourceQuota
Kubernetes は、namespace で作成されるオブジェクト数と、namespace 内のオブジェクト間で要求されるリソース合計量の両方を制限できます。これにより、namespace 内の複数のチームで単一の Kubernetes クラスターを共有でき、あるチームによって別のチームがクラスターリソース不足になることを防ぐことができます。
4.6.3. リソース
Kubernetes の Resource
は、Pod またはコンテナーによって要求され、割り当てられ、消費されるものです。例として、メモリー (RAM)、CPU、ディスク時間、およびネットワーク帯域幅があります。
詳細は、『開発者ガイド』を参照してください。
4.6.4. Secret
シークレットは、キー、パスワード、および証明書などの機密情報のストレージです。これらは所定の Pod でアクセスできますが、定義とは別に保持されます。
4.6.5. PersistentVolume
永続ボリュームは、クラスター管理者によってプロビジョニングされるインフラストラクチャーのオブジェクト (PersistentVolume
) です。永続ボリュームは、ステートフルなアプリケーションの耐久性のあるストレージを提供します。
4.6.6. PersistentVolumeClaim
PersistentVolumeClaim
オブジェクトは、Pod 作成者によるストレージの要求です。Kubernetes は、要求を利用可能なボリュームのプールに対して一致させ、それらをバインドします。この要求は、Pod によってボリュームとして使用されます。Kubernetes はボリュームがこれを要求する Pod と同じノードで利用可能であることを確認します。
4.6.6.1. カスタムリソース
カスタムリソース は、API を拡張するか、独自の API をプロジェクトまたはクラスターに導入できるようにする Kubernetes API の拡張です。
4.6.7. OAuth オブジェクト
4.6.7.1. OAuthClient
OAuthClient
は、RFC 6749, section 2 に説明されているように OAuth クライアントを表します。
以下の OAuthClient
オブジェクトは自動的に作成されます。
| Web コンソールのトークンを要求するために使用されるクライアント |
| 対話式ログインを処理できるユーザーエージェントで /oauth/token/request でトークンを要求するために使用されるクライアント |
| WWW-Authenticate チャレンジを処理できるユーザーエージェントでトークンを要求するために使用されるクライアント |
OAuthClient
オブジェクト定義
kind: "OAuthClient" accessTokenMaxAgeSeconds: null 1 apiVersion: "oauth.openshift.io/v1" metadata: name: "openshift-web-console" 2 selflink: "/oapi/v1/oAuthClients/openshift-web-console" resourceVersion: "1" creationTimestamp: "2015-01-01T01:01:01Z" respondWithChallenges: false 3 secret: "45e27750-a8aa-11e4-b2ea-3c970e4b7ffe" 4 redirectURIs: - "https://localhost:8443" 5
- 1
- アクセストークンの有効期間 (秒単位)(以下の説明を参照してください)。
- 2
name
は OAuth 要求のclient_id
パラメーターとして使用されます。- 3
respondWithChallenges
がtrue
に設定される場合、/oauth/authorize
への認証されていない要求は、設定される認証方法でサポートされている場合にはWWW-Authenticate
チャレンジを生じさせます。- 4
secret
パラメーターの値は、認可コードフローのclient_secret
パラメーターとして使用されます。- 5
- 絶対 URI は、
redirectURIs
セクションに 1 つ以上配置できます。認可要求と共に送信されるredirect_uri
パラメーターには、指定のredirectURIs
のいずれかをプレフィックスとして付加する必要があります。
accessTokenMaxAgeSeconds
値は、個別の OAuth クライアントのマスター設定に指定されている accessTokenMaxAgeSeconds
値を上書きします。この値をクライアントに設定すると、他のクライアントの有効期間に影響を与えることなく、クライアントのアクセストークンの有効期間を長く設定できます。
-
null
の場合、マスター設定ファイルのデフォルト値が使用されます。 -
0
に設定される場合、トークンは有効期限切れになりません。 -
0
よりも大きな値に設定される場合、クライアント用に発行されるトークンには指定された有効期限が設定されます。たとえば、accessTokenMaxAgeSeconds: 172800
により、トークンは発行後 48 時間後に有効期限切れになります。
4.6.7.2. OAuthClientAuthorization
OAuthClientAuthorization
は、特定の OAuthClient
に特定のスコープが設定された OAuthAccessToken
が付与されることについての User
による承認を表します。
OAuthClientAuthorization
オブジェクトの作成は、OAuth
サーバーへの承認要求時に実行されます。
OAuthClientAuthorization
オブジェクト定義
kind: "OAuthClientAuthorization" apiVersion: "oauth.openshift.io/v1" metadata: name: "bob:openshift-web-console" resourceVersion: "1" creationTimestamp: "2015-01-01T01:01:01-00:00" clientName: "openshift-web-console" userName: "bob" userUID: "9311ac33-0fde-11e5-97a1-3c970e4b7ffe" scopes: []
4.6.7.3. OAuthAuthorizeToken
OAuthAuthorizeToken
は、RFC 6749, section 1.3.1
に説明されているように OAuth 承認コードを表します。
OAuthAuthorizeToken
は、RFC 6749, section 4.1.1 で説明されているように /oauth/authorize エンドポイントへの要求によって作成されます。
OAuthAuthorizeToken
は次に、RFC 6749, section 4.1.3
に説明されているように、/oauth/token エンドポイントへの要求で OAuthAccessToken を取得するために使用できます。
OAuthAuthorizeToken
オブジェクト定義
kind: "OAuthAuthorizeToken" apiVersion: "oauth.openshift.io/v1" metadata: name: "MDAwYjM5YjMtMzM1MC00NDY4LTkxODItOTA2OTE2YzE0M2Fj" 1 resourceVersion: "1" creationTimestamp: "2015-01-01T01:01:01-00:00" clientName: "openshift-web-console" 2 expiresIn: 300 3 scopes: [] redirectURI: "https://localhost:8443/console/oauth" 4 userName: "bob" 5 userUID: "9311ac33-0fde-11e5-97a1-3c970e4b7ffe" 6
- 1
name
は、OAuthAccessToken を交換するために認可コードとして使用されるトークン名を表します。- 2
clientName
値は、このトークンを要求した OAuthClient です。- 3
expiresIn
値は creationTimestamp の有効期限 (秒単位) です。- 4
redirectURI
値は、このトークンが作成された認可フローでユーザーがリダイレクトされた場所です。- 5
userName
は、このトークンが OAuthAccessToken の取得を許可するユーザーの名前を表します。- 6
userUID
は、このトークンが OAuthAccessToken の取得を許可するユーザーの UID を表します。
4.6.7.4. OAuthAccessToken
OAuthAccessToken
は、RFC 6749, section 1.4
に説明されているように、OAuth アクセストークンを表します。
OAuthAccessToken
は、RFC 6749, section 4.1.3 に説明されているように、/oauth/token エンドポイントへの要求によって作成されます。
アクセストークンは、API に対して認証を行うためにベアラートークンとして使用されます。
OAuthAccessToken
オブジェクト定義
kind: "OAuthAccessToken" apiVersion: "oauth.openshift.io/v1" metadata: name: "ODliOGE5ZmMtYzczYi00Nzk1LTg4MGEtNzQyZmUxZmUwY2Vh" 1 resourceVersion: "1" creationTimestamp: "2015-01-01T01:01:02-00:00" clientName: "openshift-web-console" 2 expiresIn: 86400 3 scopes: [] redirectURI: "https://localhost:8443/console/oauth" 4 userName: "bob" 5 userUID: "9311ac33-0fde-11e5-97a1-3c970e4b7ffe" 6 authorizeToken: "MDAwYjM5YjMtMzM1MC00NDY4LTkxODItOTA2OTE2YzE0M2Fj" 7
- 1
name
は、API に対して認証を行うためにベアラートークンとして使用されるトークン名です。- 2
clientName
値は、このトークンを要求した OAuthClient です。- 3
expiresIn
値は creationTimestamp の有効期限 (秒単位) です。- 4
redirectURI
は、このトークンが作成された認可フローでユーザーがリダイレクトされた場所です。- 5
userName
は、このトークンが認証を許可するユーザーを表します。- 6
userUID
は、このトークンが認証を許可するユーザーの UID を表します。- 7
authorizeToken
は、このトークンを取得するために使用される OAuthAuthorizationToken の名前です (ある場合)。
4.6.8. ユーザーオブジェクト
4.6.8.1. Identity
ユーザーが OpenShift Online にログインする際に、設定されたアイデンティティープロバイダーを使用して実行されます。これにより、ユーザーのアイデンティティーが決定され、その情報が OpenShift Online に提供されます。
次に OpenShift Online は UserIdentityMapping
でその Identity
を検索します。
-
Identity
がすでに存在する場合でも、これがUser
にマップされていないと、ログインは失敗します。 -
Identity
がすでに存在し、これがUser
にマップされている場合、ユーザーには、マップされたUser
のOAuthAccessToken
が付与されます。 -
Identity
が存在しない場合、Identity
、User
、およびUserIdentityMapping
が作成され、ユーザーには、マップされたUser
のOAuthAccessToken
が付与されます。
Identity
オブジェクト定義
kind: "Identity" apiVersion: "user.openshift.io/v1" metadata: name: "anypassword:bob" 1 uid: "9316ebad-0fde-11e5-97a1-3c970e4b7ffe" resourceVersion: "1" creationTimestamp: "2015-01-01T01:01:01-00:00" providerName: "anypassword" 2 providerUserName: "bob" 3 user: name: "bob" 4 uid: "9311ac33-0fde-11e5-97a1-3c970e4b7ffe" 5
4.6.8.2. ユーザー
User
はシステムのアクターを表します。ユーザーには、ロールをユーザーまたはグループに追加してパーミッションが付与されます。
ユーザーオブジェクトは初回ログイン時に自動的に作成されるか、API で作成できます。
/
、:
、および %
が含まれる OpenShift Online はサポートされません。
User
オブジェクト定義
kind: "User" apiVersion: "user.openshift.io/v1" metadata: name: "bob" 1 uid: "9311ac33-0fde-11e5-97a1-3c970e4b7ffe" resourceVersion: "1" creationTimestamp: "2015-01-01T01:01:01-00:00" identities: - "anypassword:bob" 2 fullName: "Bob User" 3
4.6.8.3. UserIdentityMapping
UserIdentityMapping
は Identity
を User
にマップします。
UserIdentityMapping
を作成し、更新し、または削除することにより、Identity
および User
オブジェクトの対応するフィールドが変更されます。
Identity
は単一の User
にのみマップされるため、特定のアイデンティティーとしてログインすると、User
が明確に判別されます。
User
には複数のアイデンティティーをマップできます。これにより、複数のログイン方法で同じ User
を識別できます。
UserIdentityMapping
オブジェクト定義
kind: "UserIdentityMapping"
apiVersion: "user.openshift.io/v1"
metadata:
name: "anypassword:bob" 1
uid: "9316ebad-0fde-11e5-97a1-3c970e4b7ffe"
resourceVersion: "1"
identity:
name: "anypassword:bob"
uid: "9316ebad-0fde-11e5-97a1-3c970e4b7ffe"
user:
name: "bob"
uid: "9311ac33-0fde-11e5-97a1-3c970e4b7ffe"
- 1
UserIdentityMapping
名は、マップされたIdentity
名に一致します。
4.6.8.4. グループ
Group
は、システム内のユーザーの一覧を表します。グループには、ロールをユーザーまたはグループに追加してパーミッションが付与されます。
Group
オブジェクト定義
kind: "Group" apiVersion: "user.openshift.io/v1" metadata: name: "developers" 1 creationTimestamp: "2015-01-01T01:01:01-00:00" users: - "bob" 2