Istio के साथ Google Kubernetes Engine में ASP.NET Core ऐप्लिकेशन डिप्लॉय करें (पार्ट 2)

1. खास जानकारी

लैब के पहले हिस्से में, आपने एक ASP.NET Core ऐप्लिकेशन बनाया है. इस ऐप्लिकेशन को कंटेनर बनाया गया है और उसे Google Kubernetes Engine (GKE) में डिप्लॉय किया है. साथ ही, उसके ट्रैफ़िक को Istio से मैनेज करने के लिए कॉन्फ़िगर किया है.

लैब के दूसरे हिस्से में यह माना जाता है कि आपके पास पहले से ही आपका Kubernetes क्लस्टर है और इसका इस्तेमाल पहली लैब के ज़रिए चल रहा है. आपको पता चलेगा कि कोड में कम से कम बदलाव करके, Istio आपकी सेवाओं को कैसे मैनेज कर सकता है, उनकी निगरानी कर सकता है, और उन्हें सुरक्षित कर सकता है. खास तौर पर, Istio की कई सुविधाओं के बारे में जाना जा सकता है. जैसे, मेट्रिक, ट्रेसिंग, सर्विस विज़ुअलाइज़ेशन, डाइनैमिक ट्रैफ़िक मैनेजमेंट, गड़बड़ी इंजेक्शन वगैरह.

आप इन चीज़ों के बारे में जानेंगे

  • प्रोमेथस की मदद से मेट्रिक के बारे में क्वेरी करने का तरीका.
  • Grafana की मदद से मेट्रिक को विज़ुअलाइज़ करने का तरीका.
  • अपनी सेवा का नया वर्शन बनाने का तरीका.
  • किसी सेवा को किसी खास वर्शन पर पिन करने का तरीका.
  • अलग-अलग वर्शन के बीच ट्रैफ़िक को बांटने का तरीका.
  • सर्विस कॉल में गड़बड़ियों को लाने का तरीका.

आपको इनकी ज़रूरत होगी

इस ट्यूटोरियल का इस्तेमाल कैसे किया जाएगा?

इसे सिर्फ़ पढ़ें इसे पढ़ें और कसरतों को पूरा करें

Google Cloud Platform के साथ अपने अनुभव को कैसे रेटिंग दें?

शुरुआती इंटरमीडिएट कुशल

2. सेटअप और ज़रूरी शर्तें

अपने हिसाब से एनवायरमेंट सेटअप करना

  1. Cloud Console में साइन इन करें और नया प्रोजेक्ट बनाएं या किसी मौजूदा प्रोजेक्ट का फिर से इस्तेमाल करें. (अगर आपके पास पहले से Gmail या G Suite खाता नहीं है, तो आपको एक खाता बनाना होगा.)

H_hgylo4zxOllHaAbPKJ7VyqCKPDUnDhkr-BsBIFBsrB6TYSisg6LX-uqmMhh4sXUy_hoa2Qv87C2nFmkg-QAcCiZZp0qtpf6VPaNEEfP_iqt29KVLD-gklBWugQVeOWsFnJmNjHDw

dcCPqfBIwNO4R-0fNQLUC4aYXOOZhKhjUnakFLZJGeziw2ikOxGjGkCHDwN5x5kCbPFB8fiOzZnX-GfuzQ8Ox-UU15BwHirkVPR_0RJwl0oXrhqZmMIvZMa_uwHugBJIdx5-bZ6Z8Q

jgLzVCxk93d6E2bbonzATKA4jFZReoQ-fORxZZLEi5C3D-ubnv6nL-eP-iyh7qAsWyq_nyzzuEoPFD1wFOFZOe4FWhPBJjUDncnTxTImT3Ts9TM54f4nPpsAp52O0y3Cb19IceAEgQ

प्रोजेक्ट आईडी याद रखें. यह Google Cloud के सभी प्रोजेक्ट के लिए एक खास नाम होता है (ऊपर दिया गया नाम पहले ही ले लिया गया है और यह आपके लिए काम नहीं करेगा!). बाद में, इस कोडलैब को इस कोडलैब में PROJECT_ID के तौर पर दिखाया जाएगा.

  1. इसके बाद, आपको Google Cloud के संसाधनों का इस्तेमाल करने के लिए, Cloud Console में बिलिंग की सुविधा चालू करनी होगी.

