Pasang Kubernetes dengan AKS (Azure Kubernetes Service) :-
Latihan: Buat Resource Group baharu. Konfigurasi kluster rangkaian.
Buat kluster AKS. Sambung ke kluster Kubernetes dengan menggunakan kubectl. Cipta Namespace Kubernetes.
Penting:
Dalam latihan ini dan anda mungkin dikenakan caj. Jika anda belum mempunyai langganan Azure, buat akaun percuma sebelum anda mula.
Cipta Resource Group baharu.
Mula-mula anda perlu membuat kumpulan sumber untuk digunakan oleh sumber anda. Log masuk ke Azure Cloud Shell (https://shell.azure.com) dengan akaun Azure anda. Pilih versi Bash Cloud Shell. Kita akan menggunakan semula beberapa nilai sepanjang skrip penggunaan. Sebagai contoh, anda perlu memilih wilayah Resourse Group yang anda ingin dibuat, seperti AS Timur. Jika anda memilih nilai yang berbeza, ingat nilai itu untuk latihan lain dalam modul ini. Anda mungkin perlu mentakrifkan semula nilai antara sesi Cloud Shell. Jalankan arahan berikut untuk merekodkan nilai ini dalam pembolehubah Bash.
Set subscription :-
#Set PaygDev subscri ption
az account set --subscription xxxxxx-xxxxx-xxxx-xxxx
REGION_NAME=southeastasia
RESOURCE_GROUP=RG-K8S-DEV
SUBNET_NAME=aks-dev-subnet
VNET_NAME=aks-dev-vnet
You can check each value using the echo command, for example,
echo $REGION_NAME
echo $aksworkshop
echo $RESOURCE_GROUP
echo $VNET_NAME
echo $SUBNET_NAME
Cipta Resource Group baru dengan nama aksworkshop. Gunakan semua sumber yang dibuat dalam latihan. Satu Resource Group adalah mudah untuk dibersihkan selepas anda menamatkan modul ini.
az group create --name $RESOURCE_GROUP --location $REGION_NAME
mohd@Azure:~$ echo $REGION_NAME
eastasia
mohd@Azure:~$ echo $aksworkshop
mohd@Azure:~$ echo $RESOURCE_GROUP
aksworkshop
mohd@Azure:~$ echo $VNET_NAME
aks-vnet
Konfigurasi rangkaian
Kita mempunyai dua model rangkaian untuk dipilih apabila menggunakan kluster AKS. Model pertama ialah rangkaian Kubenet, dan yang kedua ialah Azure Container Networking Interface (CNI).
Apakah rangkaian Kubenet? Rangkaian Kubenet ialah model rangkaian default dalam Kubernetes. Dengan rangkaian Kubenet, nod diberikan alamat IP daripada subnet rangkaian maya Azure. Pod menerima alamat IP daripada ruang alamat yang berbeza secara logik. Terjemahan alamat rangkaian (NAT) kemudiannya dikonfigurasikan supaya pod boleh mencapai sumber pada rangkaian maya Azure. Sumber Alamat IP diterjemahkan kepada alamat IP utama Nod dan kemudian dikonfigurasikan pada Nod. Ambil perhatian, bahawa pod menerima alamat IP yang "tersembunyi" di belakang IP Nod. Apakah rangkaian Azure Container Networking Interface (CNI)? Kelompok AKS disambungkan kepada sumber & konfigurasi rangkaian maya sedia ada. Dalam model rangkaian ini, setiap pod mendapat alamat IP daripada subnet dan boleh diakses terus. Alamat IP ini mestilah unik di seluruh ruang rangkaian anda dan dikira terlebih dahulu. Sesetengah ciri yang anda akan gunakan memerlukan anda untuk menggunakan kluster AKS dengan menggunakan konfigurasi rangkaian CNI. Mari buat rangkaian maya untuk kluster AKS anda. Kita akan menggunakan rangkaian maya ini dan menentukan model rangkaian apabila kita menggunakan kluster. Pertama, buat rangkaian maya dan subnet. Pod yang digunakan dalam kluster anda akan diberikan alamat IP
Jalankan arahan berikut untuk mencipta rangkaian maya.
az network vnet create --resource-group $RESOURCE_GROUP --location $REGION_NAME --name $VNET_NAME --address-prefixes 10.0.0.0/8 --subnet-name $SUBNET_NAME --subnet-prefix 10.240.0.0/16
Seterusnya, dapatkan semula dan simpan ID subnet dalam pembolehubah Bash dengan menjalankan arahan di bawah.
#SUBNET_ID=$(az network vnet subnet show --resource-group $RESOURCE_GROUP --vnet-name $VNET_NAME --name $SUBNET_NAME --query id -o tsv)
Cipta Kluster AKS.
Dengan adanya rangkaian maya baharu, anda boleh meneruskan dan mencipta kluster baharu. Terdapat dua nilai yang perlu anda ketahui sebelum menjalankan arahan #az aks create. Yang pertama ialah versi versi Kubernetes terbaharu, bukan pratonton yang tersedia di wilayah pilihan anda dan yang kedua ialah nama unik untuk kluster anda. Untuk mendapatkan versi Kubernetes bukan pratonton terkini, anda menggunakan perintah #az aks get-versions. Simpan nilai yang kembali daripada arahan dalam pembolehubah Bash dari Alias VERSION. Jalankan arahan di bawah dapatkan semula dan simpan nombor versi.
VERSION=$(az aks get-versions --location $REGION_NAME --query 'orchestrators[?!isPreview] | [-1].orchestratorVersion' --output tsv)
Nama kelompok AKS mestilah unik. Jalankan arahan berikut untuk mencipta pembolehubah Bash yang memegang nama unik.
AKS_CLUSTER_NAME=aksworkshop-$RANDOM
AKS_CLUSTER_NAME=aks-dev-$RANDOM
Jalankan arahan berikut untuk mengeluarkan nilai yang disimpan dalam $AKS_CLUSTER_NAME. Perhatikan ini untuk kegunaan kemudian. Anda memerlukannya untuk mengkonfigurasi semula pembolehubah pada masa hadapan, jika perlu. Catatkan nilai ini kerana anda memerlukannya dalam makmal akan datang.
echo $AKS_CLUSTER_NAME
Jalankan arahan az aks create berikut untuk mencipta kluster AKS yang menjalankan versi Kubernetes terkini. Perintah ini boleh mengambil masa beberapa minit untuk diselesaikan.
#az aks create --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER_NAME --vm-set-type VirtualMachineScaleSets --load-balancer-sku standard --location $REGION_NAME --kubernetes-version $VERSION --network-plugin azure --vnet-subnet-id $SUBNET_ID --service-cidr 10.2.0.0/24 --dns-service-ip 10.2.0.10 --docker-bridge-address 172.17.0.1/16 --generate-ssh-keys
Jawap YES.
Mari kita semak semula pembolehubah dalam arahan sebelumnya:
$AKS_CLUSTER_NAME specifies the name of the AKS cluster.
$VERSION is the latest Kubernetes version you retrieved earlier.
$SUBNET_ID is the ID of the subnet created on the virtual network to be configured with AKS.
Note the following deployment configuration:
--vm-set-type: We're specifying that the cluster is created by using virtual machine scale sets. The virtual machine scale sets enable you to switch on the cluster autoscaler when needed.
--network-plugin: We're specifying the creation of the AKS cluster by using the CNI plug-in.
--service-cidr: This address range is the set of virtual IPs that Kubernetes assigns to internal services in your cluster. The range must not be within the virtual network IP address range of your cluster. It should be different from the subnet created for the pods.
--dns-service-ip: The IP address is for the cluster's DNS service. This address must be within the Kubernetes service address range. Don't use the first IP address in the address range, such as 0.1. The first address in the subnet range is used for the kubernetes.default.svc.cluster.local address.
--docker-bridge-address: The Docker bridge network address represents the default docker0 bridge network address present in all Docker installations. AKS clusters or the pods themselves don't use docker0 bridge. However, you have to set this address to continue supporting scenarios such as docker build within the AKS cluster. It's required to select a classless inter-domain routing (CIDR) for the Docker bridge network address. If you don't set a CIDR, Docker chooses a subnet automatically. This subnet could conflict with other CIDRs. Choose an address space that doesn't collide with the rest of the CIDRs on your networks, which includes the cluster's service CIDR and pod CIDR.
Uji ketersambungan kluster dengan menggunakan kubectl:-
kubectl ialah arahan Kubernetes utama yang anda gunakan untuk berinteraksi dengan kluster dan tersedia dalam Cloud Shell. Konteks kluster diperlukan untuk membenarkan kubectl menyambung ke kluster. Konteks mengandungi alamat kluster, pengguna dan Namespace. Gunakan perintah az aks get-credentials untuk melihat mengkonfigurasi. Dapatkan semula bukti kelayakan kluster dengan menjalankan arahan di bawah.
az aks get-credentials --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER_NAME
Mari kita lihat perkara yang telah digunakan dengan menyenaraikan semua nod dalam kluster anda. Gunakan arahan kubectl get nodes untuk menyenaraikan semua nod.
kubectl get nodes
Anda akan melihat senarai nod kluster anda. Berikut adalah contoh.
NAME STATUS ROLES AGE VERSION
aks-nodepool1-24503160-vmss000000 Ready agent 1m v1.15.7
aks-nodepool1-24503160-vmss000001 Ready agent 1m v1.15.7
aks-nodepool1-24503160-vmss000002 Ready agent 1m v1.15.7
Cipta Namespace Kubernetes untuk aplikasi.
Bagi menjalankan lebih dari satu kluster, kita boleh menggunakan ciri Kubernetes yang membolehkan anda mengasingkan pasukan dan beban kerja secara logik dalam kluster yang sama. Matlamatnya adalah untuk memberi sedikit keistimewaan & skop yang diperlukan oleh setiap pasukan. Apakah Namespace? Namespace dalam Kubernetes mencipta sempadan pengasingan logik. Nama sumber Namespace mestilah unik. Jika anda tidak menentukan Namespace apabila anda bekerja dengan Kubernetes, Namespace lalai akan digunakan.
Mari buat Namespace untuk aplikasi anda. Arahan untuk senaraikan Namespace.
kubectl get namespace
Anda akan melihat senarai Namespace yang serupa dengan output ini.
NAME STATUS AGE
default Active 1h
kube-node-lease Active 1h
kube-public Active 1h
kube-system Active 1h
Gunakan perintah #kubectl create namespace untuk mencipta Namespace untuk aplikasi yang dipanggil ratingsapp.
kubectl create namespace ratingsapp
You'll see a confirmation that the namespace was created.
namespace/ratingsapp created
Cth Deployment fail YAML
#kubectl apply --namespace financio-stag -f endoscope-financio-stag.yaml
kubectl apply \
--namespace ratingsapp \
-f ratings-api-deployment.yaml
Validasi:-
#kubectl get pods --namespace financio-stag
Ringkasan:-
Dalam latihan ini, anda mencipta Resourse Group untuk sumber anda. Anda mencipta rangkaian maya untuk digunakan kluster anda. Anda kemudiannya menggunakan kluster AKS anda, termasuk mod rangkaian Azure CNI. Anda kemudiannya menyambung ke kluster anda dengan kubectl dan mencipta namespace untuk Kubernetes anda.
Ulasan
Catat Ulasan