README-sudocmdgroup.md
-
Thomas Woerner authored
Use SomeADMINpassword as the admin password everywhere, also in the README files.
Thomas Woerner authoredUse SomeADMINpassword as the admin password everywhere, also in the README files.
vSphere
Kubespray can be deployed with vSphere as Cloud provider. This feature supports:
- Volumes
- Persistent Volumes
- Storage Classes and provisioning of volumes
- vSphere Storage Policy Based Management for Containers orchestrated by Kubernetes
Out-of-tree vSphere cloud provider
Prerequisites
You need at first to configure your vSphere environment by following the official documentation.
After this step you should have:
- vSphere upgraded to 6.7 U3 or later
- VM hardware upgraded to version 15 or higher
- UUID activated for each VM where Kubernetes will be deployed
Kubespray configuration
First in inventory/sample/group_vars/all/all.yml
you must set the cloud provider to external
and external_cloud_provider to external_cloud_provider
.
cloud_provider: "external"
external_cloud_provider: "vsphere"
Then, inventory/sample/group_vars/all/vsphere.yml
, you need to declare your vCenter credentials and enable the vSphere CSI following the description below.
Variable | Required | Type | Choices | Default | Comment |
---|---|---|---|---|---|
external_vsphere_vcenter_ip | TRUE | string | IP/URL of the vCenter | ||
external_vsphere_vcenter_port | TRUE | string | "443" | Port of the vCenter API | |
external_vsphere_insecure | TRUE | string | "true", "false" | "true" | set to "true" if the host above uses a self-signed cert |
external_vsphere_user | TRUE | string | User name for vCenter with required privileges (Can also be specified with the VSPHERE_USER environment variable) |
||
external_vsphere_password | TRUE | string | Password for vCenter (Can also be specified with the VSPHERE_PASSWORD environment variable) |
||
external_vsphere_datacenter | TRUE | string | Datacenter name to use | ||
external_vsphere_kubernetes_cluster_id | TRUE | string | "kubernetes-cluster-id" | Kubernetes cluster ID to use | |
vsphere_csi_enabled | TRUE | boolean | false | Enable vSphere CSI |
Example configuration:
external_vsphere_vcenter_ip: "myvcenter.domain.com"
external_vsphere_vcenter_port: "443"
external_vsphere_insecure: "true"
external_vsphere_user: "administrator@vsphere.local"
external_vsphere_password: "K8s_admin"
external_vsphere_datacenter: "DATACENTER_name"
external_vsphere_kubernetes_cluster_id: "kubernetes-cluster-id"
vsphere_csi_enabled: true
For a more fine-grained CSI setup, refer to the vsphere-csi documentation.
Deployment
Once the configuration is set, you can execute the playbook again to apply the new configuration:
cd kubespray
ansible-playbook -i inventory/sample/hosts.ini -b -v cluster.yml
You'll find some useful examples here to test your configuration.