Fadak.IR راهکارهای فدک
English Русский العربية فارسی
مقالات مدیریت مطالعات زبان


/ مدیریت

آموزش API در کوبرنتیز (فایل yaml)


      انواع منبع کوبرنتیز
         گسترش  (Deployment)
         سرویس (Service)
         ورود (Ingress)
         صادرکننده خوشه (ClusterIssuer)
         نقشه پیکربندی (ConfigMap)
         Namespace
         Pod
         Job
         Application
      API
         api-versions
         api-resources

انواع منبع کوبرنتیز

گسترش  (Deployment)

Deployment در Kubernetes برای مدیریت و استقرار خودکار پادها (Pods) استفاده می‌شود. این شیء به شما امکان می‌دهد مقیاس‌پذیری، به‌روزرسانی، بازگشت به نسخه قبلی (Rollback) و در دسترس بودن سرویس را به‌صورت خودکار مدیریت کنید.

کاربردها:

 

* مشخص کردن API و نوع Kubernetes Resource

apiVersion: apps/v1 → نسخه API که این Deployment از آن استفاده می‌کند.

-
kind: Deployment → نشان می‌دهد که این فایل مربوط به یک استقرار (Deployment) است.

***

* تنظیمات metadata (شناسه‌یابی و نام‌گذاری)

-

name: php → نام این Deployment که در Kubernetes قابل شناسایی است.

-
 labels: app: php → یک برچسب (Label) برای دسته‌بندی این سرویس در Kubernetes.

***

* تعریف مشخصات استقرار (spec)

-

replicas: 1 → تعداد نسخه‌های این برنامه که اجرا خواهد شد (در اینجا فقط یک عدد).

-
 selector → این قسمت مشخص می‌کند که Deployment به دنبال Podsی است که دارای labels: app: php باشند.

-

template → این قسمت مشخصات پادهایی که قرار است توسط Deployment اجرا شود را تعریف می‌کند.

-
 labels: app: php → هر Pod که از این Deployment ساخته شود، این برچسب را خواهد داشت.

-

 containers → این قسمت لیست کانتینرهای داخل Pod را مشخص می‌کند.

-
 name: php → نام این کانتینر (می‌توان از آن برای logs و exec استفاده کرد).

-
 image: php:8.0-apache → ایمیج Docker که استفاده می‌شود (PHP 8.0 همراه با Apache).

-

ports: - containerPort: 80 → این کانتینر روی پورت ۸۰ درون Pod اجرا خواهد شد (که معمولاً برای وب‌سرور استفاده می‌شود).

/// دانلود فایل به صورت کامل

***

روش اول دستور:

command → دستور

command: ["sh", "-c"]
args:
  - |
    PHP_VERSION=$(php -v | head -n1 | cut -d' ' -f2 | cut -d. -f1-2) \
    && mkdir -p /tmp/sourceguardian \
    && apache2-foreground

 

روش دوم دستور:

command → دستور

command:
  - sh
  - -c
  - |
    while true; do sleep 3600; done

***

سیاست راه‌اندازی (Restart Policy)

-

restartPolicy: Never  →  هرگز به این معنی است که پاد پس از خروج (Crash) مجدداً راه‌اندازی نخواهد شد.در صورتی که قصد داشته باشیم پس از کرش دوباره راه‌اندازی شود، باید مقدار Always یا OnFailure را استفاده نمود.

***

* منابع تخصیص‌یافته (Resource Limits)

resources:
  limits:
    memory: "512Mi"
    cpu: "500m"

512Mi → حداکثر 512 مگابایت RAM.

500m → حداکثر نصف یک پردازنده (0.5 CPU core).

-

*** متغیرهای محیطی (Environment Variables)

env:
  - name: DB_HOST
    value: 20.20.20.20
  - name: DB_NAME
    value: WordPress

-

*** ذخیره‌سازی دائمی (Volumes)

-

از PersistentVolumeClaim با نام php-pvc برای ذخیره‌سازی دائمی استفاده می‌شود.

-

claimName: php-pvc   نام ادعا

