مشاركة عبر


كشف خدمة AKS عبر HTTP أو HTTPS باستخدام بوابة التطبيق

توضح هذه المقالة استخدام موارد دخول Kubernetes لعرض مثال لخدمة Azure Kubernetes (AKS) من خلال بوابة تطبيق Azure عبر HTTP أو HTTPS.

تلميح

ضع في اعتبارك بوابة التطبيق للحاويات لحل دخول Kubernetes الخاص بك.

المتطلبات الأساسية

  • مخطط Helm مثبت ingress-azure :
    • نشر Greenfield: إذا كنت تبدأ من البداية، فراجع إرشادات التثبيت هذه، والتي توضح خطوات نشر مجموعة AKS مع بوابة التطبيق وتثبيت وحدة تحكم دخول بوابة التطبيق (AGIC) على نظام مجموعة AKS.
    • توزيع Brownfield: إذا كان لديك نظام مجموعة AKS موجود ونشر Application Gateway، فراجع هذه الإرشادات لتثبيت AGIC على نظام مجموعة AKS.
  • شهادة x509 ومفتاحها الخاص، إذا كنت تريد استخدام HTTPS على هذا التطبيق.

نشر تطبيق دفتر الضيوف

guestbook التطبيق هو تطبيق Kubernetes متعارف عليه يتكون من واجهة مستخدم ويب أمامية وواجهة خلفية وقاعدة بيانات Redis.

بشكل افتراضي، guestbook يعرض تطبيقه من خلال خدمة بالاسم frontend على المنفذ 80. بدون مورد دخول Kubernetes، لا يمكن الوصول إلى الخدمة من خارج نظام مجموعة AKS. يمكنك استخدام التطبيق، وإعداد موارد الدخول للوصول إلى التطبيق، من خلال HTTP وHTTPS.

لنشر guestbook التطبيق:

  1. قم بالتنزيل guestbook-all-in-one.yaml من صفحة GitHub هذه.

  2. انشر guestbook-all-in-one.yaml في مجموعة AKS الخاصة بك عن طريق تشغيل هذا الأمر:

    kubectl apply -f guestbook-all-in-one.yaml
    

كشف الخدمات عبر HTTP

guestbook لعرض التطبيق، استخدم مورد الدخول التالي:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: guestbook
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
spec:
  rules:
  - http:
      paths:
      - backend:
          serviceName: frontend
          servicePort: 80

يعرض frontend هذا الدخول خدمة guestbook-all-in-one النشر كواجهة خلفية افتراضية لتوزيع بوابة التطبيق.

احفظ مورد الدخول السابق ك ing-guestbook.yaml:

  1. النشر ing-guestbook.yaml عن طريق تشغيل هذا الأمر:

    kubectl apply -f ing-guestbook.yaml
    
  2. تحقق من سجل وحدة تحكم الدخول لحالة النشر.

الآن يجب أن يكون التطبيق guestbook متاحًا. يمكنك التحقق من التوفر عن طريق زيارة العنوان العام لنشر بوابة التطبيق.

كشف الخدمات عبر HTTPS

بدون اسم مضيف محدد

إذا لم تحدد اسم مضيف، guestbook فستتوفر الخدمة على جميع أسماء المضيفين التي تشير إلى نشر بوابة التطبيق.

  1. قبل نشر مورد الدخول، قم بإنشاء سر Kubernetes لاستضافة الشهادة والمفتاح الخاص:

    kubectl create secret tls <guestbook-secret-name> --key <path-to-key> --cert <path-to-cert>
    
  2. حدد مورد الدخول التالي. في secretName القسم ، استبدل <guestbook-secret-name> باسم سرك.

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: guestbook
      annotations:
        kubernetes.io/ingress.class: azure/application-gateway
    spec:
      tls:
        - secretName: <guestbook-secret-name>
      rules:
      - http:
          paths:
          - backend:
              serviceName: frontend
              servicePort: 80
    
  3. تخزين مورد الدخول في ملف يسمى ing-guestbook-tls.yaml.

  4. النشر ing-guestbook-tls.yaml عن طريق تشغيل هذا الأمر:

    kubectl apply -f ing-guestbook-tls.yaml
    
  5. تحقق من سجل وحدة تحكم الدخول لحالة النشر.

guestbook الآن التطبيق متاح على كل من HTTP وHTTPS.

مع اسم مضيف محدد

يمكنك أيضا تحديد اسم المضيف على مورد الدخول إلى تكوينات وخدمات TLS متعددة. عند تحديد اسم مضيف، guestbook تتوفر الخدمة فقط على المضيف المحدد.

  1. حدد مورد الدخول التالي. في secretName القسم ، استبدل <guestbook-secret-name> باسم سرك. في hosts القسمين و host ، استبدل <guestbook.contoso.com> باسم المضيف الخاص بك.

    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: guestbook
      annotations:
        kubernetes.io/ingress.class: azure/application-gateway
    spec:
      tls:
        - hosts:
          - <guestbook.contoso.com>
          secretName: <guestbook-secret-name>
      rules:
      - host: <guestbook.contoso.com>
        http:
          paths:
          - backend:
              serviceName: frontend
              servicePort: 80
    
  2. النشر ing-guestbook-tls-sni.yaml عن طريق تشغيل هذا الأمر:

    kubectl apply -f ing-guestbook-tls-sni.yaml
    
  3. تحقق من سجل وحدة تحكم الدخول لحالة النشر.

guestbook الآن يتوفر التطبيق على كل من HTTP وHTTPS، فقط على المضيف المحدد.

التكامل مع الخدمات الأخرى

استخدم مورد الدخول التالي لإضافة مسارات وإعادة توجيه هذه المسارات إلى خدمات أخرى:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: guestbook
  annotations:
    kubernetes.io/ingress.class: azure/application-gateway
spec:
  rules:
  - http:
      paths:
      - path: </other/*>
        backend:
          serviceName: <other-service>
          servicePort: 80
       - backend:
          serviceName: frontend
          servicePort: 80