Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Gunakan tindakan AWS FIS aws:eks:pod
Anda dapat menggunakan tindakan aws:eks:pod untuk menyuntikkan kesalahan ke dalam pod Kubernetes yang berjalan di kluster EKS Anda.
Tindakan
Batasan
-
Tindakan berikut tidak berfungsi dengan AWS Fargate:
aws:eks:pod-network-blackhole-port
aws:eks:pod-network-latency
aws:eks:pod-network-packet-loss
-
Tindakan berikut tidak mendukung mode
bridge
jaringan:aws:eks:pod-network-blackhole-port
aws:eks:pod-network-latency
aws:eks:pod-network-packet-loss
-
Anda tidak dapat mengidentifikasi target tipe aws:eks:pod di template eksperimen menggunakan ARN sumber daya atau tag sumber daya. Anda harus mengidentifikasi target menggunakan parameter sumber daya yang diperlukan.
-
Tindakan
aws:eks:pod-network-latency
dan tidakaws:eks:pod-network-packet-loss
boleh dijalankan secara paralel dan menargetkan pod yang sama. Bergantung pada nilaimaxErrors
parameter yang Anda tentukan, tindakan dapat berakhir dengan keadaan selesai atau gagal:Jika
maxErrorsPercent
0 (default), tindakan akan berakhir dalam keadaan gagal.Jika tidak, kegagalan akan menambah
maxErrorsPercent
anggaran. Jika jumlah suntikan yang gagal tidak mencapai yang disediakanmaxErrors
, tindakan akan berakhir dalam keadaan selesai.Anda dapat mengidentifikasi kegagalan ini dari log wadah fana yang disuntikkan di pod target. Ini akan gagal dengan
Exit Code: 16
.
-
Tindakan tidak
aws:eks:pod-network-blackhole-port
boleh dijalankan secara paralel dengan tindakan lain yang menargetkan pod yang sama dan menggunakan yang samatrafficType
. Tindakan paralel menggunakan jenis lalu lintas yang berbeda didukung. -
FIS hanya dapat memantau status injeksi kesalahan ketika pod target disetel ke
readOnlyRootFilesystem: false
.securityContext
Tanpa konfigurasi ini, semua tindakan pod EKS akan gagal.
Persyaratan
-
Instal AWS CLI di komputer Anda. Ini diperlukan hanya jika Anda akan menggunakan AWS CLI untuk membuat peran IAM. Untuk informasi selengkapnya, lihat Menginstal atau memperbarui AWS CLI.
-
Instal kubectl di komputer Anda. Ini diperlukan hanya untuk berinteraksi dengan cluster EKS untuk mengkonfigurasi atau memantau aplikasi target. Untuk informasi lebih lanjut, lihat https://kubernetes.io/docs/tasks/tools/
. -
Versi EKS minimum yang didukung adalah 1.23.
Membuat peran layanan untuk akun layanan Kubernetes
Buat peran IAM untuk digunakan sebagai peran layanan. Untuk informasi selengkapnya, lihat Peran IAM untuk eksperimen AWS FIS.
Konfigurasikan akun layanan Kubernetes
Konfigurasikan akun layanan Kubernetes untuk menjalankan eksperimen dengan target di namespace Kubernetes yang ditentukan. Dalam contoh berikut, akun layanan adalah
Perhatikan bahwa default ini adalah salah satu ruang nama Kubernetes standar.myserviceaccount
dan namespace adalah default.
Untuk mengonfigurasi akun layanan Kubernetes Anda
-
Buat file bernama
rbac.yaml
dan tambahkan yang berikut ini.kind: ServiceAccount apiVersion: v1 metadata: namespace:
default
name:myserviceaccount
--- kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: namespace:default
name:role-experiments
rules: - apiGroups: [""] resources: ["configmaps"] verbs: [ "get", "create", "patch", "delete"] - apiGroups: [""] resources: ["pods"] verbs: ["create", "list", "get", "delete", "deletecollection"] - apiGroups: [""] resources: ["pods/ephemeralcontainers"] verbs: ["update"] - apiGroups: [""] resources: ["pods/exec"] verbs: ["create"] - apiGroups: ["apps"] resources: ["deployments"] verbs: ["get"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: bind-role-experiments namespace:default
subjects: - kind: ServiceAccount name:myserviceaccount
namespace:default
- apiGroup: rbac.authorization.k8s.io kind: User name:fis-experiment
roleRef: kind: Role name:role-experiments
apiGroup: rbac.authorization.k8s.io -
Jalankan perintah berikut.
kubectl apply -f rbac.yaml
Memetakan peran eksperimen Anda ke pengguna Kubernetes
Gunakan perintah berikut untuk membuat pemetaan identitas. Untuk informasi selengkapnya, lihat Mengelola pengguna dan peran IAM
eksctl create iamidentitymapping \ --arn arn:aws:iam::
123456789012
:role/fis-experiment-role
\ --usernamefis-experiment
\ --clustermy-cluster
Gambar wadah pod
Gambar kontainer pod yang disediakan oleh AWS FIS di-host di Amazon ECR. Saat Anda mereferensikan gambar dari Amazon ECR, Anda harus menggunakan URI gambar lengkap.
Wilayah AWS | URI citra |
---|---|
AS Timur (Ohio) | 051821878176.dkr.ecr.us-east-2.amazonaws.com/aws-fis-pod:0.1 |
AS Timur (Virginia Utara) | 731367659002.dkr.ecr.us-east-1.amazonaws.com/aws-fis-pod:0.1 |
AS Barat (California Utara) | 080694859247.dkr.ecr.us-west-1.amazonaws.com/aws-fis-pod:0.1 |
AS Barat (Oregon) | 864386544765.dkr.ecr.us-west-2.amazonaws.com/aws-fis-pod:0.1 |
Afrika (Cape Town) | 056821267933.dkr.ecr.af-south-1.amazonaws.com/aws-fis-pod:0.1 |
Asia Pasifik (Hong Kong) | 246405402639.dkr.ecr.ap-east-1.amazonaws.com/aws-fis-pod:0.1 |
Asia Pasifik (Mumbai) | 524781661239.dkr.ecr.ap-south-1.amazonaws.com/aws-fis-pod:0.1 |
Asia Pasifik (Seoul) | 526524659354.dkr.ecr.ap-northeast-2.amazonaws.com/aws-fis-pod:0.1 |
Asia Pasifik (Singapura) | 316401638346.dkr.ecr.ap-southeast-1.amazonaws.com/aws-fis-pod:0.1 |
Asia Pasifik (Sydney) | 488104106298.dkr.ecr.ap-southeast-2.amazonaws.com/aws-fis-pod:0.1 |
Asia Pasifik (Tokyo) | 635234321696.dkr.ecr.ap-northeast-1.amazonaws.com/aws-fis-pod:0.1 |
Kanada (Pusat) | 490658072207.dkr.ecr.ca-central-1.amazonaws.com/aws-fis-pod:0.1 |
Eropa (Frankfurt) | 713827034473.dkr.ecr.eu-central-1.amazonaws.com/aws-fis-pod:0.1 |
Eropa (Irlandia) | 205866052826.dkr.ecr.eu-west-1.amazonaws.com/aws-fis-pod:0.1 |
Eropa (London) | 327424803546.dkr.ecr.eu-west-2.amazonaws.com/aws-fis-pod:0.1 |
Eropa (Milan) | 478809367036.dkr.ecr.eu-south-1.amazonaws.com/aws-fis-pod:0.1 |
Eropa (Paris) | 154605889247.dkr.ecr.eu-west-3.amazonaws.com/aws-fis-pod:0.1 |
Eropa (Stockholm) | 263175118295.dkr.ecr.eu-north-1.amazonaws.com/aws-fis-pod:0.1 |
Timur Tengah (Bahrain) | 065825543785.dkr.ecr.me-south-1.amazonaws.com/aws-fis-pod:0.1 |
Amerika Selatan (Sao Paulo) | 767113787785.dkr.ecr.sa-east-1.amazonaws.com/aws-fis-pod:0.1 |
AWS GovCloud (AS-Timur) | 246533647532.dkr.ecr.us-gov-east-1.amazonaws.com/aws-fis-pod:0.1 |
AWS GovCloud (AS-Barat) | 246529956514.dkr.ecr.us-gov-west-1.amazonaws.com/aws-fis-pod:0.1 |
Contoh template percobaan
Berikut ini adalah contoh template eksperimen untuk aws:eks:pod-network-latency tindakan tersebut.
{ "description": "Add latency and jitter to the network interface for the target EKS pods", "targets": { "myPods": { "resourceType": "aws:eks:pod", "parameters": { "clusterIdentifier": "
mycluster
", "namespace": "default
", "selectorType": "labelSelector
", "selectorValue": "mylabel=mytarget
" }, "selectionMode": "COUNT(3)
" } }, "actions": { "EksPod-latency": { "actionId": "aws:eks:pod-network-latency", "description": "Add latency", "parameters": { "kubernetesServiceAccount": "myserviceaccount
", "duration": "PT5M
", "delayMilliseconds": "200
", "jitterMilliseconds": "10
", "sources": "0.0.0.0/0
" }, "targets": { "Pods": "myPods" } } }, "stopConditions": [ { "source": "none", } ], "roleArn": "arn:aws:iam::111122223333
:role/fis-experiment-role
", "tags": { "Name": "EksPodNetworkLatency" } }