RancherのCatalog機能を詳細に見てみる

アプリケーションデプロイ(kubectl)
1. kubectlコマンド
Rancherでは、Catalog機能だけではなくkubectlコマンドを利用したアプリケーションデプロイもUIから実行できます。
Kubernetes公式のチュートリアルでも利用されているGuestbookアプリケーションのデプロイを、RancherUIからkubectlコマンドのapplyで実行してみます。連載2回目までの環境で実践します。
上部メニューの「Global」を選択します(図24)。
クラスタ名をクリックします(図25)。
「Launch Kubectl」ボタンをクリックします(図26)。
すると、コンソール画面が表示されます(図27)。
以下のコマンドを実行して、Guestbookアプリケーションをデプロイします。
コンソール画面で実行するコマンド
# Run kubectl commands inside here # e.g. kubectl get all > kubectl apply -f https://raw.githubusercontent.com/kubernetes/examples/master/guestbook/all-in-one/guestbook-all-in-one.yaml service "redis-master" created deployment.apps "redis-master" created service "redis-slave" created deployment.apps "redis-slave" created service "frontend" created deployment.apps "frontend" created >
frontend 3個、redis-slave 2個、redis-master 1個のPodがデプロイされてRunnningの状態であることを確認します。
Podの稼働状況を確認
> kubectl get pods --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE cattle-system cattle-cluster-agent-7d5ff8967-qzdp9 1/1 Running 0 5h cattle-system cattle-node-agent-9fsz6 1/1 Running 0 5h default frontend-56f7975f44-cftl5 1/1 Running 0 2m default frontend-56f7975f44-kk4r9 1/1 Running 0 2m default frontend-56f7975f44-v5r8l 1/1 Running 0 2m default redis-master-6b464554c8-gsmb5 1/1 Running 0 2m default redis-slave-b58dc4644-b6j4v 1/1 Running 0 2m default redis-slave-b58dc4644-gcggl 1/1 Running 0 2m ingress-nginx default-http-backend-797c5bc547-kdj97 1/1 Running 0 5h ingress-nginx nginx-ingress-controller-ksqxg 1/1 Running 0 5h kube-system canal-qjx7n 3/3 Running 0 5h kube-system kube-dns-7588d5b5f5-44stx 3/3 Running 0 5h kube-system kube-dns-autoscaler-5db9bbb766-zt49c 1/1 Running 0 5h kube-system metrics-server-97bc649d5-mcmhc 1/1 Running 0 5h kube-system rke-ingress-controller-deploy-job-r2xzn 0/1 Completed 0 5h kube-system rke-kubedns-addon-deploy-job-49c7j 0/1 Completed 0 5h kube-system rke-metrics-addon-deploy-job-4wtwn 0/1 Completed 0 5h kube-system rke-network-plugin-deploy-job-nq6kx 0/1 Completed 0 5h weave-scope weave-scope-agent-weave-scope-wlpht 1/1 Running 0 4h weave-scope weave-scope-frontend-weave-scope-7bcf9bc6bc-rkxbw 1/1 Running 0 4h
2. Ingressの作成
Ingressを作成して、ブラウザから外部アクセス可能にします。
上部メニューの「rancher-kubernetes-cluster」-「Default」を選択します(図28)。
「Load Balancing」を選択して、「Add Ingress」ボタンをクリックします(図29)。
「Name」に任意名を入力(guestbookとします)します。「Rules」で「Automatically generate a .xip.io hostname」にチェックが入っていることを確認します。「Target」で「frontend」を選択し、「Port」で「80」を入力します。最後に「Save」ボタンをクリックします(図30)。
「Save」ボタンをクリックしてしばらくすると、ワイルドカードDNSサービスを利用したURLが生成されます(図31)。そのURLをクリックするとGuestbookの画面(図32)が表示されます。
Kubernetesの仕組みも含めたシステムの全体像は、図33のようになります。
連載の第三回では、WordPressをベースにRancherのカタログ機能についての詳細と、RancherUIからkubectlコマンドを実行してGuestbookアプリケーションをデプロイする流れを紹介しました。
この全三回で、Rancherのインストール、Kubernetesクラスタ構築、Ingress作成、カタログ機能によるアプリケーションデプロイ、RancherUIからKubectlコマンド実行という流れで、一部ではありますがRancherの基本的な機能と操作を紹介してきました。
Rancherでは、「Kubernetes Everywhere」をベースに各パブリッククラウドベンダーが展開するマネージドKubernetes、仮想マシンインスタンスやオンプレミスに対してRancherと連携してKubernetesクラスタの構築(Create)および管理(Manage)ができます。さらに、既存のKubernetesクラスタもRancherに取り込んで(Import)、管理(Manage)できます。
The Linux Foundationのエクゼクティブ・ディレクターであるJim Zemlinが「Kubernetes is becoming the Linux of the cloud」と語るように、KubernetesはCloud NativeにおけるLinux OSになっている状況です。現状は、これまでのMulti-CloudからMulti-Kubernetes、Cloud NativeからKubernetes Nativeへの過程なのかもしれません。
Rancher 2.2からの新機能として、Multi-Cluster Appsという複数のMulti-Kubernetes環境にカタログから一括にアプリケーションをデプロイできる機能や、Prometheus+GrafanaもRancherの機能として同梱される予定です。そして、先日SUBMARINER ※1 というオンプレミス、クラウド環境を問わずKubernetesクラスタ間でPodの直接通信を実現する新プロダクトも発表されました。Multi-Kubernetes対応も随時進んでいます。
このMulti-Kubernetes、Kubernetes Nativeな時代、まさに「Kubernetes Everywhere」をRancherで実現して行きましょう(図34)。
次回からは「Rancherで実現するCI/CDパイプライン」という、より実践的な内容へとシフトしていきます。
※1:SUBMARINER "Cross-Cluster Network Connectivity for Kubernetes" Rancher Labsの新プロダクト
https://submariner.io/
https://github.com/rancher/submariner
https://rancher.com/blog/2019/announcing-submariner-multi-cluster-kubernetes-networking/
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Rancherのカスタムカタログの作成
- HelmfileでKubernetesマニフェストやKustomization、Helm Chartなどで構成されるアプリケーションを効率的に管理する
- 「Inspektor Gadget」でKubernetesクラスタをデバッグする
- Oracle Cloud Hangout Cafe Season7 #1「Kubnernetes 超入門」(2023年6月7日開催)
- NGINX Ingress Controllerの柔軟なアプリケーション制御、具体的なユースケースと設定方法を理解する
- Oracle Cloud Hangout Cafe Season5 #3「Kubernetes のセキュリティ」(2022年3月9日開催)
- Kubernetesの基礎
- BookinfoデモでIstioを体感する
- Rancherを構成するソフトウェア
- Kubernetesアプリケーションのモニタリングことはじめ