इस कोडलैब का इस्तेमाल करने पर, आपको ज़्यादा पैसे नहीं चुकाने होंगे. "साफ़ करना" सेक्शन में दिए गए निर्देशों का पालन करना न भूलें सेक्शन में, संसाधनों को बंद करने का तरीका बताया गया है. इससे इस ट्यूटोरियल के अलावा बिलिंग की सुविधा नहीं मिलेगी. Google Cloud के नए उपयोगकर्ता, 300USD डॉलर के मुफ़्त में आज़माने वाले प्रोग्राम में हिस्सा ले सकते हैं.

Cloud Shell शुरू करना

Google Cloud को आपके लैपटॉप से, कहीं से भी इस्तेमाल किया जा सकता है. हालांकि, इस कोडलैब में Google Cloud Shell का इस्तेमाल किया जा सकता है. यह कमांड लाइन एनवायरमेंट है जो Google Cloud में काम करता है.

Cloud Shell चालू करें

  1. Cloud Console में, Cloud Shell चालू करें dnDTxS9j60RcXdTjea12HLB9paS9Gzf7PfFLE9RW8g0Qx1bz7nmCzyCu4rjluX3bOEwavOpDwioXEkzOf6xtZp6-ZbJa08jwJqwfFEWfiW2x पर क्लिक करें.

yzBQBp2RC1EFvSSLYVkMA2m6LHqGsp22O81rUS5tGb9Y1FqlVhoRj_ka8V_uEjtpcirZRULMy1IjNr848uYvb9mC9RcGGqeayaLcXFfRwUGeXWChZPtWkHzUshTcqx_wJHis0X8viA

अगर आपने Cloud Shell का इस्तेमाल पहले कभी नहीं किया है, तो आपको इसके बारे में जानकारी देने वाली एक इंटरमीडिएट स्क्रीन (पेज के फ़ोल्ड के नीचे) दिखेगी. अगर ऐसा है, तो जारी रखें पर क्लिक करें (यह आपको फिर कभी नहीं दिखेगा). एक बार इस्तेमाल होने वाली स्क्रीन कुछ इस तरह दिखती है:

VgsaqGbKPRiqK24CqAKjSXjepuJT96PmiDqQMcySmWKx8QyW5F3G2D8JH2d08ek-YM77wWKxPvggpOFER8Hbq3aaZipTDU2o0il7A0kSGMTQNFXY_N

प्रावधान करने और Cloud Shell से कनेक्ट होने में कुछ ही समय लगेगा.

7RuYr-LCKzdiE1veTFmL_lYrVxsMZ6-xDoxAnfwPPc5uFA0utmFGejvu81jGmTdbqnqxrytW3KcHT6xrMIRc3bskctnDZC5nJdpqw-LRxu3r35hL4A0BSBTtbtirfh3PKv-eOKt8Rg

इस वर्चुअल मशीन में ऐसे सभी डेवलपमेंट टूल मौजूद हैं जिनकी आपको ज़रूरत पड़ेगी. यह पांच जीबी की स्थायी होम डायरेक्ट्री उपलब्ध कराता है और Google Cloud में चलता है. यह नेटवर्क की परफ़ॉर्मेंस और पुष्टि करने की प्रोसेस को बेहतर बनाता है. अगर सभी नहीं, तो इस कोडलैब में आपका बहुत सारा काम बस किसी ब्राउज़र या आपके Chromebook से किया जा सकता है.

Cloud Shell से कनेक्ट करने के बाद, आपको दिखेगा कि आपकी पुष्टि पहले ही हो चुकी है. साथ ही, यह प्रोजेक्ट पहले से ही आपके प्रोजेक्ट आईडी पर सेट है.

  1. यह पुष्टि करने के लिए Cloud Shell में नीचे दिया गया कमांड चलाएं कि आपकी पुष्टि हो गई है:
gcloud auth list

कमांड आउटपुट

 Credentialed Accounts
ACTIVE  ACCOUNT
*       <my_account>@<my_domain.com>

To set the active account, run:
    $ gcloud config set account `ACCOUNT`
gcloud config list project

कमांड आउटपुट

[core]
project = <PROJECT_ID>

अगर ऐसा नहीं है, तो आप इसे इस निर्देश की मदद से सेट कर सकते हैं:

gcloud config set project <PROJECT_ID>

कमांड आउटपुट

