برنامه نویسی

IKO – درس آموخته شده (قسمت 2 – Iriscluster)

اکنون می توانیم از IKO استفاده کنیم.

در زیر محیطی را که از طریق C ایجاد خواهیم کرد تعریف می کنیمتعریف منابع USTOM (CRD). این امکان را به ما می دهد تا چیزی را در خارج از قلمرو آنچه Kubernetes استاندارد می داند تعریف کنیم (این اشیاء مانند غلاف ، خدمات ، حجم مداوم (و ادعاها) ، پیکربندی ، اسرار و موارد دیگر است). ما در حال ساختن یک جدید هستیم مهربان شیء ، یک شیء iriscluster.

apiVersion: intersystems.com/v1alpha1
kind: IrisCluster
metadata:
  name: simple
spec:
  licenseKeySecret:
    #; to activate ISC license key
    name: iris-key-secret
  configSource:
    #; contains CSP-merge.ini, which is merged into IKO's
    #; auto-generated configuration.
    name: iris-cpf
  imagePullSecrets:
    - name: intersystems-pull-secret

  topology:
    data:
      image: containers.intersystems.com/intersystems/irishealth:2023.3
      compatibilityVersion: "2023.3"
    webgateway:
      replicas: 1
      image: containers.intersystems.com/intersystems/webgateway:2023.3
      applicationPaths:
        #; All of the IRIS instance's system default applications.
        #; For Management Portal only, just use '/csp/sys'.
        #; To support other applications, please add them to this list.
        - /csp/sys
        - /csp/broker
        - /api
        - /isc
        - /oauth2
        - /ui
        - /csp/healthshare
      alternativeServers: LoadBalancing
      loginSecret:
        name: iris-webgateway-secret

  serviceTemplate:
    # ; to enable external IP addresses
    spec:
      type: LoadBalancer

شیء Iriscluster بر استقرار همه مؤلفه های محیط عنبیه ما نظارت و تسهیل می کند. در این محیط خاص ما خواهیم داشت:

  • 1 عنبیه برای مثال سلامت (به شکل یک گره داده)
  • 1 دروازه وب (به شکل یک گره دروازه وب)

مخفی Iris-key یک شی راز مهربان است. در اینجا کلید خود را ذخیره خواهیم کرد. برای ایجاد آن:

kubectl create secret generic iris-key-secret --from-file=iris.key

توجه داشته باشید که اگر پرونده شما با نام Iris.Key نامگذاری نشده است ، خطایی خواهید داشت. اگر اصرار دارید که آن را نامگذاری کنید ، می توانید این کار را انجام دهید:

kubectl create secret generic iris-key-secret --from-file=iris.key=yourKeyFile.key

Iris-CPF یک فایل پیکربندی است. ما آن را به عنوان یک موضوع از نوع ConfigMap ایجاد خواهیم کرد.

kubectl create cm iris-cpf --from-file common.cpf

در پرونده مشترک. cpf فقط رمز عبور وجود دارد. می توانید آن را با استفاده از تصویر رمزعبور Hash به شرح زیر ایجاد کنید:

$ docker run --rm -it containers.intersystems.com/intersystems/passwordhash:1.1 -algorithm SHA512 -workfactor 10000
Enter password:
Enter password again:
PasswordHash=2b679c8c944e2cbc2c5e4b12c62b76d5dee07f28099083940b816197ca0ffbd807c36cef7d16e17bdfe4f7a2cd45a09f6e50bef1bac8f5978362eef7d2997f3a,eac33175d6268d7bb89edb48600a3fd59d9ccd4777959bbbcc31cdb726f9b956e31fedd44c016a48d0098ffc605ac6a17b5767bfdebefe01b078ef2efd40f84f,10000,SHA512

