Symptoms:
message: >-
database node xxxxxx-0 (unknown) is not ready (unknown) | database
node xxxxxx-monitor-0 (monitor) is ready
observedGeneration: 1
reason: NotOperational
sudo su on the machine, the following symptoms may be observed on the database pod(s)kubectl get pods -A --kubeconfig=/etc/kubernetes/admin.conf
NAMESPACE NAME READY STATUS RESTARTS
<namespace> <db-pod-instance>-0 0/4 Pending 0
kubectl describe pod -n <namespace> <db-pod-instance>-0 --kubeconfig=/etc/kubernetes/admin.confEvents:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 67s (x558 over 1h) default-scheduler 0/1 nodes are available: 1 Insufficient memory.
preemption: 0/1 nodes are available: 1 No preemption victims found for incoming pod.
kubectl get namespace vmware-system-vksm --kubeconfig=/etc/kubernetes/admin.conf
NAME STATUS AGE
vmware-system-vksm Active 9h
VCF 9.0.1
VCF Automation 9.0.1.0
Data Service Manager 9.0.0.0
Data Service Manager 9.0.1.0
With the release of VCF Automation 9.0.1, VCF Automation deployments may include a new VKS cluster management features that integrate with deployed DSM database clusters when provisioned via VCFA organization portal . For more information see VCF Automation 9.0.1 release notes
This prevents database pods starting correctly.
Broadcom Engineering are currently investigating this issue.
To workaround this issue
Use the kubectl-vsphere plugin tool.
kubectl-vsphere login --server <Supervisor IP or hostname>kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
XXX.XXX.XX.X XXX.XXX.XX.X wcp:XXX.XXX.XX.X:<username@domain> vcfa-provisioned-namespace
svc-auto-attach-domain-XXX XXX.XXX.XX.X wcp:XXX.XXX.XX.X:<username@domain> svc-auto-attach-domain-XXXkubectl config use-context svc-auto-attach-domain-XXXkubectl get configmap auto-attach-configNAME DATA AGEauto-attach-config 1 7h56mkubectl get configmap auto-attach-config -o yaml > auto-attach-config.yaml
The config map can be edited directly using kubectl edit
kubectl edit configmap auto-attach-config -n svc-auto-attach-domain-XXX
# Edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
ApiVersion: v1data:
hostname: <vcf-automation-fqdn>
exclusions: |
- namespace: vcfa-provisioned-namespacekind: ConfigMap
metadata:
annotations:
updatedAt: "XXXX-XX-XXTXX:XX:XXZ"
creationTimestamp: "XXXX-XX-XXTXX:XX:XXZ"
name: auto-attach-config
namespace: svc-auto-attach-domain-XXX
resourceVersion: "1570042"
uid: 5db240f2-3c94-4abd-94f4-d484d5ebd0dbThis removes the VKSM management pods and namespace, allowing the database pod to start.
The database instance should progress and go to Ready state
Note: Excluding the VKSM integration from a namespace/specific vSphere Kubernetes Service clusters will prevent management of VKS clusters from VCF Automation via the vSphere Kubernetes Service Cluster Management view.
Alternatively using a text editor, create a yaml file , e.g. exclusion.yaml to modify the config map, to exclude the namespace identified on step 2
In the example above the entire DSM namespace, vcfa-provisioned-namespace, is excluded from VKSM.
Which means all the clusters that will created in that namespace will also be excluded.
However it is possible to exclude specific clusters in a namespace by filling in the clusterName variable.
Apply the modified config map using kubectl applykubectl apply -f exclusion.yaml