Create provider configuration
Before you can deploy universes using YugabyteDB Anywhere, you must create a provider configuration.
A provider configuration describes your cloud environment (its service account, regions and availability zones, NTP server, the certificates that will be used to SSH to VMs, the Linux disk image to be used for configuring the nodes, and so on). The provider configuration is used as an input when deploying a universe, and can be reused for many universes.
Prerequisites
Before you start, ensure that you have created the kubeconfig file so YugabyteDB Anywhere can use the provided credentials to automatically provision and deprovision Kubernetes pods that run the YugabyteDB universe.
Configure TKG
To configure any TKG edition (that is, either TKG-Integrated, TKG-Service, or TKG-Multicloud), navigate to Configs > Infrastructure > VMware Tanzu.
This lists all currently configured VMWare Tanzu providers.
To create a TKG provider, click Create Kubernetes Config. For more information, refer to Create a provider.
Provider settings
Set the Kubernetes Provider Type to VMWare Tanzu.
For information on the Kubernetes Provider settings, refer to Provider settings.
To add service-level annotations, use the following overrides:
serviceEndpoints:
- name: "yb-master-service"
type: "LoadBalancer"
annotations:
service.beta.kubernetes.io/aws-load-balancer-internal: "0.0.0.0/0"
app: "yb-master"
ports:
ui: "7000"
- name: "yb-tserver-service"
type: "LoadBalancer"
annotations:
service.beta.kubernetes.io/aws-load-balancer-internal: "0.0.0.0/0"
app: "yb-tserver"
ports:
ycql-port: "9042"
yedis-port: "6379"
ysql-port: "5433"
To disable LoadBalancer, use the following overrides:
enableLoadBalancer: False
To change the cluster domain name, use the following overrides:
domainName: my.cluster
To add annotations at the StatefulSet level, use the following overrides:
networkAnnotation:
annotation1: 'foo'
annotation2: 'bar'
Appendix: VMware Tanzu application service
VMware Tanzu Application Service is no longer actively supported and the following information is considered legacy.
If you choose to use VMware Tanzu Application Service, before creating the service instance, ensure that the following is available:
- The YugabyteDB tile is installed in your PCF marketplace.
- The cloud provider is configured in the YugabyteDB Anywhere instance in your PCF environment.
Create a YugabyteDB service instance
You can create a YugabyteDB service instance via the App Manager UI or Cloud Foundry (cf) command-line interface (CLI).
Use the PCF app manager
-
In your PCF App manager, navigate to the marketplace and select YugabyteDB.
-
Read descriptions of the available service plans to identify the resource requirements and intended environment, as shown in the following illustration:
-
Select the service plan.
-
Complete the service instance configuration, as shown in the following illustration:
Use the cloud foundry CLI
You can view the marketplace and plan description in the cf CLI by executing the following command:
cf marketplace -s yugabyte-db
The output should be similar to the following:
service plan description free or paid
x-small Cores: 2, Memory (GB): 4 paid
small Cores: 4, Memory (GB): 7 paid
medium Cores: 8, Memory (GB): 15 paid
large Cores: 16, Memory (GB): 15 paid
x-large Cores: 32, Memory (GB): 30 paid
After you decide on the service plan, you can launch the YugabyteDB service instance by executing the following command:
cf create-service yugabyte-db x-small yb-demo -c '{"universe_name": "yb-demo"}'
Configure the YugabyteDB service instance
You can specify override options when you create a service instance using the YugabyteDB service broker.
Override cloud providers
Depending on the cloud providers configured for your YugabyteDB Anywhere, you can create Yugabyte service instances by providing overrides.
To provision in AWS or GCP cloud, your overrides should include the appropriate provider_type
and region_codes
as an array, as follows:
{
"universe_name": "cloud-override-demo",
"provider_type": "gcp", # gcp for Google Cloud, aws for Amazon Web Service
"region_codes": ["us-west1"] # comma delimited list of regions
}
To provision in Kubernetes, your overrides should include the appropriate provider_type
and kube_provider
type, as follows:
{
"universe_name": "cloud-override-demo",
"provider_type": "kubernetes",
"kube_provider": "gke" # gke for Google Compute Engine, pks for Pivotal Container Service (default)
}
Override the number of nodes
To override the number of nodes, include the num_nodes
with the desired value, and then include this parameter along with other parameters for the cloud provider, as follows:
{
"universe_name": "cloud-override-demo",
"num_nodes": 4 # default is 3 nodes.
}
Override the replication factor
To override the replication factor, include replication
with the desired value, and then include this parameter along with other parameters for the cloud provider, as follows:
{
"universe_name": "cloud-override-demo",
"replication": 5,
"num_nodes": 5 # if the replication factor is 5, num_nodes must be 5 minimum
}
replication must be set to 1, 3, 5, or 7.
Override the volume settings
To override the volume settings, include num_volumes
with the desired value, as well as volume_size
with the volume size in GB for each of those volumes. For example, to have two volumes with 100GB each, overrides should be specified as follows:
{
"universe_name": "cloud-override-demo",
"num_volumes": 2,
"volume_size": 100
}
Override the YugabyteDB software version
To override the YugabyteDB software version to be used, include yb_version
with the desired value, ensuring that this version exists in YugabyteDB Anywhere, as follows:
{
"universe_name": "cloud-override-demo",
"yb_version": "1.1.6.0-b4"
}