Alıştırma - Uygulamayı ConfigMap'lerle iyileştirme
Uygulama arka ucunu dağıttınız ve şimdi ConfigMap kullanarak uygulama ön ucunu dağıtmanız gerekiyor.
Başlamadan önce
Not
Bu alıştırma isteğe bağlıdır. Bu alıştırmayı tamamlamak istiyorsanız başlamadan önce bir Azure aboneliği oluşturmanız gerekir. Azure hesabınız yoksa veya şu anda bir hesap oluşturmak istemiyorsanız, sunulan bilgileri anlamak için yönergeleri okuyabilirsiniz.
ConfigMap oluşturma
ConfigMap belirtimini oluşturmak için adlı
configmap.yaml
yeni bir YAML dosyası oluşturun ve aşağıdaki kodu yapıştırın:apiVersion: v1 kind: ConfigMap metadata: name: ship-manager-config namespace: default data: config.js: | const config = (() => { return { 'VUE_APP_BACKEND_BASE_URL': 'http://ship-manager-backend.{your-dns-zone}.aksapp.io', } })()
değerini daha önce oluşturduğunuz ZONE_NAME değişkeninin değeriyle değiştirin
{your-dns-zone}
.Dosyayı kaydedip kapatın
komutunu kullanarak
kubectl apply
değişiklikleri kümenize uygulayın.kubectl apply -f configmap.yaml
komutunu kullanarak
kubectl get configmap
ConfigMap'i sorgulayarak sonucu denetleyin.kubectl get configmap ship-manager-config
Uygulamayı oluşturma
Adlı
frontend.yaml
yeni bir YAML dosyası oluşturun ve Dağıtım belirtimini oluşturmak için aşağıdaki kodu yapıştırın:apiVersion: apps/v1 kind: Deployment metadata: name: contoso-ship-manager-frontend namespace: default spec: replicas: 1 selector: matchLabels: app: contoso-ship-manager-frontend template: metadata: labels: app: contoso-ship-manager-frontend spec: containers: - image: mcr.microsoft.com/mslearn/samples/contoso-ship-manager:frontend name: contoso-ship-manager-frontend ports: - containerPort: 80 name: http volumeMounts: - name: config mountPath: /usr/src/app/dist/config.js subPath: config.js volumes: - name: config configMap: name: ship-manager-config ---
ConfigMap'in Dağıtım nesnesine nasıl bağlan olduğuna dikkat edin. Herhangi bir anahtar belirtmediğimiz için bir
subPath
anahtar belirtmemiz gerekir.subpath
kapsayıcısının içindeki dosya adıdır.Üç tirenin altına aşağıdaki kodu yapıştırarak Hizmet ve Giriş belirtimlerini oluşturun:
apiVersion: v1 kind: Service metadata: name: contoso-ship-manager-frontend namespace: default spec: selector: app: contoso-ship-manager-frontend ports: - name: http port: 80 targetPort: 80 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: contoso-ship-manager-frontend namespace: default annotations: spec.ingressClassName: webapprouting.kubernetes.azure.com spec: rules: - host: contoso-ship-manager.{your-dns-zone}.aksapp.io http: paths: - path: / pathType: Prefix backend: service: name: contoso-ship-manager-frontend port: name: http
Giriş içindeki değerini daha önce oluşturduğunuz ZONE_NAME değişkeninin değeriyle değiştirin
{your-dns-zone}
.Dosyayı kaydedip kapatın
komutunu kullanarak uygulamayı dağıtın
kubectl apply
.kubectl apply -f frontend.yaml
komutunu kullanarak Kubernetes API'sini
kubectl get deployment
sorgulayarak sonucu denetleyin.kubectl get deployment contoso-ship-manager-frontend
API kullanılabilir olduğunda aşağıdaki örneğe benzer bir çıkış almanız gerekir:
NAME READY UP-TO-DATE AVAILABLE AGE contoso-ship-manager-frontend 1/1 1 1 18s