type
status
date
slug
summary
tags
category
icon
password
😀
今回は実際にEKSを通じてKubernetesはどういうものなのかを勉強しましょう!
 

完成図

notion image

1.AWS CloudFormationを使用してVPCを作成する

AWS CloudFormationを使用して、新しいVPCを作成します。このVPCには、2つのパブリックサブネットと2つのプライベートサブネットが含まれます。
notion image

1.1ymlファイルでVPCを構築

2.EC2インスタンスをセットアップする

AWS CloudFormationを使用して、eksctl、kubectlなどのツールがインストールされたEC2インスタンスを起動します。このインスタンスはEKSクラスターを管理するためのものです。
notion image
2.1YUMLファイルでEC2を立ち上げます
EC2が立ち上げたら、git、docker、eksctl、kubectlなどのツールがインストールされたかを確認

3.EKSクラスターを作成する

EC2インスタンスを使用して、EKSクラスターを作成します。これにより、EKSクラスターがVPC内にデプロイされます。
notion image

3.1EKSクラスタを作成

# EKSクラスタを作成する
注意:既存のVPCにEKSクラスタを作るには、少なくとも2*2のサブネットワークが必要です。プライベートネットワークがあるなら、NATも配置する必要があります。
notion image
15分を待ちます。
コンソールで、EKSが作成したことを確認
notion image

4.ノードをデプロイする

EC2インスタンスを介して、EKSクラスターにノードを作成します。これにより、クラスター内のノードが構成されます。
notion image

4.1EKSクラスタ内にノードグループを作成する

ノード数量を変更するコマンドを覚えましょう!
nodeの数を2に変更してみます。
YUMLテンプレートを反映するコマンド

4.2コンソールでノードの数を確認してみます

notion image

5AMロールを構成、CSIを実装

EKSクラスターに適切なIAMロールと権限を設定します。また、ノードにEBS CSIドライバーをインストールします。
notion image

5.1ローカルを作成

下記のコードを管理用EC2に打ちます

5.2CSI ドライバーを実装

notion image
AWS EBS CSI ドライバーは、Kubernetes クラスターで Amazon EBS ボリュームの永続ストレージを提供するための役割を担います。具体的には:
 
  1. ボリュームのプロビジョニング: ユーザーが要求した場合に、EBS ボリュームを自動的に作成します。これにより、Kubernetes のワークロードがデータを保存するためのストレージを簡単に確保できます。
  1. ボリュームのマウント: ノード上のポッドが EBS ボリュームを使用する際に、自動的にボリュームをノードにアタッチし、ポッド内のパスにマウントします。これにより、ポッドがデータにアクセスできるようになります。
  1. ボリュームの削除: ポッドが削除されると、関連する EBS ボリュームが自動的に削除されます。これにより、リソースの効率が向上し、不要なボリュームがクラスターに残ることがなくなります。
簡単に言えば、AWS EBS CSI ドライバーは、Kubernetes クラスターでデータの永続ストレージを管理し、ユーザーがデータに簡単にアクセスできるようにします。

6.wordpressプロジェクトを作成する

管理インスタンス上で、MySQLonEKSプロジェクトを作成します。このプロジェクトでは、YAMLファイルを使用してMySQLデータベースを構成し、プライベートサブネットに展開します。
notion image
wordpressディレクトリを作成し、その配下で、yumlファイルを作成します。

6.1StorageClass

StorageClass を使用してCSIの力で、動的な保存領域を割り当てできます。

6.2ConfigMap

ConfigMap を使用してデータベースの初期化スクリプトを設定します。

6.2Secrets

Secrets を使用して、秘密鍵を保存します。
dbpwdにBase64した暗号を入れます
notion image

6.3Deployment

MySql データベースサーバーの設定を作成します。

7.MySQLデータベースを公開する

MySQLデータベースを内部ネットワークに公開するために、Kubernetes Serviceリソースを作成します。
notion image

7.1Service

Service ClusterIP の内部公開は、同じ Kubernetes クラスター内の他のリソースにサービスを公開することを意味します。つまり、同じクラスター内の他の Pod やサービスは、ClusterIP を使用してそのサービスにアクセスできます。ClusterIP は、Kubernetes でデフォルトの Service タイプであり、Service を表す仮想 IP アドレスを作成し、Kubernetes の内部 DNS サービスを介して解決されます。この仮想 IP はクラスター内部でのみアクセス可能であり、クラスターの外部からは見えません。
そのため、Service ClusterIP の内部公開は、クラスター内のサービス間通信とアクセスを提供するためのものです。サービスをクラスターの外部に公開する必要がある場合は、NodePort、LoadBalancer、または Ingress などの他の Service タイプを使用する必要があります。
もし、一旦、管理用EC2で、MySqlが正常にアクセス出来るかを確認したいなら、一旦ServiceをNodePortに変更し、MySqlNodeのセキュリティグループのインバウンドを0.0.0.0に設定しときます。

7.2apply

先まで作ったMySqlサーバをデプロイします。

7.3管理用EC2でアクセス出来るかを検証

notion image
notion image

8.WordPressをデプロイする

WordPressのYAMLファイルを使用してWordPressを公開します。これにより、WordPressがパブリックサブネットに展開されます。
notion image

8.1wordpressのYUMLテンプレートを用意します。

Deployment

kubectl get nodes --show-labelsで、実際に配置したいノードのタグを調べてnodeSelectorで関連付けます。

9.新たなノードを作成して、WordPressをデプロイする

9.1eksctl create nodegroup

5分待ちます

9.2Service

10.ALBリソースを設定する

ALBリソースを使用してWordPressサービスに接続し、外部ネットワークにサービスを公開します。
notion image

10.1ALB

Kubernetes Serviceリソースを使用して、WordPressサービスを内部ネットワークに公開してから、ALBリソースで、外部に展開する。

10.2デプロイします。

11.HTTPでをアクセスしてみます

kubectl get allでアクセスするALBのDNSを調べて、ブラウザから、アクセス出来るどうかを確認します。
notion image
notion image
notion image

📎 参考文章

  • 一些引用
  • 引用文章
 
💡
有关Notion安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~
CKS試験問題Kubernetes徹底解説(KCNA-JP)試験対策(概念編)
Loading...
minami
minami
一个普通的干饭人🍚
Announcement

🎉 ブログへようこそ 🎉

notion image
名前:みなみ独立事務所
性別:男
国籍:China
完全独学だけで基本情報をはじめ31個の資格を仕事をしながら合格。 現在はIT会社の技術担当や、ブログの執筆や学習支援などを手掛けています。 独学で合格できる学習法、勉強法、試験対策を配信します!

📚 主な内容

💻 IT・システム開発
🏠 不動産 × 宅建士
🎓 MBA 学習記録

🔍 コンテンツの探し方

現在、サイトのデザインはシンプルなため、情報がやや探しにくいかもしれません。
気になるテーマを探す際は、タグ検索の利用をおすすめします。