Skip to content

Latest commit

 

History

History
238 lines (206 loc) · 5.65 KB

Fleet.md

File metadata and controls

238 lines (206 loc) · 5.65 KB

Fleet

https://learn.microsoft.com/en-gb/azure/kubernetes-fleet/quickstart-create-fleet-and-members

GROUP=fleet FLEET=fleet SUBSCRIPTION_ID=$(az account show --query id -o tsv)

az group create --name ${GROUP} --location eastus

az fleet create --resource-group ${GROUP} --name ${FLEET} --location eastus

az fleet get-credentials --resource-group ${GROUP} --name ${FLEET} --file $HOME/.kube/fleet

az aks get-credentials --resource-group FL_dfleet_fleet_eastus --name hub --admin --file $HOME/.kube/fleet export KUBECONFIG=$HOME/.kube/fleet

export KUBECONFIG=$HOME/.kube/dzfleet4 export KUBECONFIG=$HOME/.kube/dzfleet5

export KUBECONFIG=$HOME/.kube/$KUBE_NAME

kubectl create namespace kuard-demo

export FLEET_ID=/subscriptions/${SUBSCRIPTION_ID}/resourceGroups/${GROUP}/providers/Microsoft.ContainerService/fleets/fleet export IDENTITY=$(az ad signed-in-user show --query "id" --output tsv) export ROLE="Azure Kubernetes Fleet Manager RBAC Cluster Admin" az role assignment create --role "${ROLE}" --assignee ${IDENTITY} --scope ${FLEET_ID}

az aks get-credentials --resource-group $KUBE_GROUP --name $KUBE_NAME --admin --file $HOME/.kube/$KUBE_NAME export KUBECONFIG=$HOME/.kube/$KUBE_NAME

cat <<EOF | kubectl apply -f - apiVersion: fleet.azure.com/v1alpha1 kind: ClusterResourcePlacement metadata: name: kuard-demo spec: resourceSelectors: - group: "" version: v1 kind: Namespace name: kuard-demo policy: affinity: clusterAffinity: clusterSelectorTerms: - labelSelector: matchLabels: fleet.azure.com/location: uksouth EOF

kubectl get serviceexport kuard --namespace kuard-demo kubectl get serviceexport kuard --namespace kuard-demo kubectl apply -f https://raw.githubusercontent.com/Azure/AKS/master/examples/fleet/kuard/kuard-mcs.yaml kubectl get multiclusterservice kuard --namespace kuard-demo

az aks get-credentials --resource-group dzlinked5 --name dzlinked5 --admin --file dzlinked5 export KUBECONFIG=pwd/dzlinked5

Calculator

kubectl create namespace calculator-frontend kubectl create namespace calculator-backend

cat <<EOF | kubectl apply -f - apiVersion: fleet.azure.com/v1alpha1 kind: ClusterResourcePlacement metadata: name: calculator-frontend spec: resourceSelectors: - group: "" version: v1 kind: Namespace name: calculator-frontend policy: affinity: clusterAffinity: clusterSelectorTerms: - labelSelector: matchLabels: fleet.azure.com/location: eastus EOF

cat <<EOF | kubectl apply -f - apiVersion: fleet.azure.com/v1alpha1 kind: ClusterResourcePlacement metadata: name: calculator-backend spec: resourceSelectors: - group: "" version: v1 kind: Namespace name: calculator-backend policy: clusterNames: - dzfleet5 - dzfleet4 EOF

cat <<EOF | kubectl apply -f - apiVersion: fleet.azure.com/v1alpha1 kind: ClusterResourcePlacement metadata: name: calculator-backend spec: resourceSelectors: - group: "" version: v1 kind: Namespace name: calculator-backend policy: affinity: clusterAffinity: clusterSelectorTerms: - labelSelector: matchLabels: fleet.azure.com/location: eastus EOF

cat <<EOF | kubectl apply -f - apiVersion: fleet.azure.com/v1alpha1 kind: ClusterResourcePlacement metadata: name: calculator-backend spec: policy: placementType: PickAll tolerations: - key: test-key1 operator: Exists resourceSelectors: - group: "" kind: Namespace name: test-ns version: v1 revisionHistoryLimit: 10 strategy: type: RollingUpdate EOF

cat <<EOF | kubectl apply -f - apiVersion: placement.kubernetes-fleet.io/v1beta1 kind: ClusterResourcePlacement metadata: name: crp spec: resourceSelectors: - group: "" kind: Namespace name: test-ns version: v1 policy: placementType: PickAll affinity: clusterAffinity: requiredDuringSchedulingIgnoredDuringExecution: clusterSelectorTerms: - propertySelector: matchExpressions: - name: "kubernetes.azure.com/node-count" operator: Ge values: - "5" EOF

cat <<EOF | kubectl apply -f - apiVersion: placement.kubernetes-fleet.io/v1beta1 kind: ClusterResourcePlacement metadata: name: crp spec: resourceSelectors: - group: "" kind: Namespace name: test-ns version: v1 policy: placementType: PickN numberOfClusters: 10 affinity: clusterAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 20 preference: metricSorter: name: kubernetes.azure.com/node-count sortOrder: Descending EOF

cat <<EOF | kubectl apply -f - apiVersion: v1 kind: Pod metadata: name: centos spec: containers:

  • name: centos image: centos ports:
    • containerPort: 80 command:
    • sleep
    • "3600" EOF

kubectl get clusterresourceplacements

cat <<EOF | kubectl apply -f - apiVersion: networking.fleet.azure.com/v1alpha1 kind: ServiceExport metadata: name: http-backend namespace: calculator-backend EOF

kubectl get serviceexport --namespace calculator-backend

cat <<EOF | kubectl apply -f - apiVersion: networking.fleet.azure.com/v1alpha1 kind: MultiClusterService metadata: name: http-backend namespace: calculator-backend spec: serviceImport: name: http-backend EOF

kubectl get multiclusterservice -A

kubectl exec -it centos -- /bin/bash curl http-backend.calculator-backend.svc.clusterset.local