@@ -66,6 +66,32 @@ kubectl [command] [TYPE] [NAME] [flags]
66
66
67
67
ヘルプが必要な場合は、ターミナルウィンドウから` kubectl help ` を実行してください。
68
68
69
+ ## クラスター内認証と名前空間のオーバーライド {#in-cluster-authentication-and-namespace-overrides}
70
+
71
+ デフォルトでは、` kubectl ` は最初にPod内で動作しているか、つまりクラスター内で動作しているかどうかを判断します。まず、` KUBERNETES_SERVICE_HOST ` と` KUBERNETES_SERVICE_PORT ` の環境変数を確認し、サービスアカウントのトークンファイルが` /var/run/secrets/kubernetes.io/serviceaccount/token ` に存在するかどうかを確認します。3つともクラスター内で見つかった場合、クラスター内認証とみなされます。
72
+
73
+ 後方互換性を保つため、クラスター内認証時に` POD_NAMESPACE ` 環境変数が設定されている場合には、サービスアカウントトークンのデフォルトの名前空間が上書きされます。名前空間のデフォルトに依存しているすべてのマニフェストやツールは、この影響を受けます。
74
+
75
+ ** ` POD_NAMESPACE ` 環境変数**
76
+
77
+ ` POD_NAMESPACE ` 環境変数が設定されている場合、名前空間に属するリソースのCLI操作は、デフォルトで環境変数の値になります。例えば、変数に` seattle ` が設定されている場合、` kubectl get pods ` は、` seattle ` 名前空間のPodを返します。これは、Podが名前空間に属するリソースであり、コマンドで名前空間が指定されていないためです。` kubectl api-resources ` の出力を見て、リソースが名前空間に属するかどうかを判断してください。
78
+
79
+ 明示的に` --namespace <value> ` を使用すると、この動作は上書きされます。
80
+
81
+ ** kubectlによるServiceAccountトークンの処理方法**
82
+
83
+ 以下の条件がすべて成立した場合、
84
+ * ` /var/run/secrets/kubernetes.io/serviceaccount/token ` にマウントされたKubernetesサービスアカウントのトークンファイルがある
85
+ * ` KUBERNETES_SERVICE_HOST ` 環境変数が設定されている
86
+ * ` KUBERNETES_SERVICE_PORT ` 環境変数が設定されている
87
+ * kubectlコマンドラインで名前空間を明示的に指定しない
88
+
89
+ kubectlはクラスター内で実行されているとみなして、そのServiceAccountの名前空間(これはPodの名前空間と同じです)を検索し、その名前空間に対して機能します。これは、クラスターの外の動作とは異なります。kubectlがクラスターの外で実行され、名前空間を指定しない場合、kubectlコマンドは、クライアント構成の現在のコンテキストに設定されている名前空間に対して動作します。kubectlのデフォルトの名前空間を変更するには、次のコマンドを使用できます。
90
+
91
+ ``` shell
92
+ kubectl config set-context --current --namespace=< namespace-name>
93
+ ```
94
+
69
95
## 操作
70
96
71
97
以下の表に、` kubectl ` のすべての操作の簡単な説明と一般的な構文を示します。
@@ -93,6 +119,7 @@ kubectl [command] [TYPE] [NAME] [flags]
93
119
` diff ` | ` kubectl diff -f FILENAME [flags] ` | ファイルまたは標準出力と、現在の設定との差分を表示します。
94
120
` drain ` | ` kubectl drain NODE [options] ` | メンテナンスの準備のためにNodeをdrainします。
95
121
` edit ` | <code >kubectl edit (-f FILENAME | ; TYPE NAME | ; TYPE/NAME) [ flags] </code > | デファルトのエディタを使い、サーバー上の1つ以上のリソースリソースの定義を編集し、更新します。
122
+ ` events ` | ` kubectl events ` | イベントを一覧表示します。
96
123
` exec ` | ` kubectl exec POD [-c CONTAINER] [-i] [-t] [flags] [-- COMMAND [args...]] ` | Pod内のコンテナに対して、コマンドを実行します。
97
124
` explain ` | ` kubectl explain [--recursive=false] [flags] ` | 様々なリソースのドキュメントを取得します。例えば、Pod、Node、Serviceなどです。
98
125
` expose ` | <code >kubectl expose (-f FILENAME | ; TYPE NAME | ; TYPE/NAME) [ --port=port] [ --protocol=TCP| ; UDP] [ --target-port=number-or-name] [ --name=name] [ --external-ip=external-ip-of-service] [ --type=type] [ flags] </code > | ReplicationController、Service、Podを、新しいKubernetesサービスとして公開します。
@@ -122,59 +149,66 @@ kubectl [command] [TYPE] [NAME] [flags]
122
149
123
150
以下の表に、サポートされているすべてのリソースと、省略されたエイリアスの一覧を示します。
124
151
125
- (この出力は` kubectl api-resources ` から取得でき、Kubernetes 1.13.3時点で正確でした 。)
152
+ (この出力は` kubectl api-resources ` から取得でき、Kubernetes 1.25.0時点で正確でした 。)
126
153
127
- | リソース名 | 短縮名 | APIグループ | 名前空間に属するか | リソースの種類 |
154
+ | リソース名 | 短縮名 | APIバージョン | 名前空間に属するか | リソースの種類 |
128
155
| ---| ---| ---| ---| ---|
129
- | ` bindings ` | | | true | Binding|
130
- | ` componentstatuses ` | ` cs ` | | false | ComponentStatus |
131
- | ` configmaps ` | ` cm ` | | true | ConfigMap |
132
- | ` endpoints ` | ` ep ` | | true | Endpoints |
133
- | ` limitranges ` | ` limits ` | | true | LimitRange |
134
- | ` namespaces ` | ` ns ` | | false | Namespace |
135
- | ` nodes ` | ` no ` | | false | Node |
136
- | ` persistentvolumeclaims ` | ` pvc ` | | true | PersistentVolumeClaim |
137
- | ` persistentvolumes ` | ` pv ` | | false | PersistentVolume |
138
- | ` pods ` | ` po ` | | true | Pod |
139
- | ` podtemplates ` | | | true | PodTemplate |
140
- | ` replicationcontrollers ` | ` rc ` | | true| ReplicationController |
141
- | ` resourcequotas ` | ` quota ` | | true | ResourceQuota |
142
- | ` secrets ` | | | true | Secret |
143
- | ` serviceaccounts ` | ` sa ` | | true | ServiceAccount |
144
- | ` services ` | ` svc ` | | true | Service |
145
- | ` mutatingwebhookconfigurations ` | | admissionregistration.k8s.io | false | MutatingWebhookConfiguration |
146
- | ` validatingwebhookconfigurations ` | | admissionregistration.k8s.io | false | ValidatingWebhookConfiguration |
147
- | ` customresourcedefinitions ` | ` crd ` , ` crds ` | apiextensions.k8s.io | false | CustomResourceDefinition |
148
- | ` apiservices ` | | apiregistration.k8s.io | false | APIService |
149
- | ` controllerrevisions ` | | apps | true | ControllerRevision |
150
- | ` daemonsets ` | ` ds ` | apps | true | DaemonSet |
151
- | ` deployments ` | ` deploy ` | apps | true | Deployment |
152
- | ` replicasets ` | ` rs ` | apps | true | ReplicaSet |
153
- | ` statefulsets ` | ` sts ` | apps | true | StatefulSet |
154
- | ` tokenreviews ` | | authentication.k8s.io | false | TokenReview |
155
- | ` localsubjectaccessreviews ` | | authorization.k8s.io | true | LocalSubjectAccessReview |
156
- | ` selfsubjectaccessreviews ` | | authorization.k8s.io | false | SelfSubjectAccessReview |
157
- | ` selfsubjectrulesreviews ` | | authorization.k8s.io | false | SelfSubjectRulesReview |
158
- | ` subjectaccessreviews ` | | authorization.k8s.io | false | SubjectAccessReview |
159
- | ` horizontalpodautoscalers ` | ` hpa ` | autoscaling | true | HorizontalPodAutoscaler |
160
- | ` cronjobs ` | ` cj ` | batch | true | CronJob |
161
- | ` jobs ` | | batch | true | Job |
162
- | ` certificatesigningrequests ` | ` csr ` | certificates.k8s.io | false | CertificateSigningRequest |
163
- | ` leases ` | | coordination.k8s.io | true | Lease |
164
- | ` events ` | ` ev ` | events.k8s.io | true | Event |
165
- | ` ingresses ` | ` ing ` | extensions | true | Ingress |
166
- | ` networkpolicies ` | ` netpol ` | networking.k8s.io | true | NetworkPolicy |
167
- | ` poddisruptionbudgets ` | ` pdb ` | policy | true | PodDisruptionBudget |
168
- | ` podsecuritypolicies ` | ` psp ` | policy | false | PodSecurityPolicy |
169
- | ` clusterrolebindings ` | | rbac.authorization.k8s.io | false | ClusterRoleBinding |
170
- | ` clusterroles ` | | rbac.authorization.k8s.io | false | ClusterRole |
171
- | ` rolebindings ` | | rbac.authorization.k8s.io | true | RoleBinding |
172
- | ` roles ` | | rbac.authorization.k8s.io | true | Role |
173
- | ` priorityclasses ` | ` pc ` | scheduling.k8s.io | false | PriorityClass |
174
- | ` csidrivers ` | | storage.k8s.io | false | CSIDriver |
175
- | ` csinodes ` | | storage.k8s.io | false | CSINode |
176
- | ` storageclasses ` | ` sc ` | storage.k8s.io | false | StorageClass |
177
- | ` volumeattachments ` | | storage.k8s.io | false | VolumeAttachment |
156
+ | ` bindings ` | | v1 | true | Binding |
157
+ | ` componentstatuses ` | ` cs ` | v1 | false | ComponentStatus |
158
+ | ` configmaps ` | ` cm ` | v1 | true | ConfigMap |
159
+ | ` endpoints ` | ` ep ` | v1 | true | Endpoints |
160
+ | ` events ` | ` ev ` | v1 | true | Event |
161
+ | ` limitranges ` | ` limits ` | v1 | true | LimitRange |
162
+ | ` namespaces ` | ` ns ` | v1 | false | Namespace |
163
+ | ` nodes ` | ` no ` | v1 | false | Node |
164
+ | ` persistentvolumeclaims ` | ` pvc ` | v1 | true | PersistentVolumeClaim |
165
+ | ` persistentvolumes ` | ` pv ` | v1 | false | PersistentVolume |
166
+ | ` pods ` | ` po ` | v1 | true | Pod |
167
+ | ` podtemplates ` | | v1 | true | PodTemplate |
168
+ | ` replicationcontrollers ` | ` rc ` | v1 | true | ReplicationController |
169
+ | ` resourcequotas ` | ` quota ` | v1 | true | ResourceQuota |
170
+ | ` secrets ` | | v1 | true | Secret |
171
+ | ` serviceaccounts ` | ` sa ` | v1 | true | ServiceAccount |
172
+ | ` services ` | ` svc ` | v1 | true | Service |
173
+ | ` mutatingwebhookconfigurations ` | | admissionregistration.k8s.io/v1 | false | MutatingWebhookConfiguration |
174
+ | ` validatingwebhookconfigurations ` | | admissionregistration.k8s.io/v1 | false | ValidatingWebhookConfiguration |
175
+ | ` customresourcedefinitions ` | ` crd,crds ` | apiextensions.k8s.io/v1 | false | CustomResourceDefinition |
176
+ | ` apiservices ` | | apiregistration.k8s.io/v1 | false | APIService |
177
+ | ` controllerrevisions ` | | apps/v1 | true | ControllerRevision |
178
+ | ` daemonsets ` | ` ds ` | apps/v1 | true | DaemonSet |
179
+ | ` deployments ` | ` deploy ` | apps/v1 | true | Deployment |
180
+ | ` replicasets ` | ` rs ` | apps/v1 | true | ReplicaSet |
181
+ | ` statefulsets ` | ` sts ` | apps/v1 | true | StatefulSet |
182
+ | ` tokenreviews ` | | authentication.k8s.io/v1 | false | TokenReview |
183
+ | ` localsubjectaccessreviews ` | | authorization.k8s.io/v1 | true | LocalSubjectAccessReview |
184
+ | ` selfsubjectaccessreviews ` | | authorization.k8s.io/v1 | false | SelfSubjectAccessReview |
185
+ | ` selfsubjectrulesreviews ` | | authorization.k8s.io/v1 | false | SelfSubjectRulesReview |
186
+ | ` subjectaccessreviews ` | | authorization.k8s.io/v1 | false | SubjectAccessReview |
187
+ | ` horizontalpodautoscalers ` | ` hpa ` | autoscaling/v2 | true | HorizontalPodAutoscaler |
188
+ | ` cronjobs ` | ` cj ` | batch/v1 | true | CronJob |
189
+ | ` jobs ` | | batch/v1 | true | Job |
190
+ | ` certificatesigningrequests ` | ` csr ` | certificates.k8s.io/v1 | false | CertificateSigningRequest |
191
+ | ` leases ` | | coordination.k8s.io/v1 | true | Lease |
192
+ | ` endpointslices ` | | discovery.k8s.io/v1 | true | EndpointSlice |
193
+ | ` events ` | ` ev ` | events.k8s.io/v1 | true | Event |
194
+ | ` flowschemas ` | | flowcontrol.apiserver.k8s.io/v1beta2 | false | FlowSchema |
195
+ | ` prioritylevelconfigurations ` | | flowcontrol.apiserver.k8s.io/v1beta2 | false | PriorityLevelConfiguration |
196
+ | ` ingressclasses ` | | networking.k8s.io/v1 | false | IngressClass |
197
+ | ` ingresses ` | ` ing ` | networking.k8s.io/v1 | true | Ingress |
198
+ | ` networkpolicies ` | ` netpol ` | networking.k8s.io/v1 | true | NetworkPolicy |
199
+ | ` runtimeclasses ` | | node.k8s.io/v1 | false | RuntimeClass |
200
+ | ` poddisruptionbudgets ` | ` pdb ` | policy/v1 | true | PodDisruptionBudget |
201
+ | ` podsecuritypolicies ` | ` psp ` | policy/v1beta1 | false | PodSecurityPolicy |
202
+ | ` clusterrolebindings ` | | rbac.authorization.k8s.io/v1 | false | ClusterRoleBinding |
203
+ | ` clusterroles ` | | rbac.authorization.k8s.io/v1 | false | ClusterRole |
204
+ | ` rolebindings ` | | rbac.authorization.k8s.io/v1 | true | RoleBinding |
205
+ | ` roles ` | | rbac.authorization.k8s.io/v1 | true | Role |
206
+ | ` priorityclasses ` | ` pc ` | scheduling.k8s.io/v1 | false | PriorityClass |
207
+ | ` csidrivers ` | | storage.k8s.io/v1 | false | CSIDriver |
208
+ | ` csinodes ` | | storage.k8s.io/v1 | false | CSINode |
209
+ | ` csistoragecapacities ` | | storage.k8s.io/v1 | true | CSIStorageCapacity |
210
+ | ` storageclasses ` | ` sc ` | storage.k8s.io/v1 | false | StorageClass |
211
+ | ` volumeattachments ` | | storage.k8s.io/v1 | false | VolumeAttachment |
178
212
179
213
## 出力オプション
180
214
0 commit comments