diff --git a/_data/setup.yml b/_data/setup.yml index bca31adfa5..971c5a4070 100644 --- a/_data/setup.yml +++ b/_data/setup.yml @@ -64,7 +64,8 @@ toc: section: - docs/getting-started-guides/coreos/index.md - docs/getting-started-guides/cloudstack.md - - docs/getting-started-guides/vsphere.md + - title: VMware vSphere + path: https://vmware.github.io/vsphere-storage-for-kubernetes/documentation/ - docs/getting-started-guides/dcos.md - docs/getting-started-guides/ovirt.md diff --git a/_data/user-personas/migrators/vmware-openstack.yaml b/_data/user-personas/migrators/vmware-openstack.yaml index a4aea1a4be..45a889cd52 100644 --- a/_data/user-personas/migrators/vmware-openstack.yaml +++ b/_data/user-personas/migrators/vmware-openstack.yaml @@ -1,5 +1,5 @@ id: vmware-openstack -name: Migrating from VMWare and/or OpenStack +name: Migrating from VMware and/or OpenStack index: 0 foundational: - label: "a1: foundational stuff" diff --git a/_redirects b/_redirects index 43ed2beb92..3d5c08fe03 100644 --- a/_redirects +++ b/_redirects @@ -176,6 +176,7 @@ /docs/getting-started-guides/ubuntu/automated/ /docs/getting-started-guides/ubuntu/ 301 /docs/getting-started-guides/ubuntu/calico/ /docs/getting-started-guides/ubuntu/ 301 /docs/getting-started-guides/vagrant/ /docs/getting-started-guides/alternatives/ 301 +/docs/getting-started-guides/vsphere/ https://vmware.github.io/vsphere-storage-for-kubernetes/documentation/ 301 /docs/getting-started-guides/windows/While/ /docs/getting-started-guides/windows/ 301 /docs/getting-started-guides/centos/* /docs/setup/independent/create-cluster-kubeadm/ 301 diff --git a/docs/concepts/storage/volumes.md b/docs/concepts/storage/volumes.md index d298cfbd9a..a805ce9428 100644 --- a/docs/concepts/storage/volumes.md +++ b/docs/concepts/storage/volumes.md @@ -848,7 +848,7 @@ For more information including Dynamic Provisioning and Persistent Volume Claims ### vsphereVolume **Prerequisite:** Kubernetes with vSphere Cloud Provider configured. For cloudprovider -configuration please refer [vSphere getting started guide](/docs/getting-started-guides/vsphere/). +configuration please refer [vSphere getting started guide](https://vmware.github.io/vsphere-storage-for-kubernetes/documentation/). {: .note} A `vsphereVolume` is used to mount a vSphere VMDK Volume into your Pod. The contents diff --git a/docs/getting-started-guides/minikube.md b/docs/getting-started-guides/minikube.md index 598b2521a1..3b6b68ba2b 100644 --- a/docs/getting-started-guides/minikube.md +++ b/docs/getting-started-guides/minikube.md @@ -298,7 +298,7 @@ Some drivers will mount a host folder within the VM so that you can easily share | VirtualBox | Linux | /home | /hosthome | | VirtualBox | OSX | /Users | /Users | | VirtualBox | Windows | C://Users | /c/Users | -| VMWare Fusion | OSX | /Users | /Users | +| VMware Fusion | OSX | /Users | /Users | | Xhyve | OSX | /Users | /Users | diff --git a/docs/getting-started-guides/ubuntu/index.md b/docs/getting-started-guides/ubuntu/index.md index a10f746099..b503e8025d 100644 --- a/docs/getting-started-guides/ubuntu/index.md +++ b/docs/getting-started-guides/ubuntu/index.md @@ -11,7 +11,7 @@ There are multiple ways to run a Kubernetes cluster with Ubuntu. These pages exp - [The Canonical Distribution of Kubernetes](https://www.ubuntu.com/cloud/kubernetes) -The latest version of Kubernetes with upstream binaries. Supports AWS, GCE, Azure, Joyent, OpenStack, VMWare, Bare Metal and localhost deployments. +The latest version of Kubernetes with upstream binaries. Supports AWS, GCE, Azure, Joyent, OpenStack, VMware, Bare Metal and localhost deployments. ### Quick Start diff --git a/docs/getting-started-guides/ubuntu/installation.md b/docs/getting-started-guides/ubuntu/installation.md index d908aed7c9..f02bcb5bdb 100644 --- a/docs/getting-started-guides/ubuntu/installation.md +++ b/docs/getting-started-guides/ubuntu/installation.md @@ -54,7 +54,7 @@ Microsoft Azure | Juju | Ubuntu | flannel | [docs](/docs Google Compute Engine (GCE) | Juju | Ubuntu | flannel, calico | [docs](/docs/getting-started-guides/ubuntu) | | [Commercial](https://ubuntu.com/cloud/kubernetes), [Community](https://github.com/juju-solutions/bundle-kubernetes-core) Joyent | Juju | Ubuntu | flannel | [docs](/docs/getting-started-guides/ubuntu) | | [Commercial](https://ubuntu.com/cloud/kubernetes), [Community](https://github.com/juju-solutions/bundle-kubernetes-core) Rackspace | Juju | Ubuntu | flannel | [docs](/docs/getting-started-guides/ubuntu) | | [Commercial](https://ubuntu.com/cloud/kubernetes), [Community](https://github.com/juju-solutions/bundle-kubernetes-core) -VMWare vSphere | Juju | Ubuntu | flannel, calico | [docs](/docs/getting-started-guides/ubuntu) | | [Commercial](https://ubuntu.com/cloud/kubernetes), [Community](https://github.com/juju-solutions/bundle-kubernetes-core) +VMware vSphere | Juju | Ubuntu | flannel, calico | [docs](/docs/getting-started-guides/ubuntu) | | [Commercial](https://ubuntu.com/cloud/kubernetes), [Community](https://github.com/juju-solutions/bundle-kubernetes-core) Bare Metal (MAAS) | Juju | Ubuntu | flannel, calico | [docs](/docs/getting-started-guides/ubuntu) | | [Commercial](https://ubuntu.com/cloud/kubernetes), [Community](https://github.com/juju-solutions/bundle-kubernetes-core) diff --git a/docs/getting-started-guides/vsphere.md b/docs/getting-started-guides/vsphere.md deleted file mode 100644 index 43b5069dd4..0000000000 --- a/docs/getting-started-guides/vsphere.md +++ /dev/null @@ -1,211 +0,0 @@ ---- -reviewers: -- erictune -- jbeda -title: VMware vSphere ---- - -This page covers how to get started with deploying Kubernetes on vSphere and details for how to configure the vSphere Cloud Provider. - -* TOC -{:toc} - -### Getting started with the vSphere Cloud Provider - -Kubernetes comes with *vSphere Cloud Provider*, a cloud provider for vSphere that allows Kubernetes Pods to use vSphere Storage. - -### Deploy Kubernetes on vSphere - -To deploy Kubernetes on vSphere and use the vSphere Cloud Provider, see [Kubernetes-Anywhere](https://github.com/kubernetes/kubernetes-anywhere). - -Detailed steps can be found at the [getting started with Kubernetes-Anywhere on vSphere](https://git.k8s.io/kubernetes-anywhere/phase1/vsphere/README.md) page. - -### vSphere Cloud Provider - -vSphere Cloud Provider allows Kubernetes to use vSphere-managed storage. It supports: - -- Services such as de-duplication and encryption with vSAN, QoS, high availability and data reliability. -- Policy based management at granularity of container volumes. -- Volumes, Persistent Volumes, Storage Classes, dynamic provisioning of volumes, and scalable deployment of Stateful Apps with StatefulSets. - -For more detail visit [vSphere Storage for Kubernetes Documentation](https://vmware.github.io/vsphere-storage-for-kubernetes/documentation/index.html). - -Documentation for how to use vSphere managed storage can be found in the [persistent volumes user guide](/docs/concepts/storage/persistent-volumes/#vsphere) and the [volumes user guide](/docs/concepts/storage/volumes/#vspherevolume). - -Examples can be found [here](https://github.com/kubernetes/examples/tree/master/staging/volumes/vsphere). - -#### Enable vSphere Cloud Provider - -If a Kubernetes cluster has not been deployed using Kubernetes-Anywhere, follow the instructions below to enable the vSphere Cloud Provider. These steps are not needed when using Kubernetes-Anywhere, they will be done as part of the deployment. - -**Step-1** [Create a VM folder](https://docs.vmware.com/en/VMware-vSphere/6.0/com.vmware.vsphere.vcenterhost.doc/GUID-031BDB12-D3B2-4E2D-80E6-604F304B4D0C.html) and move Kubernetes Node VMs to this folder. - -**Step-2** Make sure Node VM names must comply with the regex `[a-z](([-0-9a-z]+)?[0-9a-z])?(\.[a-z0-9](([-0-9a-z]+)?[0-9a-z])?)*`. If Node VMs do not comply with this regex, rename them and make it compliant to this regex. - - Node VM names constraints: - - * VM names can not begin with numbers. - * VM names can not have capital letters, any special characters except `.` and `-`. - * VM names can not be shorter than 3 chars and longer than 63. - -**Step-3** Enable disk UUID on Node virtual machines. - -The disk.EnableUUID parameter must be set to "TRUE" for each Node VM. This step is necessary so that the VMDK always presents a consistent UUID to the VM, thus allowing the disk to be mounted properly. - -For each of the virtual machine nodes that will be participating in the cluster, follow the steps below using [govc tool](https://github.com/vmware/govmomi/tree/master/govc) - -* Set up the **govc** environment - - export GOVC_URL='vCenter IP OR FQDN' - export GOVC_USERNAME='vCenter User' - export GOVC_PASSWORD='vCenter Password' - export GOVC_INSECURE=1 - -* Find Node VM Paths - - govc ls /datacenter/vm/ - -* Set disk.EnableUUID to true for all VMs - - govc vm.change -e="disk.enableUUID=1" -vm='VM Path' - -Note: If Kubernetes Node VMs are created from template VM then `disk.EnableUUID=1` can be set on the template VM. VMs cloned from this template, will automatically inherit this property. - -**Step-4** Create and assign Roles to the vSphere Cloud Provider user and vSphere entities. - -Note: if you want to use Administrator account then this step can be skipped. - -vSphere Cloud Provider requires the following minimal set of privileges to interact with vCenter. Please refer [vSphere Documentation Center](https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.security.doc/GUID-18071E9A-EED1-4968-8D51-E0B4F526FDA3.html) to know about steps for creating a Custom Role, User and Role Assignment. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
RolesPrivilegesEntitiesPropagate to Children
manage-k8s-node-vmsResource.AssignVMToPool
System.Anonymous
System.Read
System.View
VirtualMachine.Config.AddExistingDisk
VirtualMachine.Config.AddNewDisk
VirtualMachine.Config.AddRemoveDevice
VirtualMachine.Config.RemoveDisk
VirtualMachine.Inventory.Create
VirtualMachine.Inventory.Delete
Cluster,
Hosts,
VM Folder
Yes
manage-k8s-volumesDatastore.AllocateSpace
Datastore.FileManagement
System.Anonymous
System.Read
System.View
DatastoreNo
k8s-system-read-and-spbm-profile-viewStorageProfile.View
System.Anonymous
System.Read
System.View
vCenterNo
ReadOnlySystem.Anonymous
System.Read
System.View
Datacenter,
Datastore Cluster,
Datastore Storage Folder
No
- -**Step-5** Create the vSphere cloud config file (`vsphere.conf`). Cloud config template can be found [here](https://github.com/kubernetes/kubernetes-anywhere/blob/master/phase1/vsphere/vsphere.conf). - -This config file needs to be placed in the shared directory which should be accessible from kubelet container, controller-manager pod, and API server pod. - -**`vsphere.conf` for master node:** - -``` -[Global] - user = "vCenter username for cloud provider" - password = "password" - server = "IP/FQDN for vCenter" - port = "443" #Optional - insecure-flag = "1" #set to 1 if the vCenter uses a self-signed cert - datacenter = "Datacenter name" - datastore = "Datastore name" #Datastore to use for provisioning volumes using storage classes/dynamic provisioning - working-dir = "vCenter VM folder path in which node VMs are located" - vm-name = "VM name of the Master Node" #Optional - vm-uuid = "UUID of the Node VM" # Optional -[Disk] - scsicontrollertype = pvscsi -``` - -Note: **```vm-name``` parameter is introduced in 1.6.4 release.** Both ```vm-uuid``` and ```vm-name``` are optional parameters. If ```vm-name``` is specified then ```vm-uuid``` is not used. If both are not specified then kubelet will get vm-uuid from `/sys/class/dmi/id/product_serial` and query vCenter to find the Node VM's name. - -**`vsphere.conf` for worker nodes:** - -Applicable only to versions 1.6.4 to 1.8.x. For versions earlier than 1.6.4, this file should have all the parameters specified in the master node's `vsphere.conf` file. In version 1.9.0 and later, the worker nodes do not need a cloud config file. - -``` -[Global] - vm-name = "VM name of the Worker Node" -``` - -Below is summary of supported parameters in the `vsphere.conf` file - -* ```user``` is the vCenter username for vSphere Cloud Provider. -* ```password``` is the password for vCenter user specified with `user`. -* ```server``` is the vCenter Server IP or FQDN -* ```port``` is the vCenter Server Port. Default is 443 if not specified. -* ```insecure-flag``` is set to 1 if vCenter used a self-signed certificate. -* ```datacenter``` is the name of the datacenter on which Node VMs are deployed. -* ```datastore``` is the default datastore to use for provisioning volumes using storage classes/dynamic provisioning. -* ```vm-name``` is recently added configuration parameter. This is optional parameter. When this parameter is present, ```vsphere.conf``` file on the worker node does not need vCenter credentials. - - **Note:** ```vm-name``` is added in the release 1.6.4. Prior releases does not support this parameter. - -* ```working-dir``` can be set to empty ( working-dir = ""), if Node VMs are located in the root VM folder. -* ```vm-uuid``` is the VM Instance UUID of virtual machine. ```vm-uuid``` can be set to empty (```vm-uuid = ""```). If set to empty, this will be retrieved from /sys/class/dmi/id/product_serial file on virtual machine (requires root access). - - * ```vm-uuid``` needs to be set in this format - ```423D7ADC-F7A9-F629-8454-CE9615C810F1``` - - * ```vm-uuid``` can be retrieved from Node Virtual machines using following command. This will be different on each node VM. - - cat /sys/class/dmi/id/product_serial | sed -e 's/^VMware-//' -e 's/-/ /' | awk '{ print toupper($1$2$3$4 "-" $5$6 "-" $7$8 "-" $9$10 "-" $11$12$13$14$15$16) }' - -* `datastore` is the default datastore used for provisioning volumes using storage classes. If datastore is located in storage folder or datastore is member of datastore cluster, make sure to specify full datastore path. Make sure vSphere Cloud Provider user has Read Privilege set on the datastore cluster or storage folder to be able to find datastore. - * For datastore located in the datastore cluster, specify datastore as mentioned below - - datastore = "DatastoreCluster/datastore1" - - * For datastore located in the storage folder, specify datastore as mentioned below - - datastore = "DatastoreStorageFolder/datastore1" - -**Step-6** Add flags to controller-manager, API server and Kubelet to enable vSphere Cloud Provider. -* Add following flags to kubelet running on every node and to the controller-manager and API server pods manifest files. - -``` ---cloud-provider=vsphere ---cloud-config= -``` - -Manifest files for API server and controller-manager are generally located at `/etc/kubernetes/manifests`. - -**Step-7** Restart Kubelet on all nodes. - -* Reload kubelet systemd unit file using ```systemctl daemon-reload``` -* Restart kubelet service using ```systemctl restart kubelet.service``` - -Note: After enabling the vSphere Cloud Provider, Node names will be set to the VM names from the vCenter Inventory. - -#### Known issues -Please visit [known issues](https://vmware.github.io/vsphere-storage-for-kubernetes/documentation/known-issues.html) for the list of major known issues with Kubernetes vSphere Cloud Provider. - -## Support Level - -For quick support please join VMware Code Slack ([kubernetes](https://vmwarecode.slack.com/messages/kubernetes/)) and post your question. - -IaaS Provider | Config. Mgmt | OS | Networking | Docs | Conforms | Support Level --------------------- | ------------ | ------ | ---------- | --------------------------------------------- | --------- | ---------------------------- -Vmware vSphere | Kube-anywhere | Photon OS | Flannel | [docs](/docs/getting-started-guides/vsphere/) | | Community ([@abrarshivani](https://github.com/abrarshivani)), ([@kerneltime](https://github.com/kerneltime)), ([@BaluDontu](https://github.com/BaluDontu)), ([@luomiao](https://github.com/luomiao)), ([@divyenpatel](https://github.com/divyenpatel)) - -If you identify any issues/problems using the vSphere cloud provider, you can create an issue in our repo - [VMware Kubernetes](https://github.com/vmware/kubernetes). - - -For support level information on all solutions, see the [Table of solutions](/docs/getting-started-guides/#table-of-solutions) chart. diff --git a/docs/getting-started-guides/windows/index.md b/docs/getting-started-guides/windows/index.md index cc2c53b324..23836bbc75 100644 --- a/docs/getting-started-guides/windows/index.md +++ b/docs/getting-started-guides/windows/index.md @@ -444,7 +444,7 @@ Some of these limitations will be addressed by the community in future releases - Hyper-V isolated containers are not supported. - Windows container OS must match the Host OS. If it does not, the pod will get stuck in a crash loop. - Under the networking models of L3 or Host GW, Kubernetes Services are inaccessible to Windows nodes due to a Windows issue. This is not an issue if using OVN/OVS for networking. -- Windows kubelet.exe may fail to start when running on Windows Server under VMWare Fusion [issue 57110](https://github.com/kubernetes/kubernetes/pull/57124) +- Windows kubelet.exe may fail to start when running on Windows Server under VMware Fusion [issue 57110](https://github.com/kubernetes/kubernetes/pull/57124) - Flannel and Weavenet are not yet supported ## Next steps and resources diff --git a/docs/setup/pick-right-solution.md b/docs/setup/pick-right-solution.md index bae8cd08af..bc8b087a44 100644 --- a/docs/setup/pick-right-solution.md +++ b/docs/setup/pick-right-solution.md @@ -117,9 +117,9 @@ These solutions are combinations of cloud providers and operating systems not co * [Vagrant](/docs/getting-started-guides/coreos/) (uses CoreOS and flannel) * [CloudStack](/docs/getting-started-guides/cloudstack/) (uses Ansible, CoreOS and flannel) -* [Vmware vSphere](/docs/getting-started-guides/vsphere/) (uses Debian) -* [Vmware vSphere, OpenStack, or Bare Metal](/docs/getting-started-guides/ubuntu/) (uses Juju, Ubuntu and flannel) -* [Vmware](/docs/getting-started-guides/coreos/) (uses CoreOS and flannel) +* [VMware vSphere](https://vmware.github.io/vsphere-storage-for-kubernetes/documentation/) +* [VMware vSphere, OpenStack, or Bare Metal](/docs/getting-started-guides/ubuntu/) (uses Juju, Ubuntu and flannel) +* [VMware](/docs/getting-started-guides/coreos/) (uses CoreOS and flannel) * [oVirt](/docs/getting-started-guides/ovirt/) * [Fedora (Multi Node)](/docs/getting-started-guides/fedora/flannel_multi_node_cluster/) (uses Fedora and flannel) @@ -166,14 +166,14 @@ GCE | CoreOS | CoreOS | flannel | [docs](/docs/gettin Vagrant | CoreOS | CoreOS | flannel | [docs](/docs/getting-started-guides/coreos/) | Community ([@pires](https://github.com/pires), [@AntonioMeireles](https://github.com/AntonioMeireles)) Bare-metal (Offline) | CoreOS | CoreOS | flannel | [docs](/docs/getting-started-guides/coreos/bare_metal_offline/) | Community ([@jeffbean](https://github.com/jeffbean)) CloudStack | Ansible | CoreOS | flannel | [docs](/docs/getting-started-guides/cloudstack/) | Community ([@sebgoa](https://github.com/sebgoa)) -Vmware vSphere | Saltstack | Debian | OVS | [docs](/docs/getting-started-guides/vsphere/) | Community ([@imkin](https://github.com/imkin)) +VMware vSphere | any | multi-support | multi-support | [docs](https://vmware.github.io/vsphere-storage-for-kubernetes/documentation/) | [Community](https://vmware.github.io/vsphere-storage-for-kubernetes/documentation/contactus.html) lxd | Juju | Ubuntu | flannel/canal | [docs](/docs/getting-started-guides/ubuntu/local/) | [Commercial](https://www.ubuntu.com/kubernetes) and [Community](https://jujucharms.com/kubernetes) AWS | Juju | Ubuntu | flannel/calico/canal | [docs](/docs/getting-started-guides/ubuntu/) | [Commercial](https://www.ubuntu.com/kubernetes) and [Community](https://jujucharms.com/kubernetes) Azure | Juju | Ubuntu | flannel/calico/canal | [docs](/docs/getting-started-guides/ubuntu/) | [Commercial](https://www.ubuntu.com/kubernetes) and [Community](https://jujucharms.com/kubernetes) GCE | Juju | Ubuntu | flannel/calico/canal | [docs](/docs/getting-started-guides/ubuntu/) | [Commercial](https://www.ubuntu.com/kubernetes) and [Community](https://jujucharms.com/kubernetes) Oracle Cloud | Juju | Ubuntu | flannel/calico/canal | [docs](/docs/getting-started-guides/ubuntu/) | [Commercial](https://www.ubuntu.com/kubernetes) and [Community](https://jujucharms.com/kubernetes) Rackspace | Juju | Ubuntu | flannel/calico/canal | [docs](/docs/getting-started-guides/ubuntu/) | [Commercial](https://www.ubuntu.com/kubernetes) and [Community](https://jujucharms.com/kubernetes) -Vmware vSphere | Juju | Ubuntu | flannel/calico/canal | [docs](/docs/getting-started-guides/ubuntu/) | [Commercial](https://www.ubuntu.com/kubernetes) and [Community](https://jujucharms.com/kubernetes) +VMware vSphere | Juju | Ubuntu | flannel/calico/canal | [docs](/docs/getting-started-guides/ubuntu/) | [Commercial](https://www.ubuntu.com/kubernetes) and [Community](https://jujucharms.com/kubernetes) Bare Metal | Juju | Ubuntu | flannel/calico/canal | [docs](/docs/getting-started-guides/ubuntu/) | [Commercial](https://www.ubuntu.com/kubernetes) and [Community](https://jujucharms.com/kubernetes) AWS | Saltstack | Debian | AWS | [docs](/docs/getting-started-guides/aws/) | Community ([@justinsb](https://github.com/justinsb)) AWS | kops | Debian | AWS | [docs](https://github.com/kubernetes/kops/) | Community ([@justinsb](https://github.com/justinsb))