Updated property [core/project].

3. ऐप्लिकेशन की जांच करें

लैब शुरू करने से पहले, पक्का करें कि यह ऐप्लिकेशन अब भी पिछले लैब से काम कर रहा हो. आपको याद दिला दें कि आपको गेटवे का बाहरी आईपी और पोर्ट इस तरह दिखता है, जो EXTERNAL-IP में दिए गए हैं:

kubectl get svc istio-ingressgateway -n istio-system

ऐप्लिकेशन देखने के लिए, अपना ब्राउज़र खोलें और http://<gatewayurl> पर जाएं:

f579a9baedc108a9.png

अगर आपको ऐप्लिकेशन नहीं दिखता है, तो पिछले लैब पर वापस जाएं. इससे यह पक्का किया जा सकेगा कि आपने सभी चरणों को फ़ॉलो किया है. साथ ही, यह भी पक्का करें कि ऐप्लिकेशन और Istio, दोनों सही तरीके से इंस्टॉल हों और ठीक से चल रहे हों.

इस समय, आपके मन में यह सवाल आ सकता है कि "इस्टियो का क्या फ़ायदा है?". Istio को अपने ऐप्लिकेशन के ट्रैफ़िक को मैनेज करने की अनुमति देने पर, आपको मेट्रिक, ट्रेसिंग, डाइनैमिक ट्रैफ़िक मैनेजमेंट, सर्विस विज़ुअलाइज़ेशन, गड़बड़ी इंजेक्शन वगैरह जैसी सुविधाएं बिना किसी शुल्क के मिलेंगी.

अगले चरण में, मेट्रिक के बारे में जानने से शुरुआत करें.

4. Grafana और Prometheus के साथ मेट्रिक

डिफ़ॉल्ट रूप से, Istio कुछ मेट्रिक जनरेट करता है. इन डिफ़ॉल्ट मेट्रिक के बारे में जानने और उन्हें विज़ुअलाइज़ करने के लिए, ऐड-ऑन का इस्तेमाल किया जा सकता है.

Prometheus

Prometheus एक ओपन सोर्स निगरानी समाधान है. Istio से जनरेट की गई मेट्रिक के बारे में क्वेरी करने के लिए, Prometheus का इस्तेमाल किया जा सकता है. हालांकि, इसके लिए आपको पहले Prometheus ऐड-ऑन इंस्टॉल करना होगा.

kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.8/samples/addons/prometheus.yaml

पुष्टि करें कि Prometheus चल रहा है:

kubectl get svc prometheus -n istio-system

NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE
prometheus   ClusterIP   10.31.243.62   <none>        9090/TCP   1d

http://<gatewayurl> पर कुछ बार जाकर या कर्ल निर्देश चलाकर ऐप्लिकेशन में कुछ ट्रैफ़िक भेजें.

Prometheus यूज़र इंटरफ़ेस (यूआई) के लिए पोर्ट फ़ॉरवर्डिंग सेट अप करें:

kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=prometheus -o jsonpath='{.items[0].metadata.name}') 8080:9090

अब Cloud Shell में, सबसे ऊपर दाएं कोने में मौजूद Web Preview बटन पर क्लिक करके, किसी क्वेरी को एक्ज़ीक्यूट किया जा सकता है. इसके बाद, पोर्ट 8080 पर झलक देखें पर क्लिक करें:

772a5248aa493025.png

आपको नए टैब में प्रोमेथस का यूज़र इंटरफ़ेस (यूआई) दिखेगा:

272ee63c1fe0be16.png

प्रोमेथियस के बारे में ज़्यादा जानने के लिए, प्रोमेथियस से मेट्रिक के बारे में क्वेरी करना लेख पढ़ें.

Grafana

Grafana, मेट्रिक को विज़ुअलाइज़ करने का एक और ऐड-ऑन है.

Grafana इंस्टॉल करें. istio-version को अपने मौजूदा Istio वर्शन से बदलें. उदाहरण के लिए, 1.0.3-gke.3:

kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.8/samples/addons/grafana.yaml

पुष्टि करें कि Grafana चल रहा है:

kubectl get svc grafana -n istio-system

NAME      TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
grafana   ClusterIP   10.31.248.230   <none>        3000/TCP   1d

http://<gatewayurl> पर कुछ बार जाकर या कर्ल निर्देश चलाकर ऐप्लिकेशन में कुछ ट्रैफ़िक भेजें.

