LoginSignup
0
0

前提条件 

  • EKSクラスターを作成している
  • kubectl がAWS EKSクラスターに接続されている

まだしていない人は以下の記事を参照してください。

本編

1. Nginxのデプロイファイルを作成する

以下のようなファイルを作成します。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
    purpose: serve-web
  annotations:
    description: Deployment for the nginx web server
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      name: nginx-pod
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx-container
          image: nginx
          imagePullPolicy: IfNotPresent
          ports:
            - containerPort: 80
              protocol: TCP
      restartPolicy: Always

このファイルはnginxのイメージを使って2つのポッドを作成します。

2. サービスファイルを作成する

以下のようなファイルを作成します。

apiVersion: v1
kind: Service
metadata:
  name: nginx-service
  labels:
    app: nginx
    purpose: expose-nginx
  annotations:
    description: Service to expose the nginx Deployment
spec:
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: LoadBalancer

このファイルによってクラシックロードバランサーが作成され、アクセスがpodに分散されます。

3. ファイルを適用する

プロジェクトの中で以下のコマンドでファイルを適用します。

kubectl apply -f .

4. サービスの確認

EC2からロードバランサーを見つけます。
image.png
DNS名が表示されているのでこれをコピーしてブラウザに貼り付けます。

すると...
見事表示されました!!
nginx.png

ロードバランサーがEC2を認識するまで少し時間がかかることがあります。

おわりに

以上でEKSにNginxをデプロイする方法を紹介しました。
あとは好きなイメージに置き換えれば何でもできます!
よきEKSライフを!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0