Kubernetes 入門クイズ
このクイズでは、Kubernetes の基本概念、アーキテクチャ、機能についての理解を確認します。
選択問題
- Kubernetes という名前はギリシャ語で何を意味しますか?
- A) 船長
- B) 舵取りまたは操縦士
- C) Container
- D) 管理者
回答を表示
回答: B) 舵取りまたは操縦士
解説: Kubernetes はギリシャ語で「舵取り」または「操縦士」を意味し、コンテナ化されたアプリケーションを導く役割を象徴しています。
- 次のうち、Kubernetes control plane component ではないものはどれですか?
- A) kube-apiserver
- B) etcd
- C) kubelet
- D) kube-scheduler
回答を表示
回答: C) kubelet
解説: kubelet は各 node で実行されるエージェントであり、control plane component ではありません。
- Kubernetes でデプロイ可能な最小単位は何ですか?
- A) Container
- B) Pod
- C) Deployment
- D) Service
回答を表示
回答: B) Pod
解説: Pod は Kubernetes でデプロイ可能な最小単位です。
- 次のうち、Kubernetes Service type ではないものはどれですか?
- A) ClusterIP
- B) NodePort
- C) LoadBalancer
- D) ExternalProxy
回答を表示
回答: D) ExternalProxy
解説: Service type には ClusterIP、NodePort、LoadBalancer、ExternalName が含まれます。
- Pod replicas の数を管理するリソースはどれですか?
- A) Service
- B) ConfigMap
- C) ReplicaSet
- D) Namespace
回答を表示
回答: C) ReplicaSet
解説: ReplicaSet は、指定された数の Pod replicas が常に実行されていることを保証します。
- stateful applications 向けに設計された workload resource はどれですか?
- A) Deployment
- B) StatefulSet
- C) DaemonSet
- D) Job
回答を表示
回答: B) StatefulSet
解説: StatefulSet は stateful applications に一意の識別子と永続ストレージを提供します。
- すべての node で Pod が実行されることを保証するリソースはどれですか?
- A) Deployment
- B) StatefulSet
- C) DaemonSet
- D) CronJob
回答を表示
回答: C) DaemonSet
解説: DaemonSet は、すべての(または特定の)node で Pod のコピーが実行されることを保証します。
- スケジュールに従って定期的にタスクを実行するリソースはどれですか?
- A) Job
- B) CronJob
- C) Deployment
- D) ReplicaSet
回答を表示
回答: B) CronJob
解説: CronJob は、指定されたスケジュールに従って Job を定期的に実行します。
- cluster 内でリソース分離を提供するものは何ですか?
- A) Label
- B) Annotation
- C) Namespace
- D) ConfigMap
回答を表示
回答: C) Namespace
解説: Namespace は、単一の cluster 内でリソースグループを分離する方法を提供します。
- EKS と self-managed Kubernetes の主な違いではないものはどれですか?
- A) Control plane management
- B) Core Kubernetes API
- C) High availability configuration
- D) Security patch application
回答を表示
回答: B) Core Kubernetes API
解説: どちらも同じ標準 Kubernetes API を使用します。
短答問題
- すべての cluster データを保存する key-value store は何ですか?
回答を表示
回答: etcd
- 新しく作成された Pod の node を選択する component は何ですか?
回答を表示
回答: kube-scheduler
- Pod が削除されると削除される一時 volume type は何ですか?
回答を表示
回答: emptyDir
- configuration data を key-value 形式で保存する object は何ですか?
回答を表示
回答: ConfigMap
- password などの機密情報を保存する object は何ですか?
回答を表示
回答: Secret
実践問題
- replicas が 3 つの nginx 用 Deployment YAML を作成してください。
回答を表示
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
spec:
replicas: 3
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1.21
ports:
- containerPort: 80- LoadBalancer Service YAML を作成してください。
回答を表示
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 80
selector:
app: nginx- DATABASE_URL と LOG_LEVEL を含む ConfigMap YAML を作成してください。
回答を表示
apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
data:
DATABASE_URL: "mysql://localhost:3306/db"
LOG_LEVEL: "INFO"応用問題
- pod の読み取りアクセスを付与する RBAC Role/RoleBinding を作成してください。
回答を表示
apiVersion: rbac.authorization.k8s.io/v1
kind: Role
metadata:
namespace: development
name: pod-reader
rules:
- apiGroups: [""]
resources: ["pods", "pods/log"]
verbs: ["get", "watch", "list"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
name: read-pods
namespace: development
subjects:
- kind: User
name: jane
roleRef:
kind: Role
name: pod-reader
apiGroup: rbac.authorization.k8s.io- port 3306 で backend-to-database traffic のみを許可する NetworkPolicy を作成してください。
回答を表示
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: db-network-policy
spec:
podSelector:
matchLabels:
role: database
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
role: backend
ports:
- protocol: TCP
port: 3306