Grafana यूज़र इंटरफ़ेस (यूआई) के लिए पोर्ट फ़ॉरवर्डिंग सेटअप करें:

kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=grafana -o jsonpath='{.items[0].metadata.name}') 8080:3000

आप वेब झलक पर जाकर, Grafana के डैशबोर्ड देख सकते हैं:

806d696d85267a37.png

524cb9f6d66f8655.png

ग्रैफ़ाना के बारे में ज़्यादा जानने के लिए, Grefana की मदद से मेट्रिक को विज़ुअलाइज़ करना देखें.

5. ऐप्लिकेशन का नया वर्शन बनाएं

आपने जो ऐप्लिकेशन प्रोडक्शन के लिए डिप्लॉय किए हैं, कभी-कभी आपको गड़बड़ियां ठीक करनी होंगी या कुछ अन्य सुविधाएं इस्तेमाल करनी होंगी. चलिए देखते हैं कि यह प्रोसेस कैसी दिखती है.

सबसे पहले, आइए ऐप्लिकेशन में बदलाव करते हैं. Cloud Shell से कोड एडिटर खोलें.

mxrggIJ2Zz8E47ULCEo4NywjM-EpSkZF5c3TQgfGx4nODwP2obiQXrwQjEEaXuBhJDA2jJ5evR7TuHIy1gsqqDRFm0Wh3xhZUu9tn_xb1ygFlBm1HKJqLdfz_aK7WJS33u2IBDO2oQ

HelloWorldAspNetCore > Views > Home में जाकर, Index.cshtml पर जाएं और किसी एक कैरसेल मैसेज को अपडेट करें.

यह लाइन ढूंढें:

Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core 

और इसे इसमें बदलें:

Learn about <a href="https://docs.microsoft.com/aspnet/core">building Web apps with ASP.NET Core on Google Cloud

बदलावों को सेव करें. इसके बाद, Cloud Shell पर वापस जाएं. HelloWorldAspNetCore, के अंदर डॉकर इमेज बनाएं:

docker build -t gcr.io/${GOOGLE_CLOUD_PROJECT}/hello-dotnet:v2 . 

और कंटेनर रजिस्ट्री में जाएं:

docker push gcr.io/${GOOGLE_CLOUD_PROJECT}/hello-dotnet:v2 

कंटेनर इमेज को पुश करने के बाद, अगले चरण में आप नया वर्शन डिप्लॉय कर सकते हैं.

6. नया डिप्लॉयमेंट बनाएं

नया वर्शन डिप्लॉय करने के लिए, आपको सबसे पहले Kubernetes में इसके लिए एक नया डिप्लॉयमेंट बनाना होगा. aspnetcore.yaml फ़ाइल के आखिर में यह जोड़ें:

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: aspnetcore-v2
spec:
  replicas: 1
  selector:
    matchLabels:
      app: aspnetcore
      version: v2
  template:
    metadata:
      labels:
        app: aspnetcore
        version: v2
    spec:
      containers:
      - name: aspnetcore
        image: gcr.io/YOUR-PROJECT-ID/hello-dotnet:v2
        imagePullPolicy: IfNotPresent
        ports:
        - containerPort: 8080

kubectl के साथ डिफ़ॉल्ट नेमस्पेस पर नया वर्शन डिप्लॉय करें:

kubectl apply -f aspnetcore.yaml
service "aspnetcore" unchanged
deployment.extensions "aspnetcore-v1" unchanged
deployment.extensions "aspnetcore-v2" created

पुष्टि करें कि सही पॉड चल रहे हैं:

kubectl get pods
NAME                          READY     STATUS    RESTARTS   AGE
aspnetcore-v1-6cf64748-mddb   2/2       Running   0          34s
aspnetcore-v2-5d765db-l9xmg   2/2       Running   0          1m

अब, ऐप्लिकेशन को फिर से टेस्ट करें. गेटवे का एक्सटर्नल आईपी पता पाएं:

kubectl get svc istio-ingressgateway -n istio-system

यह EXTERNAL-IP की सूची में मौजूद है. गुप्त ब्राउज़र खोलें और http://<replace-with-external-ip> पर जाएं

रीफ़्रेश करने पर, कभी-कभी आपको "ASP.NET Core की मदद से वेब ऐप्लिकेशन बनाने के बारे में जानें" मैसेज दिखेगा:

