サイトのオーナーの合田です。
最近、Google Cloud Professional Developerの資格取得を目指して、日々勉強しております。
Associate Cloud Engineerは最近取得いたしました。
Googleの資格取得を目指している人はKubenetesというサービスを必ず目にしますよね。
Kubenetesを使用したことがないため、不安という方もいるのではないでしょうか。
まずはその不安な心から脱却するために、Kubenetesを使ってみようじゃないか!
というのが今回の記事の趣旨です。
では、早速Kubenetesを利用してみましょう。
まずはminikubeをインストールする
minikubeとは?
Minikubeは、ローカル環境でKubernetesクラスタを簡単にセットアップし実行するためのツールの1つです。
Minikubeは、Kubernetesを学習し、開発・テスト目的でクラスタを構築するために非常に便利です。
インストール
それでは、kubenetesクラスタをローカルで実行するためにminikubeをインストールしましょう。
インストールはHomebrewを利用します。
Homebrewが入ってないない場合は下記の記事を参考にして、Homebrewをインストールしてから後続のプロセスを行なってください。

brew install minikube

minikubeのインストールはここまでです。
Minikubeを起動する
minikubeを起動するためには下記のコマンドを流します。
minikube start

Deploymentファイルを用意する
今回は、Kubenetes内でWordPressサイトをホスティングしてみます。
なぜ?KubenetesでWordPress?というそもそものところは今回のコンセプト外なので質問しないでくださいね。
ディレクトリを用意して移動する
では、下記のようにwordpressディレクトリを作成して、移動しておきましょう。
mkdir wordpress
cd wordpress
Deploymentファイルを用意する
WordPress用のデプロイメントファイル(wp-deployment.yaml)を作成し、以下の内容をコピーして保存してください。
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress
spec:
replicas: 1
selector:
matchLabels:
app: wordpress
template:
metadata:
labels:
app: wordpress
spec:
containers:
- name: wordpress
image: wordpress:latest
ports:
- containerPort: 80
env:
- name: WORDPRESS_DB_HOST
value: wordpress-mysql
- name: WORDPRESS_DB_USER
value: root
- name: WORDPRESS_DB_PASSWORD
value: root
- name: WORDPRESS_DB_NAME
value: example
---
apiVersion: v1
kind: Service
metadata:
name: wordpress
spec:
selector:
app: wordpress
ports:
- protocol: TCP
port: 80
targetPort: 80
type: NodePort
次に、MySQL用のデプロイメントファイル(mysql-deployment.yaml)を作成し、以下の内容をコピーして保存してください。
apiVersion: apps/v1
kind: Deployment
metadata:
name: wordpress-mysql
spec:
selector:
matchLabels:
app: wordpress-mysql
template:
metadata:
labels:
app: wordpress-mysql
spec:
containers:
- name: mysql
image: mysql:5.7
env:
- name: MYSQL_ROOT_PASSWORD
value: root
- name: MYSQL_DATABASE
value: example
ports:
- containerPort: 3306
---
apiVersion: v1
kind: Service
metadata:
name: wordpress-mysql
spec:
selector:
app: wordpress-mysql
ports:
- protocol: TCP
port: 3306
targetPort: 3306
面倒な方は下記のgitHubからCloneしてください。
デプロイメントをKubernetesクラスタに適用する
次に、WordPressとMySQLのデプロイメントをKubernetesクラスタに適用していきます。
まずは、wordpressのデプロイメントを適用します。
kubectl apply -f wp-deployment.yaml

次に、mysqlのデプロイメントを適用します。
kubectl apply -f mysql-deployment.yaml

デプロイしたサービスを確認する
それでは最後にデプロイしたサービスを確認してみましょう。
サービスを確認するには下記のようにminikube service <service name> --url
を実行します。
minikube service wordpress --url
このコマンドを打ち込むと、下記のようにアクセスできるURLが表示されるのでアクセスしてみましょう。

URLにアクセスしてみましょう。
そうすると、WPのインストール画面が表示されます。

これで、KubenetesでWordpressを使ってみることができました!
作成したServiceを削除する
minikubeで作成したサービスを削除するには下記のコマンドを流します。
kubectl delete service wordpress-mysql

と表示されれば削除されています。
引き続き、kubenetesに関連する記事を出していけたらと思いますので、よろしくお願いいたします。