Macでkubenetesを初めて利用してみる

minikubeを使ってみる

サイトのオーナーの合田です。

最近、Google Cloud Professional Developerの資格取得を目指して、日々勉強しております。

Googleの資格取得を目指している人はKubenetesというサービスを必ず目にしますよね。

Kubenetesを使用したことがないため、不安という方もいるのではないでしょうか。

まずはその不安な心から脱却するために、Kubenetes使ってみようじゃないか

というのが今回の記事の趣旨です。

では、早速Kubenetesを利用してみましょう。

まずはminikubeをインストールする

minikubeとは?


Minikubeは、ローカル環境でKubernetesクラスタを簡単にセットアップし実行するためのツールの1つです。

Minikubeは、Kubernetesを学習し、開発・テスト目的でクラスタを構築するために非常に便利です。

インストール

それでは、kubenetesクラスタをローカルで実行するためにminikubeをインストールしましょう。

インストールはHomebrewを利用します。

Homebrewが入ってないない場合は下記の記事を参考にして、Homebrewをインストールしてから後続のプロセスを行なってください。

新しいMacがきたので作業をメモしておきます~Homebrew~編 新しいMacがきたので作業をメモしておきます~Homebrew~編
brew install minikube

minikubeのインストールはここまでです。

Minikubeを起動する

minikubeを起動するためには下記のコマンドを流します。

minikube start

Deploymentファイルを用意する

今回は、Kubenetes内でWordPressサイトをホスティングしてみます。

なぜ?KubenetesでWordPress?というそもそものところは今回のコンセプト外なので質問しないでくださいね。

ディレクトリを用意して移動する

では、下記のようにwordpressディレクトリを作成して、移動しておきましょう。

mkdir wordpress
cd wordpress

Deploymentファイルを用意する

WordPress用のデプロイメントファイル(wp-deployment.yaml)を作成し、以下の内容をコピーして保存してください。

yml
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)を作成し、以下の内容をコピーして保存してください。

yml
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に関連する記事を出していけたらと思いますので、よろしくお願いいたします。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です