LoginSignup
3
0

More than 3 years have passed since last update.

Pivotal Cloud Foundry で Kubernetes をより良く管理

Last updated at Posted at 2019-07-30

PCFとは

Pivotalが提供する、Kubernetesやその他さまざまなサービスを導入及び管理することができる基盤です。

image.png

基本的にはOps Managerと呼ばれるものを

  • VMware vSphere
  • Microsoft Azure
  • Google Cloud Platform
  • Amazon Web Service
  • OpenStack

の上に構築して、そこから各種サービスを展開していく流れになります。

以下は、Ops Manager上に

  • PKS (Pivotal Container Service): Kubernetes管理基盤
  • Habor: Private docker repository

を導入した状態です。

pom.PNG

PCF 構築の流れ

とてつもない量となってしまうため、流れをつかんでいただくものを書きます。

これを読みながらやっていくというよりは、自分の詰まった点やどのような構成にしていたのかを書いてありますので、ざっと目を通して、構成をイメージしてから取り組んでいただければと思います。

環境はこんな感じでやっています。(とても簡単な図ですみません)

image.png

Ops Managerのインストール

自分は、VMware vCenterを通して構築をいたしました。

Boshの設定

以下ような各項目を埋めていきます。
この際、管理用のnetworkとサービス用networkを準備する必要があります。

自分の場合、NAT下に作成したため、

  • 外部通信用network
  • private network1(管理用)
  • private network2(サービス用)

の3つのネットワークを作っています。

image.png

PKS のインストール

モジュールをインストールし、先ほどのOps Managerの管理画面のIMPORT A PRODUCT というところから取り込んでいきます。

設定に関しても、複雑なものはなく容易にこなすことができます。

この際、PKS APIという箇所で、Certificateを生成するのですが、そこにrsa keyが必要となります。
NATでssh-keygenをして、id_rsaをcatしコピペして生成しました。

image.png

導入後に

# uaac target https\://PKS-API:8443 --ca-cert ROOT-CA-FILENAME

コマンドを用いて、情報を取得するのですが、ここが少し戸惑いました。。。

ここでは、自分の場合一度ops managerにログインし、

ubuntu@pivotal-ops-manager:~$ cat /var/tempest/workspaces/default/root_ca_certificate

として表示されたものを、NAT上のどこかにテキストファイル化し

# uaac target pks.mydom.local:8443 --ca-cert root_ca_certificate

Target: https://pks.mydom.local:8443
Context: admin, from client admin

という感じにしています。

Habor

ここは何もつまるところはなく、難なくいけました。

image.png

Kubernetes cluster の構築

PKSではとても簡単に、好きな構成のkubernetesをサラッと構築できます。

NATにつなぎ、ログインします。
この際、clusterは生成されてないので、何も表示されません。

# pks login -a pks.mydom.local -u pksadmin -p password --ca-cert /usr/pks/root_ca_certificate

# pks clusters list

Name  Plan Name  UUID  Status  Action

では、実際に構築します。

# pks create-cluster SampleCluster --external-hostname samplecluster.mydom.local --plan large --num-nodes 4

Name:                     SampleCluster
Plan Name:                large
UUID:                     09ffbeda-423e-4872-a7d1-73f51a8c6cce
Last Action:              CREATE
Last Action State:        in progress
Last Action Description:  Creating cluster
Kubernetes Master Host:   samplecluster.mydom.local
Kubernetes Master Port:   8443
Worker Nodes:             4
Kubernetes Master IP(s):  In Progress
Network Profile Name:

Use 'pks cluster SampleCluster' to monitor the state of your cluster

構築が始まりました。
ここは、少し時間がかかりますが、自動でやってくれていると思えばね。。。

# pks clusters list

Name           Plan Name  UUID                                  Status       Action
SampleCluster  large      09ffbeda-423e-4872-a7d1-73f51a8c6cce  in progress  CREATE

出来上がると以下のように表示されます。

# pks cluster SampleCluster

Name:                     SampleCluster
Plan Name:                large
UUID:                     98c4d605-6646-4702-beba-9f13da740d26
Last Action:              CREATE
Last Action State:        succeeded
Last Action Description:  Instance provisioning completed
Kubernetes Master Host:   samplecluster.mydom.local
Kubernetes Master Port:   8443
Worker Nodes:             4
Kubernetes Master IP(s):  172.16.1.2
Network Profile Name:


# pks clusters list

Name           Plan Name  UUID                                  Status     Action
SampleCluster  large      09ffbeda-423e-4872-a7d1-73f51a8c6cce  succeeded  CREATE

以下の二つでclusterに接続します。

# pks get-credentials SampleCluster

# kubectl config use-context SampleCluster
Switched to context "SampleCluster"

clusterの情報について確認してみましょう。

# kubectl cluster-info
Kubernetes master is running at https://samplecluster.mydom.local:8443
CoreDNS is running at https://samplecluster.mydom.local:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.


# kubectl get nodes -o wide
NAME                                   STATUS   ROLES    AGE   VERSION   INTERNAL-IP   EXTERNAL-IP   OS-IMAGE             KERNEL-VERSION      CONTAINER-RUNTIME
898ca1e5-f248-466b-aaf1-9208ee122aae   Ready    <none>   58m   v1.13.5   172.16.1.4    172.16.1.4    Ubuntu 16.04.6 LTS   4.15.0-46-generic   docker://18.6.3
8eda35c6-533c-43c7-9efa-dc513420cb32   Ready    <none>   56m   v1.13.5   172.16.1.5    172.16.1.5    Ubuntu 16.04.6 LTS   4.15.0-46-generic   docker://18.6.3
9c86b2be-2192-4e14-869b-ab562ad76916   Ready    <none>   53m   v1.13.5   172.16.1.6    172.16.1.6    Ubuntu 16.04.6 LTS   4.15.0-46-generic   docker://18.6.3
c24e6162-3125-49d7-bfd6-f3a4d20b2c60   Ready    <none>   61m   v1.13.5   172.16.1.3    172.16.1.3    Ubuntu 16.04.6 LTS   4.15.0-46-generic   docker://18.6.3

まとめ

すこし、PKS等の導入時に悩むこともありましたが、一度構築してしまうと、いろんなことが楽できそうですね!

皆さんもぜひ、導入してみてはいかがでしょうか。

3
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
3
0