-

*** اتصال دایرکتوری به کانتینر (hostPath)

-

hostPath →   اتصال دایرکتوری به کانتینر 

-

path: /var/www/html/  →     مسیر  

-

type: DirectoryOrCreate  →  اگر دایرکتوری وجود نداشته باشد، آن را ایجاد می‌کند.

-

initContainer برای بررسی اجرای کانتینر

-

initContainer ایجاد شده که قبل از اجرای کانتینر اصلی اجرا می‌شود. یعنی باعث می‌شود پاد اصلی فقط زمانی اجرا شود که پایگاه داده آماده باشد.

-

readinessProbe بررسی می‌کند که آیا کانتینر آماده سرویس‌دهی است یا نه.

-

initialDelaySeconds: 5 → پس از ۵ ثانیه اولین بررسی انجام می‌شود.

-

periodSeconds: 10 → هر ۱۰ ثانیه یک‌بار این بررسی انجام می‌شود.

 

 

سرویس (Service)

Service در Kubernetes یک IP پایدار و یک نقطه دسترسی ثابت برای ارتباط بین پادها و سایر سرویس‌ها ارائه می‌دهد. چون پادها ممکن است به دلایل مختلف حذف یا جایگزین شوند، Service به‌عنوان یک لایه مجازی‌سازی شبکه‌ای برای آنها عمل می‌کند.

کاربردها:

---

ورود (Ingress)

Ingress در Kubernetes برای مدیریت ورود درخواست‌های HTTP/HTTPS از بیرون خوشه به سرویس‌های داخلی استفاده می‌شود. این شیء برخلاف Service که فقط IP و پورت را مدیریت می‌کند، می‌تواند مسیرها و دامنه‌های مختلف را مدیریت کند.

کاربردها:

 

صادرکننده خوشه (ClusterIssuer)

صادرکننده خوشه (ClusterIssuer) یکی از مؤلفه‌های Cert-Manager است که برای صدور گواهینامه‌های SSL/TLS در سطح کل خوشه استفاده می‌شود.

کاربردها:

 

نقشه پیکربندی (ConfigMap)

نقشه پیکربندی (ConfigMap) در Kubernetes برای ذخیره و مدیریت تنظیمات متنی (Config Files, Environment Variables) برنامه‌ها به کار می‌رود. این قابلیت به شما امکان می‌دهد بدون نیاز به تغییر تصویر (Image) برنامه، تنظیمات آن را مدیریت کنید.

کاربردها:

 

Namespace

 

Pod

 

 

 

Job

 

 

Application

 

 

جمع بندی

کامپوننت کاربرد
Deployment مدیریت استقرار، مقیاس‌پذیری و به‌روزرسانی برنامه‌ها
Service ارائه آدرس پایدار و امکان ارتباط بین پادها
Ingress مسیردهی درخواست‌های خارجی به سرویس‌ها و مدیریت دامنه‌ها
ClusterIssuer صدور و مدیریت خودکار گواهینامه‌های SSL/TLS
ConfigMap ذخیره‌سازی و مدیریت تنظیمات برنامه بدون تغییر Image

 

API

api-versions

acme.cert-manager.io/v1
admissionregistration.k8s.io/v1
apiextensions.k8s.io/v1
apiregistration.k8s.io/v1
apps/v1
authentication.k8s.io/v1
authorization.k8s.io/v1
autoscaling/v1
autoscaling/v2
batch/v1
cert-manager.io/v1
certificates.k8s.io/v1
coordination.k8s.io/v1
discovery.k8s.io/v1
events.k8s.io/v1
flowcontrol.apiserver.k8s.io/v1
flowcontrol.apiserver.k8s.io/v1beta3
helm.cattle.io/v1
k3s.cattle.io/v1
metrics.k8s.io/v1beta1
networking.k8s.io/v1
node.k8s.io/v1
policy/v1
rbac.authorization.k8s.io/v1
scheduling.k8s.io/v1
storage.k8s.io/v1
traefik.containo.us/v1alpha1
traefik.io/v1alpha1
v1