سپس خروجی را در Common.cpf (ضمیمه) خود قرار دهید. توجه داشته باشید که data.cpf و compute.cpf ذکر شده در اسناد IKO برای مشخص کردن پیکربندی اضافی داده ها و گره های محاسبه است. این در حال حاضر برای ما بیش از حد است – فقط بدانید که آنها وجود دارند.

ما فقط می خواهیم در هنگام راه اندازی یک رمز عبور از خودمان تعریف کنیم. اگر این کار را نکنیم ، از ما خواسته می شود اولین باری که وارد سیستم می شویم ، رمز عبور خود را تغییر دهیم (توجه داشته باشید که اولین بار نام کاربری/رمزعبور پیش فرض _system/sys است ، در صورت عدم تعریف یکی).

روی راز بعدی ، یکی برای کشیدن تصویر از رجیستری. من از Registry Container Intersystems (ICR) استفاده می کنم ، اما تعداد زیادی از مشتریان ما ثبت نام های خاص خود را دارند که در آن تصاویر ما را تحت فشار قرار می دهند. این هم عالی است فقط توجه داشته باشید که نحوه ایجاد راز خود به نحوه دسترسی به رجیستری خود بستگی دارد. برای ICR به شرح زیر است:

kubectl create secret docker-registry intersystems-pull-secret --docker-server=https://containers.intersystems.com --docker-username="<your username>" --docker-password='<your password>' --docker-email="<your email>"

ما یک راز باقی مانده است ، اما بیایید ابتدا از توپولوژی براق شویم.

توپولوژی محیطی عنبیه است که می خواهیم ایجاد کنیم. به طور خاص ، این گره داده و دروازه وب است. با توجه به تصویر ، من می بینم که برخی از افراد دوست دارند از: آخرین برچسب استفاده کنند ، همانطور که معمولاً روش خوبی برای اطمینان از نرم افزار به روز است. من فکر می کنم در این حالت ، این در واقع بهتر است که مشخص کنیم چه نسخه ای می خواهد زیرا بهترین عمل برای مشخص کردن سازگاری است. اطلاعات بیشتر در مورد آن را اینجا ببینید.

در مورد WebGateway ، ما می توانیم تعداد زیادی را که می خواهیم پیکربندی کنیم ، چه مسیرهای کاربردی باید در دسترس باشد و Loginsecret. این راز این است که چگونه WebGateway وارد Iris می شود.

kubectl create secret generic iris-webgateway-secret --from-literal="username=CSPSystem" --from-literal="password=SYS"

شرح تصویر

این آخرین راز ما است ، اما می توانید اطلاعات بیشتری در مورد آنها در مستندات Kubernetes بخوانید.

سرانجام ، ما سرویس ارائه می دهیم.

روند ما دو سرویس برای ما ایجاد می کند (بقیه خارج از محدوده این مقاله هستند و در حال حاضر نباید شما را نگران کنند): 1) ساده و 2) Webgateway ساده.

در حال حاضر ، تمام آنچه شما باید در مورد خدمات بدانید این است که آنها برنامه هایی را که در غلاف ها اجرا می شوند ، افشا می کنند. با دویدن kubectl دریافت svc، می توانید IP خارجی را مشاهده کنید که این دو سرویس ایجاد می کنند. اگر خوشه Kubernetes خود را بر روی Docker-Desktop مانند من اجرا می کنید ، پس LocalHost خواهد بود.

و ما به درگاه های آشنا توجه می کنیم.

شرح تصویر

دلیل این امر این است که این وب سایت های داخلی و خارجی ما است. به عنوان مثال ، ما می توانیم از طریق سرور وب خارجی به پورتال مدیریت خود برویم: http: //localhost/csp/sys/utilhome.csp. HTTP ما را به طور خودکار به پورت 80 (HTTPS تا 443) می برد ، به همین دلیل نیازی به مشخص کردن پورت در اینجا نداریم.

فعلاً همین است. در مقاله بعدی ما نیش دیگری را از خدمات خارج خواهیم کرد.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا