Supervisor with "VDS + FLB"
This section describes the procedures for deploying a K8s Cluster in a Namespace utilizing a "VDS + FLB" architecture inside a vSphere environment.
- K8s Cluster
K8s Cluster Access
Client Operating System
While the command outputs below are captured from a Windows client, the vcf and kubectl CLI tools operate identically across Linux and macOS environments.
Connect to K8s Cluster
Retrieve K8s Kubeconfig file
Create the K8s Cluster kubeconfig file "my-cluster-kubeconfig.yaml".
[System.IO.File]::WriteAllBytes("$pwd\my-cluster-kubeconfig.yaml", [System.Convert]::FromBase64String((kubectl get secret my-cluster-kubeconfig -n demo-space -o jsonpath='{.data.value}')))
Output example
PS C:\Users\Administrator\Documents> [System.IO.File]::WriteAllBytes("$pwd\my-cluster-kubeconfig.yaml", [System.Convert]::FromBase64String((kubectl get secret my-cluster-kubeconfig -n demo-space -o jsonpath='{.data.value}')))
File "my-cluster-kubeconfig.yaml" created
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM2akNDQWRLZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJMk1EY3hNekl6TXpBeE0xb1hEVE0yTURjeE1ESXpNelV4TTFvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBS2RLCkdKRjBnb3VlanJDQVVyZ3BXT1lIMlllRWJEcElyZkRPUkRwRTlxelpDQWo3Q2JNdHFJTExwZ1ZucytadUpHcVAKNEFiVm80R01PcUl4eW5Wa3c2dmliSEJPTHdERE55SVFkaVBaSHRrS245c1ZTSWltUTlYS29mSTZuazBGL3o4cQo4M2pya0pXakoxRjZ4clhlL2krcmd0bGl1Y01BWlM3OGdqWE9EeGlISEE1b3VNNENiQ1dOdHBMMEUyMUFJUWxoCkl0ZGdUZmtGeWhzYWNHb3BXR090dDB4a1JXNVZGWGdzNzU5eU96enRrbFV4VVJ6cVdZUHZzSUw5WWZrN0h3TXcKTnVFSFZnY1hIcHZxS0RHRElyR2JkWGwzaHdzek90aEJpa1pjNkJKeC9Pb1BZNVB2TUkvSUNuK0hXenNid2l1bQpxekg2ay9aM1Z2VXZLRXA3NzA4Q0F3RUFBYU5GTUVNd0RnWURWUjBQQVFIL0JBUURBZ0trTUJJR0ExVWRFd0VCCi93UUlNQVlCQWY4Q0FRQXdIUVlEVlIwT0JCWUVGRGU2WlZUNnJ6cFdDK1FLekd3Q2Y1RHZTNFQ4TUEwR0NTcUcKU0liM0RRRUJDd1VBQTRJQkFRQmVqRWY0emdVSkxDOUpqUTBFTkZWT1FRT3B1UWFTWmZ4L1FnQU5LQ1RpN05TeQoxckR4dkZWTHVnbnRHWGRzSVdzQlJhUVMzV1NGVzhHSzUzdjcrZm1vNmV5dFRoQWw0N0g3RGZvQnZJRHBvSmtuCkdWVHlGWldFVHZFREl3YXpMcnFBMnhRbVE2SDlwVkd0YzRJU2g5RExLMG5XR1pHL1dqM3VHOEtPS2VhWTJ3VVQKK3J1MC9Tdm5xVjZhZVlCTkUxVW14cHdjMTNSK3ltVE9IV2tTOUt4UTMrM3NOejR6eUM0dWF5dW8rZXgveUhhZAp2WDN1dHU5SHlRaW1KWS9PSFpkSys3RTRmK2diWU5veEx2L2tNVm5ZU0VzSGpla2hGUUdzVmxzdURuWEdhcEpICktIVjM1Q2ZBQlRIUXZSNDFtT3pQaWZTTUMzVEdFNWIreDA4RWozSjkKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
server: https://10.1.11.47:6443
name: my-cluster
contexts:
- context:
cluster: my-cluster
user: my-cluster-admin
name: my-cluster-admin@my-cluster
current-context: my-cluster-admin@my-cluster
kind: Config
users:
- name: my-cluster-admin
user:
client-certificate-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURFekNDQWZ1Z0F3SUJBZ0lJTGdDVVZqbzdVdFV3RFFZSktvWklodmNOQVFFTEJRQXdGVEVUTUJFR0ExVUUKQXhNS2EzVmlaWEp1WlhSbGN6QWVGdzB5TmpBM01UTXlNek13TVROYUZ3MHlOekEzTVRNeU16TTFNVFJhTURReApGekFWQmdOVkJBb1REbk41YzNSbGJUcHRZWE4wWlhKek1Sa3dGd1lEVlFRREV4QnJkV0psY201bGRHVnpMV0ZrCmJXbHVNSUlCSWpBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQW00SHZsVUVNL1dJd3VmODYKMGJMazYrbVliQzJYVlR6aEZmK1lQeTJKR0Q5M3pYS0U4OWtSZGJqUnB0M095bWJxWm1WSVdoNUtqU2VPczY2bQpPNERDelRaK1J4bkpYSEpxeWplWU5JUHVCbVFxVVgwOXhzL0JDQVBDSElGY0l6YVB5SUJnWTVrSWorQmVxRmx6CkpsYTRXOCtHb05MbndoK0ZaVTJJVmErVEFSTndWa213NjZPSTdGaUFzelFwamx1cHlReWJXcE0wVlkwM0ZHU0IKNlAwYngvZDQvdTZMKzdZOGVaUXUxYmtvR2ZwTHR3dmt1dS93QlROTDFXYUpkSTJsUFJqY2E4TXhJZ3dzSm85bQo3MUZHeExwRkJLbEdCeDF3R3N2VzNrVWFjcWt6OUEwTTNNb3NsRlVRNkVuQklKMW9LYTdzUWtPZEVXblpjUko3ClMrSm0yd0lEQVFBQm8wZ3dSakFPQmdOVkhROEJBZjhFQkFNQ0JhQXdFd1lEVlIwbEJBd3dDZ1lJS3dZQkJRVUgKQXdJd0h3WURWUjBqQkJnd0ZvQVVON3BsVlBxdk9sWUw1QXJNYkFKL2tPOUxoUHd3RFFZSktvWklodmNOQVFFTApCUUFEZ2dFQkFHTENVUEppanRNVXJCTFQ0ZDdKK3AzdDFHSHZRK3lUUUx6b3ZlQlBnaWliZU5tT3FTSTgzNkNUClprMjhyL00xQVovZTNONnRINmhOL29rVmZFYUNudUN4TkZkVDJCQTFhem1UdFlZcU1xdWtqVmx0T1ByekQyS3YKVlJVZ1g1ekttRWtSUEtxamFqaXlpQTZsQy9YeDY0MDliM0xGdWpXeG1SWm9LWnlGOURsdmRpSEN6QlluVWoyUApQNzMzUkxwK0cxT29QdUJhWDFHSzFMOWU1a1h2NE9xVHZmL2lQd0FRV0NXMjREVUNUdzRJd09ackhXTXdCQ1NHCmRKU0hnVHhySlFnT2pZQW45ZWlGTDcrNkJsdmZ6c3pLQnJFRk8rYnBYY2ROTTVONGQwTUFKNkg2SmVFR0U4NTQKdndIR01HYUJrUEJUK3p2dWc3Wk52VFZMMy9ad3ZHRT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
client-key-data: LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFb2dJQkFBS0NBUUVBbTRIdmxVRU0vV0l3dWY4NjBiTGs2K21ZYkMyWFZUemhGZitZUHkySkdEOTN6WEtFCjg5a1JkYmpScHQzT3ltYnFabVZJV2g1S2pTZU9zNjZtTzREQ3pUWitSeG5KWEhKcXlqZVlOSVB1Qm1RcVVYMDkKeHMvQkNBUENISUZjSXphUHlJQmdZNWtJaitCZXFGbHpKbGE0VzgrR29OTG53aCtGWlUySVZhK1RBUk53Vmttdwo2Nk9JN0ZpQXN6UXBqbHVweVF5YldwTTBWWTAzRkdTQjZQMGJ4L2Q0L3U2TCs3WThlWlF1MWJrb0dmcEx0d3ZrCnV1L3dCVE5MMVdhSmRJMmxQUmpjYThNeElnd3NKbzltNzFGR3hMcEZCS2xHQngxd0dzdlcza1VhY3FrejlBME0KM01vc2xGVVE2RW5CSUoxb0thN3NRa09kRVduWmNSSjdTK0ptMndJREFRQUJBb0lCQUJRY2xCRGdZVjdjZ0podwpNYm9RekxvcXMyRDdsOUN1ZDNQWFl4TFBWUHJkcTgrcnljQnZFMEFxTk1uRHg2eWdtUnhyYVVDU2MxVFp5QU1RCkNZVmZpK2RyYnAzTHhYYmZLMVdDSnRLcWoxeFBQd2t4VFRpTEFrTFlRdXRaMnV5SThCazFGU3puREFHWTVIL0UKVmMxTEM1RXExVUFKRnNVaDVpZ3ByMWRabTRXdUVNZlJpZVc0dEJLMUR4VDBHVk8yc1V0L1FNSDhFemtOcSttMwpyWHZYekRtMlQrak1UOTJEVWhqbVdiY0JWWHZDWVpOQ1ZrQWQyeWp5YnkwS0xzV09ocW0rMTdvOGlMWWdVeFViCnpSTzQ3b1YzQXFkYnVtQ2c2VDl0cjUwdWVIck9oT2t6RXVDYVJGeGY1RmdLTlJXdGlmM2pSRkVIYzNpR0ZDZXoKWEZ4UGpxRUNnWUVBemNmY1RuandMbXRWVWN0VnVMT1Iyc1k4NWJyZzBGSVNia1A0MzArL0o2elFpODJYUE1wTgp6OGZjSlJVSFJSL0ZTVmRueW5NVk9NYUlQZXdwVE9YYjBhSnJrd01QYjFmTjBINzJKSnZ2T3NzamtudDhlRUlwCnp0WTkwR1dFeG1zK3l3aTIrNFpPMUx0NW92ZHhUc3ZacmhOWUJMVitpOGR6cG5yYStDN01QNkVDZ1lFQXdYVkQKWFcwcEJjZmU5ZUdRNW1IWHYwODYxLzVIZUE5UUFkZDhQdnljOTNwK1RUaTBPd2NCc2ExcjZCcjJMcUptUXRnRAp5RGJPYU5vN3pRNEtteVhJcGhXWEJ3ODkxRFJNRUdvcHh2NTBtWGRxWXFCVzgySFFwSlcvdHIwSFlJek45RDNUCjE4b3RWQnpaQXZqWkRwWmpWbG80RnpvdUpVVHcvNmhmTUFzeGhQc0NnWUI3bExGcnR4bVc1d0xBTW5yeWgzVHEKaSs3NmtEWi9KU3JJYWEzR2ZwL3Y5Y3J3aXJGdTRwZkVWdVNRcUlaTEx2OU9RbDJrcVdSdlNsdDd4SjR3L2tINwpMYTJwQmtkNHVLUnp1Q3VlWkw5UThib1ZPRy9SMFBwR3EwZElKZytORWM4T0k5ZXdTa0tCWTIxelAyTWV6VEdYClp5cU8rV2hjRFpZWXZ1Tk45TnpZd1FLQmdIdG80YXRrcW1tc29mZTZpQ1BmUUxFaXlzZmt4eFM0dC9JazAzYWUKMFVjeUZnWU82VEpLZXZNc1RRekl2a2pyZ2s2YjNIWEpPSTA4d2k5Q0NOUUdHMlNQbTBOK25wT1ROUDYzcXFUdAp4OVhxanF3UjJzWHhuUmFSRExaM0NaQzI0ZDh2M2Nibmkxai8raFBpU1J6OEpLeCthdyt1SnFmUnZlZHBNaWZFCnpEY25Bb0dBTmFiQjk0bHRibnBRUWhjaGI5QVNMN0s4dTdXbWpvUnc0L1ptOUVEZHRzalV5U2Y0eXgyUVBaLzEKbHhHUkwzOVRYaVEyQ0kwSVZ1d0FjR2RKeFlpK2p6QVFLckY3eEw3Y1doVE45dStsY1YzT3duby84TjFUbWc3VgoyVWJYWitHVTFyOFZ3TEg5THFwRllOdEkrQ1VzU3FHQUNHamdoSVR0K3RDYk9mbUxxNWc9Ci0tLS0tRU5EIFJTQSBQUklWQVRFIEtFWS0tLS0tCg==
Connect to the K8s Cluster
-
Create KUBECONFIG variable
$env:KUBECONFIG="$pwd\my-cluster-kubeconfig.yaml"Output example
Note: To connect back to the Supervisor Namespace (such as "demo-space")PS C:\Users\Administrator\Documents> $env:KUBECONFIG="$pwd\my-cluster-kubeconfig.yaml"PS C:\Users\Administrator\Documents> $env:KUBECONFIG = $null -
Change context to my K8s Cluster
kubectl config use-context my-cluster-admin@my-clusterOutput example
PS C:\Users\Administrator\Documents> kubectl config use-context my-cluster-admin@my-cluster Switched to context "my-cluster-admin@my-cluster".
Validate Namespace Access
Validate Context is the K8s Cluster
kubectl config get-contexts
Output example
The current context is:
. Cluster: my-cluster
. Namespace: default (empty)
PS C:\Users\Administrator\Documents> kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* my-cluster-admin@my-cluster my-cluster my-cluster-admin
Validate K8s Cluster connection
kubectl get nodes
Output example
PS C:\Users\Administrator\Documents> kubectl get nodes
NAME STATUS ROLES AGE VERSION
my-cluster-t9kts-khnwk Ready control-plane 34m v1.35.5+vmware.1
my-cluster-t9kts-vp9vg Ready control-plane 36m v1.35.5+vmware.1
my-cluster-t9kts-x6ct8 Ready control-plane 39m v1.35.5+vmware.1
my-cluster-workers-tpq48-bk2rz-4zx2n Ready 36m v1.35.5+vmware.1
my-cluster-workers-tpq48-bk2rz-6dm7f Ready 37m v1.35.5+vmware.1
my-cluster-workers-tpq48-bk2rz-pskrn Ready 36m v1.35.5+vmware.1

