ساخت اپلیکیشن با مانیفست
راهکارهای متفاوتی برای استقرار اپلیکیشن بر بستر کانتینر ابری آروان وجود دارد که میتوانید متناسب با نیازتان یکی از آنها را انتخاب کنید. اگر پیش از این از کوبرنتیز استفاده کردهاید و برای قسمتهای مختلف اپلیکیشن خود، Manifestهای لازم را نوشتهاید، روش «درج مانیفست» به شما کمک میکند تا اپلیکیشنهای خود را بهشکل مستقیم پیادهسازی و اجرا کنید.
وارد پنل کاربری آروان و بخش «ساخت اپلیکیشن» در منوی کانتینر ابری شوید. سپس از میان شیوههای ساخت اپلیکیشن «درج مانیفست» را انتخاب کنید.
درج مانیفست
مانیفست کوبرنتیز یک فایل YAML است که اجزای مختلفی مانند Deployment ،Replica Set ،Service و ... کلاستر در آن تعریف شده است. اگر از پیش برای اپلیکیشنتان مانیفست نوشتهاید، میتوانید آن را در این بخش Paste کرده و روی «شروع» کلیک کنید تا فرآیند ساخت اپلیکیشن آغاز شود.
نکتهی مهمی که باید در مانیفستها رعایت شود، تعیین منابع مصرفی برای هر کانتینر است. این مورد باید در Deployment و در قسمت Containers مشخص شود. اگر میزان منابع در مانیفست تعیین نشود بهطور پیشفرض ۱ هسته CPU و ۲ گیگ رم برای آن انتخاب میشود. همچنین باید نسبت ۱ به ۲ پردازنده و رم را در مقدار تعیینشده در نظر بگیرید.
دقت کنید که مقادیر مربوط به Limits و Requests باید یکسان باشند.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
labels:
app: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
resources:
limits:
cpu: "0.5"
ephemeral-storage: 1G
memory: 1G
requests:
cpu: "0.5"
ephemeral-storage: 1G
memory: 1G
---
apiVersion: v1
kind: Service
metadata:
name: nginx-svc
spec:
selector:
app: nginx
ports:
- name: http
protocol: TCP
port: 80
targetPort: 80
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nginx-ingress
spec:
ingressClassName: nginx
rules:
- host: [your_domain]
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: nginx-svc
port:
name: http
شما میتوانید مانیفستهای خود را به زبان YAML بنویسید و با جدا کننده "---" در انتهای هر فایل، آنها را از هم جدا و بهشکل یکجا روی کانتینر ابری مستقر کنید.
همچنین توجه داشته باشید که برای استفاده از نسل ۲ یا ۳ پردازندههای آروان باید مانند نمونهی زیر در مانیفستتان Affinity تعیین کنید.
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: node-role.kubernetes.io/cloud-container-g2
operator: In
values:
- "true"