Bantu tingkatkan halaman ini
Ingin berkontribusi pada panduan pengguna ini? Gulir ke bagian bawah halaman ini dan pilih Edit halaman ini GitHub. Kontribusi Anda akan membantu membuat panduan pengguna kami lebih baik untuk semua orang.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kelompok keamanan untuk Pods
Grup keamanan untuk Pods mengintegrasikan grup keamanan Amazon EC2 dengan. Kubernetes Pods Anda dapat menggunakan grup keamanan Amazon EC2 untuk menentukan aturan yang memungkinkan lalu lintas jaringan masuk dan keluar ke dan dari yang Anda gunakan ke node Pods yang berjalan di banyak jenis instans Amazon EC2 dan Fargate. Untuk penjelasan rinci tentang kemampuan ini, lihat Memperkenalkan grup keamanan untuk
Pertimbangan
-
Sebelum menerapkan grup keamanan untukPods, pertimbangkan batasan dan ketentuan berikut:
-
Grup keamanan untuk tidak Pods dapat digunakan dengan Windows node.
-
Grup keamanan untuk Pods dapat digunakan dengan cluster yang dikonfigurasi untuk
IPv6
keluarga yang berisi node Amazon EC2 dengan menggunakan versi 1.16.0 atau yang lebih baru dari plugin Amazon VPC CNI. Anda dapat menggunakan grup keamanan untuk Pods dengan cluster mengkonfigurasiIPv6
keluarga yang hanya berisi node Fargate dengan menggunakan versi 1.7.7 atau yang lebih baru dari plugin Amazon VPC CNI. Untuk informasi selengkapnya, lihat IPv6alamat untuk cluster,Pods, dan services -
Grup keamanan untuk Pods didukung oleh sebagian besar keluarga instans Amazon EC2 berbasis Nitro, meskipun tidak oleh semua generasi keluarga. Misalnya, keluarga dan generasi
m5
c5
r5
,m6g
c6g
,,,, danr6g
contoh didukung. Tidak ada jenis instance dalamt
keluarga yang didukung. Untuk daftar lengkap jenis instans yang didukung, lihat file limits.godi Github. Node Anda harus menjadi salah satu jenis instance terdaftar yang ada IsTrunkingCompatible: true
di file itu. -
Jika Anda juga menggunakan kebijakan Pod keamanan untuk membatasi akses ke Pod mutasi, maka
eks:vpc-resource-controller
Kubernetes pengguna harus ditentukan dalam KubernetesClusterRoleBinding
untukrole
yang Andapsp
tetapkan. Jika Anda menggunakan Amazon EKS defaultpsp
,role
, danClusterRoleBinding
, ini adalaheks:podsecuritypolicy:authenticated
ClusterRoleBinding
. Misalnya, Anda menambahkan pengguna kesubjects:
bagian, seperti yang ditunjukkan pada contoh berikut:[...] subjects: - kind: Group apiGroup: rbac.authorization.k8s.io name: system:authenticated - apiGroup: rbac.authorization.k8s.io kind: User name: eks:vpc-resource-controller - kind: ServiceAccount name: eks-vpc-resource-controller
-
Jika Anda menggunakan jaringan kustom dan grup keamanan untuk Pods bersama-sama, grup keamanan yang ditentukan oleh grup keamanan untuk Pods digunakan, bukan grup keamanan yang ditentukan dalam
ENIConfig
. -
Jika Anda menggunakan versi
1.10.2
atau sebelumnya dari plugin Amazon VPC CNI dan Anda menyertakanterminationGracePeriodSeconds
pengaturan dalam Pod spesifikasi Anda, nilai untuk pengaturan tidak bisa nol. -
Jika Anda menggunakan versi
1.10
atau sebelumnya dari plugin Amazon VPC CNI, atau versi1.11
denganPOD_SECURITY_GROUP_ENFORCING_MODE
=strict
, yang merupakan setelan default, maka Kubernetes layanan jenisNodePort
danLoadBalancer
menggunakan target instans denganexternalTrafficPolicy
set keLocal
tidak didukung dengan Pods yang Anda tetapkan ke grup keamanan. Untuk informasi selengkapnya tentang penggunaan penyeimbang beban dengan target instans, lihat Rute TCP dan UDP lalu lintas dengan Network Load Balancers -
Jika Anda menggunakan versi
1.10
atau sebelumnya dari plugin Amazon VPC CNI atau versi1.11
denganPOD_SECURITY_GROUP_ENFORCING_MODE
=strict
, yang merupakan pengaturan default, sumber NAT dinonaktifkan untuk lalu lintas keluar dari grup keamanan Pods yang ditetapkan sehingga aturan grup keamanan keluar diterapkan. Untuk mengakses internet, Pods dengan grup keamanan yang ditetapkan harus diluncurkan pada node yang digunakan dalam subnet pribadi yang dikonfigurasi dengan gateway atau instance NAT. Podsdengan kelompok keamanan yang ditugaskan dikerahkan ke subnet publik tidak dapat mengakses internet.Jika Anda menggunakan versi
1.11
atau yang lebih baru dari plugin denganPOD_SECURITY_GROUP_ENFORCING_MODE
=standard
, lalu Pod lintas yang ditujukan untuk di luar VPC diterjemahkan ke alamat IP antarmuka jaringan utama instans. Untuk lalu lintas ini, aturan dalam grup keamanan untuk antarmuka jaringan utama digunakan, bukan aturan dalam kelompok Pod's keamanan. -
Untuk menggunakan kebijakan Calico jaringan dengan Pods yang memiliki grup keamanan terkait, Anda harus menggunakan versi
1.11.0
atau yang lebih baru dari plugin Amazon VPC CNI dan set =.POD_SECURITY_GROUP_ENFORCING_MODE
standard
Jika tidak, arus lalu lintas ke dan dari Pods dengan grup keamanan terkait tidak dikenakan penegakan kebijakan Calico jaringan dan terbatas pada penegakan kelompok keamanan Amazon EC2 saja. Untuk memperbarui versi CNI VPC Amazon Anda, lihat Bekerja dengan EKS add-on Amazon VPC CNI plugin for Kubernetes Amazon -
Podsberjalan di node Amazon EC2 yang menggunakan grup keamanan dalam cluster yang menggunakan Nodelocal DNScache
hanya didukung dengan versi atau yang lebih baru 1.11.0
dari plugin Amazon VPC CNI dan dengan =.POD_SECURITY_GROUP_ENFORCING_MODE
standard
Untuk memperbarui versi plugin Amazon VPC CNI Anda, lihat Bekerja dengan EKS add-on Amazon VPC CNI plugin for Kubernetes Amazon -
Grup keamanan untuk Pods dapat menyebabkan latensi Pod startup yang lebih tinggi untuk Pods dengan churn tinggi. Hal ini disebabkan pembatasan tingkat dalam pengontrol sumber daya.
Amazon VPC CNI plugin for KubernetesKonfigurasikan grup keamanan untuk Pods
Untuk menyebarkan grup keamanan untuk Pods
Jika Anda menggunakan grup keamanan Pods hanya untuk Fargate, dan tidak memiliki node Amazon EC2 di cluster Anda, lewati ke. Menyebarkan aplikasi contoh
-
Periksa Amazon VPC CNI plugin for Kubernetes versi Anda saat ini dengan perintah berikut:
kubectl describe daemonset aws-node --namespace kube-system | grep amazon-k8s-cni: | cut -d : -f 3
Contoh output adalah sebagai berikut.
v1.7.6
Jika Amazon VPC CNI plugin for Kubernetes versi Anda lebih awal dari
1.7.7
, maka perbarui plugin ke versi1.7.7
atau yang lebih baru. Untuk informasi selengkapnya, lihat Bekerja dengan EKS add-on Amazon VPC CNI plugin for Kubernetes Amazon -
Tambahkan kebijakan IAM
AmazonEKSVPCResourceController
terkelola ke peran klaster yang terkait dengan kluster Amazon EKS Anda. Kebijakan ini memungkinkan peran untuk mengelola antarmuka jaringan, alamat IP pribadi mereka, dan lampiran serta detasemen mereka ke dan dari instance jaringan. -
Ambil nama peran IAM cluster Anda dan simpan dalam variabel. Ganti
dengan nama klaster Anda.my-cluster
cluster_role=$(aws eks describe-cluster --name
my-cluster
--query cluster.roleArn --output text | cut -d / -f 2) -
Lampirkan kebijakan pada peran tersebut.
aws iam attach-role-policy --policy-arn arn:aws:iam::aws:policy/AmazonEKSVPCResourceController --role-name $cluster_role
-
-
Aktifkan add-on Amazon VPC CNI untuk mengelola antarmuka jaringan Pods dengan menyetel variabel ke dalam
ENABLE_POD_ENI
.true
aws-node
DaemonSet Setelah pengaturan ini diatur ketrue
, untuk setiap node di cluster add-on membuat sumber daya kustom cninode. Pengendali sumber daya VPC membuat dan melampirkan satu antarmuka jaringan khusus yang disebut antarmuka jaringan trunk dengan deskripsiaws-k8s-trunk-eni
.kubectl set env daemonset aws-node -n kube-system ENABLE_POD_ENI=true
catatan
Antarmuka jaringan trunk termasuk dalam jumlah maksimum antarmuka jaringan yang didukung oleh tipe instans. Untuk daftar jumlah maksimum antarmuka jaringan yang didukung oleh setiap jenis instans, lihat alamat IP per antarmuka jaringan per jenis instans di Panduan Pengguna Amazon EC2. Jika simpul Anda sudah memiliki jumlah maksimum antarmuka jaringan standar yang terlampir padanya, maka pengendali sumber daya VPC akan menyimpan sebuah ruang. Anda harus mengurangi ukuran berjalan Anda Pods agar pengontrol dapat melepaskan dan menghapus antarmuka jaringan standar, membuat antarmuka jaringan trunk, dan melampirkannya ke instance.
Anda dapat melihat node mana yang memiliki sumber daya
CNINode
khusus dengan perintah berikut. JikaNo resources found
dikembalikan, maka tunggu beberapa detik dan coba lagi. Langkah sebelumnya membutuhkan restart Amazon VPC CNI plugin for KubernetesPods, yang memakan waktu beberapa detik.$ kubectl get cninode -A NAME FEATURES ip-192-168-64-141.us-west-2.compute.internal [{"name":"SecurityGroupsForPods"}] ip-192-168-7-203.us-west-2.compute.internal [{"name":"SecurityGroupsForPods"}]
Jika Anda menggunakan versi VPC CNI yang lebih lama dari
1.15
, label node digunakan sebagai pengganti sumber daya khusus.CNINode
Anda dapat melihat node mana yang memiliki label nodeaws-k8s-trunk-eni
diaturtrue
dengan perintah berikut. JikaNo resources found
dikembalikan, maka tunggu beberapa detik dan coba lagi. Langkah sebelumnya membutuhkan restart Amazon VPC CNI plugin for KubernetesPods, yang memakan waktu beberapa detik.kubectl get nodes -o wide -l vpc.amazonaws.com/has-trunk-attached=true -
Setelah antarmuka jaringan trunk dibuat, Pods diberikan alamat IP sekunder dari trunk atau antarmuka jaringan standar. Antarmuka trunk secara otomatis dihapus jika simpul dihapus.
Saat Anda menyebarkan grup keamanan untuk langkah selanjutnya, pengontrol sumber daya VPC membuat antarmuka jaringan khusus yang disebut antarmuka jaringan cabang dengan deskripsi
aws-k8s-branch-eni
dan mengaitkan grup keamanan ke Pod dalamnya. Antarmuka jaringan cabang dibuat sebagai tambahan dari antarmuka jaringan standar dan trunk yang terlampir pada simpul.Jika Anda menggunakan probe keaktifan atau kesiapan, maka Anda juga perlu menonaktifkan demux awal TCP, sehingga
kubelet
dapat terhubung ke Pods antarmuka jaringan cabang menggunakan TCP. Untuk menonaktifkan demux awal TCP, jalankan perintah berikut:kubectl patch daemonset aws-node -n kube-system \ -p '{"spec": {"template": {"spec": {"initContainers": [{"env":[{"name":"DISABLE_TCP_EARLY_DEMUX","value":"true"}],"name":"aws-vpc-cni-init"}]}}}}'
catatan
Jika Anda menggunakan
1.11.0
atau yang lebih baru dari Amazon VPC CNI plugin for Kubernetes add-on dan setPOD_SECURITY_GROUP_ENFORCING_MODE
=standard
, seperti yang dijelaskan pada langkah berikutnya, maka Anda tidak perlu menjalankan perintah sebelumnya.-
Jika klaster Anda menggunakan
NodeLocal DNSCache
, atau Anda ingin menggunakan kebijakan Calico jaringan dengan grup keamanan mereka sendiri, atau Anda memiliki Kubernetes layanan jenisNodePort
danLoadBalancer
menggunakan target instans denganexternalTrafficPolicy
setLocal
untuk Pods yang ingin Anda tetapkan grup keamanan, maka Anda harus menggunakan versi1.11.0
atau versi Amazon VPC CNI plugin for Kubernetes add-on yang lebih baru, dan Anda harus mengaktifkan pengaturan berikut: Podskubectl set env daemonset aws-node -n kube-system POD_SECURITY_GROUP_ENFORCING_MODE=standard
penting
-
PodAturan grup keamanan tidak diterapkan pada lalu lintas antara Pods atau di antara Pods danservices, seperti
kubelet
ataunodeLocalDNS
, yang berada di node yang sama. Pod yang menggunakan grup keamanan berbeda pada node yang sama tidak dapat berkomunikasi karena mereka dikonfigurasi dalam subnet yang berbeda, dan routing dinonaktifkan di antara subnet ini. -
Lalu lintas keluar dari Pods ke alamat di luar VPC adalah alamat jaringan yang diterjemahkan ke alamat IP antarmuka jaringan utama instans (kecuali jika Anda juga
AWS_VPC_K8S_CNI_EXTERNALSNAT=true
telah mengatur). Untuk lalu lintas ini, aturan dalam grup keamanan untuk antarmuka jaringan utama digunakan, bukan aturan dalam kelompok Pod's keamanan. -
Agar pengaturan ini diterapkan ke yang adaPods, Anda harus memulai ulang Pods atau node yang Pods sedang berjalan.
-
Menyebarkan aplikasi contoh
Untuk menggunakan grup keamananPods, Anda harus memiliki grup keamanan yang ada dan Menerapkan Amazon EKS SecurityGroupPolicy ke klaster Anda, seperti yang dijelaskan dalam prosedur berikut. Langkah-langkah berikut menunjukkan kepada Anda cara menggunakan kebijakan grup keamanan untuk filePod. Kecuali dinyatakan lain, selesaikan semua langkah dari terminal yang sama karena variabel digunakan dalam langkah-langkah berikut yang tidak bertahan di seluruh terminal.
Untuk menyebarkan contoh Pod dengan grup keamanan
-
Buat Kubernetes namespace untuk menyebarkan sumber daya ke. Anda dapat mengganti
namespace saya
dengan nama namespace yang ingin Anda gunakan.kubectl create namespace
my-namespace
-
Menerapkan Amazon EKS
SecurityGroupPolicy
ke cluster Anda.-
Salin konten berikut ke perangkat Anda. Anda dapat mengganti
PodSelector
denganserviceAccountSelector
jika Anda lebih suka memilih Pods berdasarkan label akun layanan. Anda harus menentukan satu selektor atau yang lainnya. Sebuah kosongpodSelector
(contoh:podSelector: {}
) memilih semua Pods di namespace. Anda dapat mengubahperan saya
menjadi nama peran Anda.serviceAccountSelector
yang kosong memilih semua akun layanan di namespace. Anda dapat menggantimy-security-group-policy
dengan nama untuk namespace AndaSecurityGroupPolicy
danmy-namespace dengan namespace
yang ingin Anda buat.SecurityGroupPolicy
Anda harus mengganti
my_pod_security_group_id dengan ID
grup keamanan yang ada. Jika Anda tidak memiliki grup keamanan yang ada, maka Anda harus membuatnya. Untuk informasi selengkapnya, lihat Grup Keamanan Amazon EC2 untuk instans Linux di Panduan Pengguna Amazon EC2. Anda dapat menentukan 1-5 ID grup keamanan. Jika Anda menentukan lebih dari satu ID, maka kombinasi semua aturan di semua grup keamanan efektif untuk yang dipilihPods.cat >
my-security-group-policy.yaml
<<EOF apiVersion: vpcresources.k8s.aws/v1beta1 kind: SecurityGroupPolicy metadata: name:my-security-group-policy
namespace:my-namespace
spec:podSelector
: matchLabels: role:my-role
securityGroups: groupIds: -my_pod_security_group_id
EOFpenting
Grup keamanan atau grup yang Anda tentukan untuk Pod s Anda harus memenuhi kriteria berikut:
-
Mereka harus ada. Jika tidak ada, maka, ketika Anda menerapkan Pod yang cocok dengan pemilih, Anda Pod tetap terjebak dalam proses pembuatan. Jika Anda mendeskripsikannyaPod, Anda akan melihat pesan kesalahan yang mirip dengan yang berikut:
An error occurred (InvalidSecurityGroupID.NotFound) when calling the CreateNetworkInterface operation: The securityGroup ID '
.sg-05b1d815d1EXAMPLE
' does not exist -
Mereka harus mengizinkan komunikasi masuk dari grup keamanan yang diterapkan ke node Anda (untuk
kubelet
) melalui port apa pun yang telah Anda konfigurasi probe. -
Mereka harus mengizinkan komunikasi keluar
TCP
danUDP
port 53 ke grup keamanan yang ditugaskan ke Pods (atau node yang Pods dijalankanCoreDNS). Grup keamanan untuk Anda CoreDNS Pods harus mengizinkan lalu lintas masukTCP
danUDP
port 53 dari grup keamanan yang Anda tentukan. -
Mereka harus memiliki aturan masuk dan keluar yang diperlukan untuk berkomunikasi dengan orang lain Pods yang perlu mereka komunikasikan.
-
Mereka harus memiliki aturan yang memungkinkan Pods untuk berkomunikasi dengan pesawat Kubernetes kontrol jika Anda menggunakan kelompok keamanan dengan Fargate. Cara termudah untuk melakukannya adalah dengan menentukan grup keamanan klaster sebagai salah satu grup keamanan.
Kebijakan grup keamanan hanya berlaku untuk yang baru dijadwalkanPods. Mereka tidak mempengaruhi berlariPods.
-
-
Deploy kebijakan.
kubectl apply -f
my-security-group-policy.yaml
-
-
Menerapkan aplikasi sampel dengan label yang cocok dengan
nilaimy-role
yang Anda tentukan pada langkah sebelumnya.podSelector
-
Salin konten berikut ke perangkat Anda. Ganti
nilai contoh
dengan milik Anda sendiri dan kemudian jalankan perintah yang dimodifikasi. Jika Andamengganti peran saya
, pastikan itu sama dengan nilai yang Anda tentukan untuk pemilih pada langkah sebelumnya.cat >
sample-application.yaml
<<EOF apiVersion: apps/v1 kind: Deployment metadata: name:my-deployment
namespace:my-namespace
labels: app:my-app
spec: replicas:4
selector: matchLabels: app:my-app
template: metadata: labels: app:my-app
role:my-role
spec: terminationGracePeriodSeconds:120
containers: - name:nginx
image:public.ecr.aws/nginx/nginx:1.23
ports: - containerPort:80
--- apiVersion: v1 kind: Service metadata: name:my-app
namespace:my-namespace
labels: app:my-app
spec: selector: app:my-app
ports: - protocol:TCP
port:80
targetPort:80
EOF -
Deploy aplikasi dengan perintah berikut. Saat Anda menerapkan aplikasi, Amazon VPC CNI plugin for Kubernetes pencocokan
role
label dan grup keamanan yang Anda tentukan pada langkah sebelumnya diterapkan kePod.kubectl apply -f
sample-application.yaml
-
-
Lihat yang Pods digunakan dengan aplikasi sampel. Untuk sisa topik ini, terminal ini disebut sebagai
TerminalA
.kubectl get pods -n my-namespace -o wide
Contoh output adalah sebagai berikut.
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES my-deployment-
5df6f7687b
-4fbjm
1/1 Running 0 7m51s192.168.53.48
ip-192-168-33-28
.region-code
.compute.internal <none> <none> my-deployment-5df6f7687b
-j9fl4
1/1 Running 0 7m51s192.168.70.145
ip-192-168-92-33
.region-code
.compute.internal <none> <none> my-deployment-5df6f7687b
-rjxcz
1/1 Running 0 7m51s192.168.73.207
ip-192-168-92-33
.region-code
.compute.internal <none> <none> my-deployment-5df6f7687b
-zmb42
1/1 Running 0 7m51s192.168.63.27
ip-192-168-33-28
.region-code
.compute.internal <none> <none>catatan
-
Jika Pods ada yang terjebak di
Waiting
negara bagian, maka jalankankubectl describe pod
. Jika Anda melihatnya
-nmy-deployment-xxxxxxxxxx-xxxxx
my-namespace
Insufficient permissions: Unable to create Elastic Network Interface.
, konfirmasikan bahwa Anda menambahkan kebijakan IAM ke peran klaster IAM di langkah sebelumnya. -
Jika Pods ada yang macet dalam
Pending
status, konfirmasikan bahwa jenis instance node Anda terdaftarlimits.go
dan bahwa produk dari jumlah maksimum antarmuka jaringan cabang yang didukung oleh jenis instance dikalikan kali jumlah node dalam grup node Anda belum terpenuhi. Misalnya, sebuah instans m5.large
mendukung sembilan antarmuka jaringan cabang. Jika grup simpul Anda memiliki lima simpul, maka maksimum 45 antarmuka jaringan cabang dapat dibuat untuk grup simpul. Ke-46 Pod yang Anda coba terapkan akan berada dalamPending
status sampai Pod yang lain yang memiliki grup keamanan terkait dihapus.
Jika Anda menjalankan
kubectl describe pod
dan melihat pesan yang serupa dengan pesan berikut, maka dapat diabaikan dengan aman. Pesan ini mungkin muncul ketika Amazon VPC CNI plugin for Kubernetes mencoba untuk mengatur jaringan host dan gagal saat antarmuka jaringan sedang dibuat. Plugin mencatat peristiwa ini sampai antarmuka jaringan dibuat.my-deployment-xxxxxxxxxx-xxxxx
-nmy-namespace
Failed to create Pod sandbox: rpc error: code = Unknown desc = failed to set up sandbox container "
e24268322e55c8185721f52df6493684f6c2c3bf4fd59c9c121fd4cdc894579f
" network for Pod "my-deployment-5df6f7687b
-4fbjm
": networkPlugin cni failed to set up Pod "my-deployment-5df6f7687b-4fbjm-c89wx_my-namespace
" network: add cmd: failed to assign an IP address to containerAnda tidak dapat melebihi jumlah maksimum Pods yang dapat dijalankan pada jenis instance. Untuk daftar jumlah maksimum Pods yang dapat Anda jalankan pada setiap jenis instance, lihat eni-max-pods.txt
padaGitHub. Saat Anda menghapus Pod yang memiliki grup keamanan terkait, atau menghapus node yang Pod sedang berjalan, pengontrol sumber daya VPC menghapus antarmuka jaringan cabang. Jika Anda menghapus cluster dengan Pods menggunakan Pods untuk grup keamanan, maka pengontrol tidak menghapus antarmuka jaringan cabang, jadi Anda harus menghapusnya sendiri. Untuk informasi tentang cara menghapus antarmuka jaringan, lihat Menghapus antarmuka jaringan di Panduan Pengguna Amazon EC2. -
-
Di terminal terpisah, masukkan ke salah satuPods. Untuk sisa topik ini, terminal ini disebut sebagai
TerminalB
. Ganti
dengan ID salah satu yang dikembalikan dalam output Anda dari langkah sebelumnya. Pods5df6f7687b
-4fbjm
kubectl exec -it -n my-namespace my-deployment-
-- /bin/bash5df6f7687b
-4fbjm
-
Dari shell masuk
TerminalB
, konfirmasikan bahwa aplikasi sampel berfungsi.curl
my-app
Contoh output adalah sebagai berikut.
<!DOCTYPE html> <html> <head> <title>Welcome to nginx!</title> [...]
Anda menerima output karena semua Pods menjalankan aplikasi dikaitkan dengan grup keamanan yang Anda buat. Grup itu berisi aturan yang memungkinkan semua lalu lintas di antara semua Pods yang terkait dengan grup keamanan. Lalu lintas DNS diizinkan keluar dari grup keamanan tersebut ke grup keamanan klaster, yang terkait dengan node Anda. Node menjalankan CoreDNSPods, yang Anda Pods lakukan pencarian nama.
-
Dari
TerminalA
, hapus aturan grup keamanan yang memungkinkan komunikasi DNS ke grup keamanan klaster dari grup keamanan Anda. Jika Anda tidak menambahkan aturan DNS ke grup keamanan klaster pada langkah sebelumnya, ganti
dengan ID grup keamanan tempat Anda membuat aturan.$my_cluster_security_group_id
aws ec2 revoke-security-group-ingress --group-id
$my_cluster_security_group_id
--security-group-rule-ids $my_tcp_rule_id aws ec2 revoke-security-group-ingress --group-id$my_cluster_security_group_id
--security-group-rule-ids $my_udp_rule_id -
Dari
TerminalB
, coba akses aplikasi lagi.curl
my-app
Contoh output adalah sebagai berikut.
curl: (6) Could not resolve host: my-app
Upaya gagal karena Pod tidak lagi dapat mengakses CoreDNSPods, yang memiliki grup keamanan cluster yang terkait dengannya. Grup keamanan klaster tidak lagi memiliki aturan grup keamanan yang memungkinkan komunikasi DNS dari grup keamanan yang terkait dengan AndaPod.
Jika Anda mencoba mengakses aplikasi menggunakan alamat IP yang dikembalikan untuk salah satu langkah sebelumnya, Anda masih menerima respons karena semua port diizinkan antara Pods yang memiliki grup keamanan yang terkait dengannya dan pencarian nama tidak diperlukan. Pods
-
Setelah selesai bereksperimen, Anda dapat menghapus contoh kebijakan grup keamanan, aplikasi, dan grup keamanan yang Anda buat. Jalankan perintah berikut dari
TerminalA
.kubectl delete namespace
my-namespace
aws ec2 revoke-security-group-ingress --group-id$my_pod_security_group_id
--security-group-rule-ids $my_inbound_self_rule_id wait sleep 45s aws ec2 delete-security-group --group-id$my_pod_security_group_id