Jika Anda tidak memiliki persyaratan khusus untuk spesifikasi pod, seperti untuk vGPU dan disk lokal, disarankan untuk menentukan jumlah vCPU dan ukuran memori alih-alih jenis Instance Elastic Compute Service (ECS) saat membuat pod Elastic Container Instance. Sistem akan menyediakan berbagai jenis instance ECS berdasarkan vCPU dan spesifikasi memori yang ditentukan untuk Elastic Container Instance, memilih jenis instance yang sesuai. Metode ini memberikan elastisitas dan penyediaan sumber daya yang lebih baik dibandingkan dengan metode penentuan jenis instance ECS.
Deskripsi Spesifikasi
Anda dapat menentukan jumlah vCPU dan ukuran memori untuk instance atau kontainer di dalam instance saat membuat instance kontainer elastis. Jika jumlah vCPU atau ukuran memori yang ditentukan tidak didukung oleh Elastic Container Instance, sistem akan menyesuaikannya berdasarkan spesifikasi yang didukung. Sistem akan memilih spesifikasi yang paling mirip dengan yang Anda tentukan, dengan spesifikasi yang dipilih lebih tinggi atau sama dengan spesifikasi yang Anda tetapkan. Sebagai contoh, jika Anda menentukan 7 vCPU dan 13 GiB memori saat membuat instance kontainer elastis di wilayah China (Hangzhou), sistem akan membuat instance dengan 8 vCPU dan 14 GiB memori.
Tabel berikut menjelaskan spesifikasi yang didukung oleh Elastic Container Instance.
Jika Anda tidak menentukan jumlah vCPU dan ukuran memori, sistem secara default menggunakan 2 vCPU dan 4 GiB memori untuk membuat instance kontainer elastis.
Setiap instance kontainer elastis hanya dapat memiliki satu antarmuka jaringan elastis (ENI) yang terikat.
Ruang penyimpanan sementara default untuk semua spesifikasi adalah sebesar 30 GiB.
Deskripsi Konfigurasi
Anda dapat menentukan jumlah vCPU dan ukuran memori untuk membuat pod dengan menggunakan salah satu metode berikut:
Tentukan jumlah vCPU dan ukuran memori untuk setiap kontainer di dalam pod menggunakan parameter limits atau requests. Disarankan untuk menggunakan parameter limits.
Tentukan jumlah vCPU dan ukuran memori untuk pod dengan menambahkan anotasi
k8s.aliyun.com/eci-use-specske bagian metadata dari pod.
Jika Anda tidak menentukan parameter limits, requests, atau eci-use-specs, atau menentukan semua parameter tersebut, sistem akan membuat pod berdasarkan spesifikasi pod yang sesuai.
Skenario | Spesifikasi Pod |
limits, requests, dan eci-use-specs tidak ditentukan | Sistem menggunakan 2 vCPU dan 4 GiB memori untuk membuat pod. |
Hanya limits yang ditentukan | Sistem menjumlahkan nilai parameter limits untuk semua kontainer untuk membuat pod. |
Hanya requests yang ditentukan | Sistem menjumlahkan nilai parameter requests untuk semua kontainer untuk membuat pod. |
Baik limits maupun requests ditentukan | Sistem menjumlahkan nilai parameter limits untuk semua kontainer untuk membuat pod. Parameter requests untuk semua kontainer diabaikan. |
Hanya eci-use-specs yang ditentukan | Sistem membuat pod berdasarkan nilai parameter eci-use-specs. |
limits dan eci-use-specs ditentukan, atau requests dan eci-use-specs ditentukan | Sistem membuat pod berdasarkan nilai parameter eci-use-specs. |
Jika jumlah nilai parameter limits atau requests untuk semua kontainer atau nilai parameter eci-use-specs tidak didukung oleh Elastic Container Instance, sistem akan menyesuaikan spesifikasi pod dan menagih Anda berdasarkan spesifikasi baru.
Tentukan jumlah vCPU dan ukuran memori untuk kontainer di dalam pod
Metode ini merupakan metode default untuk membuat pod di Kubernetes. Anda dapat membuat hingga 20 kontainer di setiap pod dan mengonfigurasi spesifikasi vCPU dan memori untuk setiap kontainer. Total spesifikasi vCPU dan memori dari semua kontainer harus lebih rendah atau sama dengan spesifikasi vCPU dan memori dari pod.
Elastic Container Instance memungkinkan Anda menetapkan variabel lingkungan untuk kontainer tertentu, seperti kontainer sidecar, untuk mengabaikan kontainer tersebut saat sistem menyesuaikan sumber daya. Ini mencegah pemborosan sumber daya. Untuk informasi lebih lanjut, lihat Abaikan kontainer tertentu saat sistem menyesuaikan sumber daya.
Anda dapat menentukan jumlah vCPU dan ukuran memori di parameter limits untuk sebuah kontainer. Contoh konfigurasi:
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
name: test
labels:
app: nginx
alibabacloud.com/eci: "true"
spec:
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
ports:
- containerPort: 80
resources:
limits:
cpu: "500m" #Tentukan 0,5 vCPU untuk kontainer bernama nginx.
memory: "1024Mi" #Tentukan 1 GiB memori untuk kontainer bernama nginx.
- name: busybox
image: registry.cn-shanghai.aliyuncs.com/eci_open/busybox:1.30
command: ["sleep"]
args: ["999999"]
resources:
limits:
cpu: "1000m" #Tentukan 1 vCPU untuk kontainer bernama busybox.
memory: "2048Mi" #Tentukan 2 GiB memori untuk kontainer bernama busybox.Tentukan jumlah vCPU dan ukuran memori untuk pod
Sistem menyediakan berbagai jenis instance ECS dan memilih yang sesuai untuk mencapai elastisitas dan penyediaan sumber daya yang lebih baik.
Jika Anda memiliki persyaratan khusus untuk keluarga instance, misalnya, jika Anda ingin menggunakan hanya keluarga instance ECS generasi keenam, Anda dapat menambahkan anotasi untuk menentukan generasi keluarga instance ECS. Untuk informasi lebih lanjut, lihat Tentukan generasi keluarga instance ECS untuk membuat pod.
Metode ini memberikan manfaat sebagai berikut:
Anda tidak perlu menentukan jumlah vCPU, ukuran memori, atau batas sumber daya untuk kontainer di dalam pod. Ini memberikan fleksibilitas yang lebih besar bagi kontainer untuk berbagi sumber daya.
Dalam skenario komputasi genetik dan Istio, kerangka layanan secara otomatis menerapkan kontainer sidecar di dalam pod. Anda dapat menghubungkan Elastic Container Instance ke kerangka layanan dengan mulus dengan menentukan jumlah vCPU dan ukuran memori untuk pod.
Anda dapat menambahkan anotasi ke metadata dalam file konfigurasi pod untuk menentukan jumlah vCPU dan ukuran memori untuk pod. Contoh konfigurasi:
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
name: test
labels:
app: nginx
alibabacloud.com/eci: "true"
annotations:
k8s.aliyun.com/eci-use-specs : "2-4Gi" # Tentukan 2 vCPU dan 4 GiB memori untuk pod.
spec:
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
ports:
- containerPort: 80
- name: busybox
image: registry.cn-shanghai.aliyuncs.com/eci_open/busybox:1.30
command: ["sleep"]
args: ["999999"]
resources:
limits:
cpu: "500m" #Tentukan jumlah maksimum vCPU untuk sebuah kontainer.
memory: "1024Mi" #Tentukan ukuran memori maksimum untuk sebuah kontainer.