Konfigurasikan Amazon VPC CNI plugin for Kubernetes untuk grup keamanan untuk Amazon EKS Pods - Amazon EKS

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Konfigurasikan Amazon VPC CNI plugin for Kubernetes untuk grup keamanan untuk Amazon EKS Pods

Jika Anda menggunakan Pods dengan EC2 instance Amazon, Anda perlu mengonfigurasi Amazon VPC CNI plugin for Kubernetes untuk kelompok keamanan

Jika Anda menggunakan Fargate Pods hanya, dan tidak memiliki EC2 node Amazon di cluster Anda, lihatMenggunakan kebijakan grup keamanan untuk Amazon EKS Pod.

  1. Periksa saat ini Amazon VPC CNI plugin for Kubernetes versi 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 lebih awal dari1.7.7, lalu perbarui plugin ke versi 1.7.7 atau yang lebih baru. Untuk informasi selengkapnya, silakan lihat Amazon VPC CNI

  2. Tambahkan IAM kebijakan terkelola A mazonEKSVPCResource Controller ke peran klaster yang terkait dengan EKS klaster Amazon Anda. Kebijakan ini memungkinkan peran untuk mengelola antarmuka jaringan, alamat IP pribadi mereka, dan lampiran serta detasemen mereka ke dan dari instance jaringan.

    1. Ambil nama IAM peran cluster Anda dan simpan dalam variabel. Ganti my-cluster dengan nama cluster Anda.

      cluster_role=$(aws eks describe-cluster --name my-cluster --query cluster.roleArn --output text | cut -d / -f 2)
    2. Lampirkan kebijakan pada peran tersebut.

      aws iam attach-role-policy --policy-arn arn:aws: iam::aws:policy/AmazonEKSVPCResourceController --role-name $cluster_role
  3. Aktifkan VPC CNI add-on Amazon untuk mengelola antarmuka jaringan Pods dengan mengatur ENABLE_POD_ENI variabel ke true dalam aws-node DaemonSet. Setelah pengaturan ini diatur ketrue, untuk setiap node di cluster add-on membuat sumber daya cninode khusus. Pengontrol VPC sumber daya 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 EC2 Pengguna Amazon. Jika node Anda sudah memiliki jumlah maksimum antarmuka jaringan standar yang melekat padanya maka pengontrol VPC sumber daya akan memesan ruang. Anda harus mengurangi lari Anda Pods cukup bagi pengontrol untuk melepaskan dan menghapus antarmuka jaringan standar, membuat antarmuka jaringan trunk, dan melampirkannya ke instance.

  4. Anda dapat melihat node mana yang memiliki sumber daya CNINode khusus dengan perintah berikut. Jika No resources found dikembalikan, maka tunggu beberapa detik dan coba lagi. Langkah sebelumnya membutuhkan restart Amazon VPC CNI plugin for Kubernetes Pods, yang membutuhkan 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 VPC CNI versi yang lebih lama dari1.15, label node digunakan sebagai pengganti sumber daya CNINode khusus. Anda dapat melihat node mana yang memiliki label node aws-k8s-trunk-eni diatur true dengan perintah berikut. Jika No resources found dikembalikan, maka tunggu beberapa detik dan coba lagi. Langkah sebelumnya membutuhkan restart Amazon VPC CNI plugin for Kubernetes Pods, yang membutuhkan 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 menerapkan grup keamanan untuk Pod pada langkah selanjutnya, pengontrol VPC sumber daya menciptakan antarmuka jaringan khusus yang disebut antarmuka jaringan cabang dengan deskripsi aws-k8s-branch-eni dan mengaitkan kelompok keamanan ke 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 TCP awal, sehingga dapat terhubung ke kubelet Pods pada antarmuka jaringan cabang menggunakanTCP. Untuk menonaktifkan demux TCP awal, 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 Amazon VPC CNI plugin for Kubernetes add-on dan set POD_SECURITY_GROUP_ENFORCING_MODE =standard, seperti yang dijelaskan pada langkah berikutnya, maka Anda tidak perlu menjalankan perintah sebelumnya.

  5. Jika cluster Anda menggunakanNodeLocal DNSCache, atau Anda ingin menggunakan Calico kebijakan jaringan dengan Pods yang memiliki kelompok keamanan sendiri, atau Anda memiliki Kubernetes layanan tipe NodePort dan LoadBalancer menggunakan target instance dengan externalTrafficPolicy set to Local for Pods yang ingin Anda tetapkan grup keamanan, maka Anda harus menggunakan versi 1.11.0 atau yang lebih baru Amazon VPC CNI plugin for Kubernetes add-on, dan Anda harus mengaktifkan pengaturan berikut:

    kubectl set env daemonset aws-node -n kube-system POD_SECURITY_GROUP_ENFORCING_MODE=standard

    IMPORTANT: Pod Aturan grup keamanan tidak diterapkan pada lalu lintas antara Pods atau antara Pods and services, seperti kubelet ataunodeLocalDNS, yang berada di simpul 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 alamat jaringan yang diterjemahkan ke alamat IP antarmuka jaringan utama instans (kecuali jika Anda juga telah mengaturAWS_VPC_K8S_CNI_EXTERNALSNAT=true). VPC Untuk lalu lintas ini, aturan dalam grup keamanan untuk antarmuka jaringan utama digunakan, bukan aturan di Pod’s kelompok keamanan. ** Agar pengaturan ini berlaku untuk yang sudah ada Pods, Anda harus me-restart Pods atau simpul yang Pods sedang berjalan.

  6. Untuk melihat cara menggunakan kebijakan grup keamanan untuk Pod, lihat Menggunakan kebijakan grup keamanan untuk Amazon EKS Pod.