11d528132dbb6cee.png

अन्य बार, आपको "Google Cloud पर ASP.NET Core की मदद से वेब ऐप्लिकेशन बनाने के बारे में जानें" मैसेज दिखेगा:

3eb0d5be1b4cb40b.png

ऐसा इसलिए है, क्योंकि v1 और v2, दोनों डिप्लॉयमेंट को एक ही Kubernetes सेवा (aspnetcore-service) के साथ डिप्लॉय किया गया है और पिछली लैब (aspnetcore-virtualservice) में बनाया गया VirtualService इस सेवा का इस्तेमाल होस्ट के तौर पर करता है.

अगले चरण में, DestinationRule का इस्तेमाल करके, सेवा को v2 डिप्लॉयमेंट में पिन करें.

7. अपनी सेवा को नए वर्शन में पिन करें

इस चरण में, v2 डिप्लॉयमेंट का इस्तेमाल करने के लिए सेवा को पिन किया जाता है और DestinationRule का इस्तेमाल किया जा सकता है. गंतव्य नियम, VirtualService रूटिंग कार्रवाई के बाद अनुरोध पर लागू होने वाली नीतियों के सेट को कॉन्फ़िगर करता है.

गंतव्य नियम, पता लगाए जा सकने वाले सबसेट, जिसका मतलब है, संबंधित गंतव्य होस्ट के नाम वाले वर्शन भी तय करता है. सेवा के खास वर्शन पर ट्रैफ़िक भेजते समय, इन सबसेट का इस्तेमाल VirtualService रूट की खास जानकारी में किया जाता है.

aspnetcore-destinationrule.yaml नाम की एक नई फ़ाइल बनाएं:

apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
  name: aspnetcore-destinationrule
spec:
  host: aspnetcore-service
  trafficPolicy:
    tls:
      mode: ISTIO_MUTUAL
  subsets:
  - name: v1
    labels:
      version: v1
  - name: v2
    labels:
      version: v2

इसके बाद, गंतव्य नियम बनाएं. इससे दो सबसेट (v1 और v2) बनते हैं, जिनका इस्तेमाल VirtualService से किया जा सकता है:

kubectl apply -f aspnetcore-destinationrule.yaml
destinationrule.networking.istio.io "aspnetcore-destionationrule" created

अब aspnetcore-virtualservice.yaml फ़ाइल पर वापस जाएं और v2 के सबसेट का इस्तेमाल करने के लिए, VirtualService को अपडेट करें:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: aspnetcore-virtualservice
spec:
  hosts:
  - "*"
  gateways:
  - aspnetcore-gateway
  http:
  - route:
    - destination:
        host: aspnetcore-service
        subset: v2

VirtualService अपडेट करें:

kubectl apply -f aspnetcore-virtualservice.yaml

अपना ब्राउज़र खोलें और http://<replace-with-external-ip>. पर जाएं. कई बार रीफ़्रेश करने के बाद भी, आपको "Google Cloud पर ASP.NET Core की मदद से वेब ऐप्लिकेशन बनाने के बारे में जानें" मैसेज दिखेगा:

3eb0d5be1b4cb40b.png

8. अलग-अलग वर्शन के बीच ट्रैफ़िक को बांटना

कभी-कभी, हो सकता है कि आप ट्रैफ़िक को टेस्ट करने के लिए, अलग-अलग वर्शन के बीच बांटना चाहें. उदाहरण के लिए, हो सकता है कि आप v1 को 75% ट्रैफ़िक और सेवा के v2 वर्शन को 25% ट्रैफ़िक भेजना चाहते हों. Istio की मदद से, ऐसा आसानी से किया जा सकता है. अलग-अलग महत्व वाले दो सबसेट का रेफ़रंस देने के लिए, नई aspnetcore-virtualservice-weights.yaml फ़ाइल बनाएं:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: aspnetcore-virtualservice
spec:
  hosts:
  - "*"
  gateways:
  - aspnetcore-gateway
  http:
  - route:
    - destination:
        host: aspnetcore-service
        subset: v1
      weight: 75
    - destination:
        host: aspnetcore-service
        subset: v2
      weight: 25

VirtualService अपडेट करें:

kubectl apply -f aspnetcore-virtualservice-weights.yaml