api-resources

NAME                                SHORTNAMES   APIVERSION                        NAMESPACED   KIND
bindings                                         v1                                true         Binding
componentstatuses                   cs           v1                                false        ComponentStatus
configmaps                          cm           v1                                true         ConfigMap
endpoints                           ep           v1                                true         Endpoints
events                              ev           v1                                true         Event
limitranges                         limits       v1                                true         LimitRange
namespaces                          ns           v1                                false        Namespace
nodes                               no           v1                                false        Node
persistentvolumeclaims              pvc          v1                                true         PersistentVolumeClaim
persistentvolumes                   pv           v1                                false        PersistentVolume
pods                                po           v1                                true         Pod
podtemplates                                     v1                                true         PodTemplate
replicationcontrollers              rc           v1                                true         ReplicationController
resourcequotas                      quota        v1                                true         ResourceQuota
secrets                                          v1                                true         Secret
serviceaccounts                     sa           v1                                true         ServiceAccount
services                            svc          v1                                true         Service
challenges                                       acme.cert-manager.io/v1           true         Challenge
orders                                           acme.cert-manager.io/v1           true         Order
mutatingwebhookconfigurations                    admissionregistration.k8s.io/v1   false        MutatingWebhookConfiguration
validatingadmissionpolicies                      admissionregistration.k8s.io/v1   false        ValidatingAdmissionPolicy
validatingadmissionpolicybindings                admissionregistration.k8s.io/v1   false        ValidatingAdmissionPolicyBinding
validatingwebhookconfigurations                  admissionregistration.k8s.io/v1   false        ValidatingWebhookConfiguration
customresourcedefinitions           crd,crds     apiextensions.k8s.io/v1           false        CustomResourceDefinition
apiservices                                      apiregistration.k8s.io/v1         false        APIService
controllerrevisions                              apps/v1                           true         ControllerRevision
daemonsets                          ds           apps/v1                           true         DaemonSet
deployments                         deploy       apps/v1                           true         Deployment
replicasets                         rs           apps/v1                           true         ReplicaSet
statefulsets                        sts          apps/v1                           true         StatefulSet
selfsubjectreviews                               authentication.k8s.io/v1          false        SelfSubjectReview
tokenreviews                                     authentication.k8s.io/v1          false        TokenReview
localsubjectaccessreviews                        authorization.k8s.io/v1           true         LocalSubjectAccessReview
selfsubjectaccessreviews                         authorization.k8s.io/v1           false        SelfSubjectAccessReview
selfsubjectrulesreviews                          authorization.k8s.io/v1           false        SelfSubjectRulesReview
subjectaccessreviews                             authorization.k8s.io/v1           false        SubjectAccessReview
horizontalpodautoscalers            hpa          autoscaling/v2                    true         HorizontalPodAutoscaler
cronjobs                            cj           batch/v1                          true         CronJob
jobs                                             batch/v1                          true         Job
certificaterequests                 cr,crs       cert-manager.io/v1                true         CertificateRequest
certificates                        cert,certs   cert-manager.io/v1                true         Certificate
clusterissuers                                   cert-manager.io/v1                false        ClusterIssuer
issuers                                          cert-manager.io/v1                true         Issuer
certificatesigningrequests          csr          certificates.k8s.io/v1            false        CertificateSigningRequest
leases                                           coordination.k8s.io/v1            true         Lease
endpointslices                                   discovery.k8s.io/v1               true         EndpointSlice
events                              ev           events.k8s.io/v1                  true         Event
flowschemas                                      flowcontrol.apiserver.k8s.io/v1   false        FlowSchema
prioritylevelconfigurations                      flowcontrol.apiserver.k8s.io/v1   false        PriorityLevelConfiguration
helmchartconfigs                                 helm.cattle.io/v1                 true         HelmChartConfig
helmcharts                                       helm.cattle.io/v1                 true         HelmChart
addons                                           k3s.cattle.io/v1                  true         Addon
etcdsnapshotfiles                                k3s.cattle.io/v1                  false        ETCDSnapshotFile
nodes                                            metrics.k8s.io/v1beta1            false        NodeMetrics
pods                                             metrics.k8s.io/v1beta1            true         PodMetrics
ingressclasses                                   networking.k8s.io/v1              false        IngressClass
ingresses                           ing          networking.k8s.io/v1              true         Ingress
networkpolicies                     netpol       networking.k8s.io/v1              true         NetworkPolicy
runtimeclasses                                   node.k8s.io/v1                    false        RuntimeClass
poddisruptionbudgets                pdb          policy/v1                         true         PodDisruptionBudget
clusterrolebindings                              rbac.authorization.k8s.io/v1      false        ClusterRoleBinding
clusterroles                                     rbac.authorization.k8s.io/v1      false        ClusterRole
rolebindings                                     rbac.authorization.k8s.io/v1      true         RoleBinding
roles                                            rbac.authorization.k8s.io/v1      true         Role
priorityclasses                     pc           scheduling.k8s.io/v1              false        PriorityClass
csidrivers                                       storage.k8s.io/v1                 false        CSIDriver
csinodes                                         storage.k8s.io/v1                 false        CSINode
csistoragecapacities                             storage.k8s.io/v1                 true         CSIStorageCapacity
storageclasses                      sc           storage.k8s.io/v1                 false        StorageClass
volumeattachments                                storage.k8s.io/v1                 false        VolumeAttachment
ingressroutes                                    traefik.containo.us/v1alpha1      true         IngressRoute
ingressroutetcps                                 traefik.containo.us/v1alpha1      true         IngressRouteTCP
ingressrouteudps                                 traefik.containo.us/v1alpha1      true         IngressRouteUDP
middlewares                                      traefik.containo.us/v1alpha1      true         Middleware
middlewaretcps                                   traefik.containo.us/v1alpha1      true         MiddlewareTCP
serverstransports                                traefik.containo.us/v1alpha1      true         ServersTransport
tlsoptions                                       traefik.containo.us/v1alpha1      true         TLSOption
tlsstores                                        traefik.containo.us/v1alpha1      true         TLSStore
traefikservices                                  traefik.containo.us/v1alpha1      true         TraefikService
ingressroutes                                    traefik.io/v1alpha1               true         IngressRoute
ingressroutetcps                                 traefik.io/v1alpha1               true         IngressRouteTCP
ingressrouteudps                                 traefik.io/v1alpha1               true         IngressRouteUDP
middlewares                                      traefik.io/v1alpha1               true         Middleware
middlewaretcps                                   traefik.io/v1alpha1               true         MiddlewareTCP
serverstransports                                traefik.io/v1alpha1               true         ServersTransport
serverstransporttcps                             traefik.io/v1alpha1               true         ServersTransportTCP
tlsoptions                                       traefik.io/v1alpha1               true         TLSOption
tlsstores                                        traefik.io/v1alpha1               true         TLSStore
traefikservices                                  traefik.io/v1alpha1               true         TraefikService


مقالات
سیاست
رسانه‎های دیجیتال
علوم انسانی
مدیریت
روش تحقیق‌وتحلیل
متفرقه
درباره فدک
مدیریت
مجله مدیریت معاصر
آیات مدیریتی
عکس نوشته‌ها
عکس نوشته
بانک پژوهشگران مدیریتی
عناوین مقالات مدیریتی
منابع درسی (حوزه و دانشگاه)
مطالعات
رصدخانه شخصیت‌ها
رصدخانه - فرهنگی
رصدخانه - دانشگاهی
رصدخانه - رسانه
رصدخانه- رویدادهای علمی
زبان
لغت نامه
تست زبان روسی
ضرب المثل روسی
ضرب المثل انگلیسی
جملات چهار زبانه
logo-samandehi
درباره ما | ارتباط با ما | سیاست حفظ حریم خصوصی | مقررات | خط مشی کوکی‌ها |
نسخه پیش آلفا 2000-2022 CMS Fadak. ||| Version : 5.2 ||| By: Fadak Solutions نسخه قدیم