本記事はOpenshift vSphere UPIデプロイパターンでデプロイするためにvSphere側で準備すべきことやベアメタルデプロイパターンと異なる設定について簡単にまとめたものです。
最新情報はRed Hatが公開しているドキュメントを参照ください。
ベアメタルデプロイパターンでデプロイしたことがある人向けの記事になっております。
ベアメタルデプロイパターンからの変更点
install-config.yaml
基本的にベアメタルデプロイパターンのinstall-config.yamlに以下のパラメータを付与すればOK
platform:
vsphere:
vCenter: vcsa1
username: Administrator@vsphere.local
password: Passw0rd!
datacenter: Datacenter
defaultDatastore: target0
folder: "/Datacenter/vm/openshift"
パラメータ | 説明 |
---|---|
platform.vsphere.vCenter | vCenterサーバーを指定 |
platform.vsphere.username | vCenterサーバーのユーザーを指定 |
platform.vsphere.password | 上記ユーザーのパスワードを指定 |
platform.vsphere.datacenter | vSphere上で設定したデータセンター名を指定 |
platform.vsphere.defaultDatastore | vSphere上で設定したデータストアクラスターのデータストアを指定(1つしか設定できないもよう) |
platform.vsphere.folder | Openshiftノード用仮想マシンを配置しているフォルダー名を指定(指定しなくてもデプロイできるが、後々のPV作成やPVCアタッチ時にはまることになるので指定するのが無難) |
platform.vsphere.apiVIP、platform.vsphere.ingressVIPを設定するとvSphere IPIデプロイパターンになるので要注意
vSphereの設定内容
・データストアクラスター設定(platform.vsphere.defaultDatastore
に設定する)
・各ノード用仮想マシンに disk.EnableUUID
をTRUE
に設定する。
・各ノード用仮想マシンを配置するためのフォルダーを作成する。(platform.vsphere.folder
に設定する)
管理サーバーの設定内容
・ブラウザからvCenterへアクセスしルートCA証明書をダウンロードし、oc/openshift-installコマンドを配置している管理サーバーへインポートする。
[root@prov ~]# ll /root/download.zip
-rw-r--r--. 1 root root 5708 Nov 1 18:16 /root/download.zip
[root@prov ~]# unzip download.zip
Archive: download.zip
inflating: certs/lin/4904e9a0.0
inflating: certs/mac/4904e9a0.0
inflating: certs/win/4904e9a0.0.crt
inflating: certs/lin/4904e9a0.r0
inflating: certs/mac/4904e9a0.r0
inflating: certs/win/4904e9a0.r0.crl
[root@prov ~]# cp certs/lin/* /etc/pki/ca-trust/source/anchors
[root@prov ~]# update-ca-trust extract
参考情報
・デフォルトストレージクラスとは別にストレージクラスを追加したい場合
oc create -f - <<'EOF'
kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
name: app
provisioner: kubernetes.io/vsphere-volume
parameters:
diskformat: thin
datastore: target1
reclaimPolicy: Retain
volumeBindingMode: Immediate
EOF
[root@prov vsphere-upi]# oc get sc
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE
app kubernetes.io/vsphere-volume Retain Immediate false 7s
thin (default) kubernetes.io/vsphere-volume Delete Immediate false 169m
・PVCを作成するとデータストアにPV用のvmdkファイルが作成される。
oc create -f - <<'EOF'
apiVersion: "v1"
kind: "PersistentVolumeClaim"
metadata:
name: "app-vol1"
spec:
accessModes:
- "ReadWriteOnce"
resources:
requests:
storage: "100Mi"
storageClassName: "app"
EOF
[root@prov vsphere-upi]# oc get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
app-vol1 Bound pvc-6b9f72b9-46ba-45f2-ab7a-c2a84142915d 100Mi RWO app 13s
[root@prov vsphere-upi]# oc get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pvc-6b9f72b9-46ba-45f2-ab7a-c2a84142915d 100Mi RWO Retain Bound default/app-vol1 app 17s
・データストアに kubevols
というフォルダーが作成され、その中にPV用のvmdkファイルが作成される。
以上です。