अब, ब्राउज़र को रीफ़्रेश करने पर, आपको v1 बनाम v2 वर्शन दिखेंगे. ये वर्शन करीब 3:1 के अनुपात में दिखाए जाते हैं.

ज़्यादा जानने के लिए, Istio में ट्रैफ़िक का बंटवारा लेख पढ़ें.

9. गड़बड़ियां इंजेक्ट करें

टेस्टिंग के लिए डेवलपमेंट से जुड़ा एक और ज़रूरी काम है, ट्रैफ़िक में गड़बड़ियां या देरी डालना. साथ ही, यह देखना कि सेवाएं इस तरह काम करती हैं या नहीं.

उदाहरण के लिए, हो सकता है कि आप वर्शन 1 वर्शन को 50% ट्रैफ़िक के लिए खराब अनुरोध (HTTP 400) का जवाब देना चाहें. इनका मिलान करने के लिए aspnetcore-virtualservice-fault-abort.yaml फ़ाइल बनाएं:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: aspnetcore-virtualservice
spec:
  hosts:
  - "*"
  gateways:
  - aspnetcore-gateway
  http:
  - fault:
      abort:
        percentage:
          value: 50
        httpStatus: 400
    route:
    - destination:
        host: aspnetcore-service
        subset: v1

VirtualService अपडेट करें:

kubectl apply -f aspnetcore-virtualservice-fault-abort.yaml

अब, जब आप ब्राउज़र को रीफ़्रेश करते हैं, तो आपको दिखाई देगा कि आधा समय, v1 सेवा एक HTTP 400s रिस्पॉन्स कोड दिखाती है.

इसके अलावा, आपको अनुरोधों में पांच सेकंड की देरी भी करनी पड़ सकती है. इनका मिलान करने के लिए aspnetcore-virtualservice-fault-delay.yaml फ़ाइल बनाएं:

apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
  name: aspnetcore-virtualservice
spec:
  hosts:
  - "*"
  gateways:
  - aspnetcore-gateway
  http:
  - fault:
      delay:
        fixedDelay: 5s
        percentage:
          value: 100
    route:
    - destination:
        host: aspnetcore-service
        subset: v1

VirtualService अपडेट करें:

kubectl apply -f aspnetcore-virtualservice-fault-delay.yaml

अब, ब्राउज़र को रीफ़्रेश करने पर, आपको दिखेगा कि अनुरोधों में 5 सेकंड की देरी है.

Istio की सुविधाओं के बारे में ज़्यादा जानने के लिए, ट्रैफ़िक मैनेजमेंट की सुविधाएं देखें. जैसे, टाइम आउट, बार-बार कोशिश, कंडिशनल रूल, सर्किट ब्रेकर वगैरह.

10. बधाई हो!

उम्मीद है कि इस लैब से आपको इस बारे में खास जानकारी मिलेगी कि Istio आपकी सेवाओं के लिए किस तरह से मदद कर सकता है. Istio और GKE (जीकेई) के बारे में ज़्यादा जानने के लिए.

अगले चरण

लाइसेंस

इस काम को क्रिएटिव कॉमंस एट्रिब्यूशन 2.0 जेनरिक लाइसेंस के तहत लाइसेंस मिला है.

11. साफ़-सफ़ाई सेवा

आपके पास ऐप्लिकेशन को मिटाने और Istio को अनइंस्टॉल करने का विकल्प है. इसके अलावा, आपके पास Kubernetes क्लस्टर को मिटाने का विकल्प भी है.

ऐप्लिकेशन मिटाना

ऐप्लिकेशन मिटाने के लिए:

kubectl delete -f aspnetcore-gateway.yaml
kubectl delete -f aspnetcore-virtualservice.yaml
kubectl delete -f aspnetcore-destinationrule.yaml
kubectl delete -f aspnetcore.yaml

इस बात की पुष्टि करने के लिए कि ऐप्लिकेशन उपलब्ध नहीं है:

kubectl get gateway 
kubectl get virtualservices
kubectl get destinationrule
kubectl get pods

istio को अनइंस्टॉल करें

Istio को मिटाने के लिए:

kubectl delete -f install/kubernetes/istio-demo-auth.yaml

Istio की सेवा खत्म होने की पुष्टि करने के लिए:

kubectl get pods -n istio-system

Kubernetes क्लस्टर मिटाना

gcloud container clusters delete hello-dotnet-cluster