以下は、Kubernetesの基本操作に関するチュートリアル記事です。
Kubernetes チュートリアル
概要
Kubernetes (K8s) は、容器化されたアプリケーションを効率的にデプロイし、スケーリング、そして管理するためのオープンソースプラットフォームです。このチュートリアルでは、Kubernetes の基本操作について詳しく解説します。
環境設定
- Docker Desktop をインストールします。
- Kubernetes ノードを有効にします。
kubectlコマンドラインツールがインストールされていることを確認します。
ネームスペースの作成
Kubernetes では、リソースをグループ化するためにネームスペースを使います。以下のコマンドで新しいネームスペースを作成できます。
kubectl create namespace my-namespace
デプロイメントの作成
デプロイメントは、アプリケーションのバージョンとスケーリングポリシーを管理します。以下の YAML ファイルを使用してデプロイメントを作成します。
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-deployment
namespace: my-namespace
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-container
image: nginx:latest
ports:
- containerPort: 80
この YAML ファイルを deployment.yaml として保存し、以下のコマンドでデプロイメントを作成します。
kubectl apply -f deployment.yaml
サービスの作成
サービスは、外部からアクセスできるようにアプリケーションを公開します。以下の YAML ファイルを使用してサービスを作成します。
apiVersion: v1
kind: Service
metadata:
name: my-service
namespace: my-namespace
spec:
selector:
app: my-app
ports:
- protocol: TCP
port: 80
targetPort: 80
type: LoadBalancer
この YAML ファイルを service.yaml として保存し、以下のコマンドでサービスを作成します。
kubectl apply -f service.yaml
ポッドの確認
ポッドは Kubernetes で実行される最小単位です。以下のコマンドで現在のネームスペース内のポッドを確認できます。
kubectl get pods -n my-namespace
サービスの確認
作成したサービスが正しく動作していることを確認するために、以下のコマンドでサービスの詳細を確認します。
kubectl describe service my-service -n my-namespace
デプロイメントのスケールアップ
デプロイメントのスケーリングは、アプリケーションのリソース消費量に応じて自動的に行われます。ただし、手動でスケーリングすることもできます。
kubectl scale deployment my-deployment --replicas=5 -n my-namespace
デプロイメントの更新
デプロイメントを更新するには、YAML ファイルを変更し再び適用します。以下のコマンドで新しいイメージを使用してデプロイメントを更新できます。
kubectl set image deployment/my-deployment my-container=nginx:1.21 -n my-namespace
デプロイメントの削除
デプロイメントと関連するリソースを削除するには、以下のコマンドを使用します。
kubectl delete deployment my-deployment -n my-namespace
サービスの削除
サービスを削除するには、以下のコマンドを使用します。
kubectl delete service my-service -n my-namespace
ネームスペースの削除
最後に、作成したネームスペースを削除してお掃除しましょう。
kubectl delete namespace my-namespace
以上で、Kubernetes の基本操作についてのチュートリアルが完了しました。これらは、Kubernetes を実践的に使うための基本的なコマンドと手順です。より詳細な知識を得たい場合は、公式ドキュメンテーションや他のリソースを参照してください。