

 **Bantu meningkatkan halaman ini ** 

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

Untuk berkontribusi pada panduan pengguna ini, pilih GitHub ** tautan ** Edit halaman ini di yang terletak di panel kanan setiap halaman.

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

# Konfigurasikan webhook untuk node hibrida
<a name="hybrid-nodes-webhooks"></a>

Halaman ini merinci pertimbangan untuk menjalankan webhook dengan node hybrid. Webhook digunakan dalam aplikasi Kubernetes dan proyek open source, seperti Load Balancer Controller dan CloudWatch Observ AWS ability Agent, untuk melakukan mutasi dan kemampuan validasi saat runtime.

 **Jaringan pod yang dapat dirutekan ** 

Jika Anda dapat membuat CIDR pod lokal Anda dapat dirutekan di jaringan lokal Anda, Anda dapat menjalankan webhook pada node hybrid. Ada beberapa teknik yang dapat Anda gunakan untuk membuat CIDR pod lokal dapat dirutekan di jaringan lokal Anda termasuk Border Gateway Protocol (BGP), rute statis, atau solusi routing khusus lainnya. BGP adalah solusi yang direkomendasikan karena lebih skalabel dan lebih mudah dikelola daripada solusi alternatif yang memerlukan konfigurasi rute khusus atau manual. AWS mendukung kemampuan BGP Cilium dan Calico untuk iklan pod CIDR, lihat [Konfigurasikan CNI untuk node hybrid](hybrid-nodes-cni.md) dan [Pod jarak jauh yang dapat dirutekan CIDRs](hybrid-nodes-concepts-kubernetes.md#hybrid-nodes-concepts-k8s-pod-cidrs) untuk informasi lebih lanjut.

 **Jaringan pod yang tidak dapat dirutekan ** 

Jika Anda * tidak dapat * membuat CIDR pod lokal Anda dapat dirutekan di jaringan lokal Anda dan perlu menjalankan webhook, sebaiknya jalankan semua webhook pada node cloud di cluster EKS yang sama dengan node hybrid Anda.

## Pertimbangan untuk cluster mode campuran
<a name="hybrid-nodes-considerations-mixed-mode"></a>

 *Cluster mode campuran * didefinisikan sebagai klaster EKS yang memiliki node hibrida dan node yang berjalan di AWS Cloud. Saat menjalankan cluster mode campuran, pertimbangkan rekomendasi berikut:
+ Jalankan VPC CNI pada node di AWS Cloud dan Cilium atau Calico pada node hybrid. Cilium dan Calico tidak didukung oleh AWS saat berjalan pada node di AWS Cloud.
+ Konfigurasikan webhook untuk berjalan pada node di AWS Cloud. Lihat [Konfigurasikan webhook untuk add-on](#hybrid-nodes-webhooks-add-ons) cara mengonfigurasi webhook untuk AWS dan add-on komunitas.
+ Jika aplikasi Anda memerlukan pod yang berjalan di node di AWS Cloud untuk berkomunikasi langsung dengan pod yang berjalan pada node hibrida (“komunikasi timur-barat”), dan Anda menggunakan VPC CNI pada node di AWS Cloud, dan Cilium atau Calico pada node hybrid, maka CIDR pod lokal Anda harus dapat dirutekan di jaringan lokal Anda.
+ Jalankan setidaknya satu replika CoreDNS pada node di AWS Cloud dan setidaknya satu replika CoreDNS pada node hybrid.
+ Konfigurasikan Distribusi Lalu Lintas Layanan untuk menjaga lalu lintas Layanan tetap lokal ke zona asalnya. Untuk informasi selengkapnya tentang Distribusi Lalu Lintas Layanan, lihat[Konfigurasikan Distribusi Lalu Lintas Layanan](#hybrid-nodes-mixed-service-traffic-distribution).
+ Jika Anda menggunakan Appl AWS ication Load Balancers (ALB) atau Network Load Balancers (NLB) untuk lalu lintas beban kerja yang berjalan pada node hybrid, maka target IP yang digunakan dengan ALB atau NLB harus dapat dirutekan dari. AWS
+ Add-on Metrics Server memerlukan konektivitas dari bidang kontrol EKS ke alamat IP pod Metrics Server. Jika Anda menjalankan add-on Metrics Server pada node hybrid, maka CIDR pod lokal Anda harus dapat dirutekan di jaringan lokal Anda.
+ Untuk mengumpulkan metrik untuk node hibrida menggunakan kolektor terkelola Amazon Managed Service for Prometheus (AMP), CIDR pod lokal Anda harus dapat dirutekan di jaringan lokal Anda. Atau, Anda dapat menggunakan kolektor terkelola AMP untuk metrik bidang kontrol EKS dan sumber daya yang berjalan di AWS Cloud, dan add-on AWS Distro for OpenTelemetry (ADOT) untuk mengumpulkan metrik untuk node hibrida.

## Konfigurasikan kluster mode campuran
<a name="hybrid-nodes-mixed-mode"></a>

Untuk melihat webhook yang bermutasi dan memvalidasi yang berjalan di cluster Anda, Anda dapat melihat jenis ** sumber daya ** Extensions di ** panel Res ** ources pada konsol EKS untuk cluster Anda, atau Anda dapat menggunakan perintah berikut. EKS juga melaporkan metrik webhook di dasbor pengamatan cluster, lihat [Memantau klaster dengan dasbor observabilitas](observability-dashboard.md) untuk informasi lebih lanjut.

```
kubectl get mutatingwebhookconfigurations
```

```
kubectl get validatingwebhookconfigurations
```

### Konfigurasikan Distribusi Lalu Lintas Layanan
<a name="hybrid-nodes-mixed-service-traffic-distribution"></a>

Saat menjalankan cluster mode campuran, sebaiknya gunakan Distribusi Lalu [* Lintas Layanan *](https://kubernetes.io/docs/reference/networking/virtual-ips/#traffic-distribution) untuk menjaga lalu lintas Layanan tetap lokal ke zona asalnya. Distribusi Lalu Lintas Layanan (tersedia untuk Kubernetes versi 1.31 dan yang lebih baru di EKS) adalah solusi yang direkomendasikan di atas Perutean Aware [ Topology ](https://kubernetes.io/docs/concepts/services-networking/topology-aware-routing/) karena lebih dapat diprediksi. Dengan Distribusi Lalu Lintas Layanan, titik akhir yang sehat di zona akan menerima semua lalu lintas untuk zona tersebut. Dengan Perutean Aware Topology, setiap layanan harus memenuhi beberapa kondisi di zona tersebut untuk menerapkan perutean kustom, jika tidak maka akan merutekan lalu lintas secara merata ke semua titik akhir.

Jika Anda menggunakan Cilium sebagai CNI Anda, Anda harus menjalankan CNI dengan `enable-service-topology` set `true` untuk mengaktifkan Distribusi Lalu Lintas Layanan. Anda dapat melewati konfigurasi ini dengan flag instalasi Helm `--set loadBalancer.serviceTopology=true` atau Anda dapat memperbarui instalasi yang ada dengan perintah Cilium CLI. `cilium config set enable-service-topology true` Agen Cilium yang berjalan pada setiap node harus dimulai ulang setelah memperbarui konfigurasi untuk instalasi yang ada.

Contoh cara mengonfigurasi Distribusi Lalu Lintas Layanan untuk Layanan CoreDNS ditampilkan di bagian berikut, dan kami sarankan Anda mengaktifkan hal yang sama untuk semua Layanan di cluster Anda untuk menghindari lalu lintas lintas lingkungan yang tidak diinginkan.

### Konfigurasikan replika CoreDNS
<a name="hybrid-nodes-mixed-coredns"></a>

Jika Anda menjalankan cluster mode campuran dengan node hibrida dan node di AWS Cloud, sebaiknya Anda memiliki setidaknya satu replika CoreDNS pada node hybrid dan setidaknya satu replika CoreDNS pada node Anda di Cloud. AWS Untuk mencegah masalah latensi dan jaringan dalam pengaturan cluster mode campuran, Anda dapat mengonfigurasi Layanan CoreDNS untuk memilih replika CoreDNS terdekat dengan [ Distribusi Lalu Lintas Layanan. ](https://kubernetes.io/docs/reference/networking/virtual-ips/#traffic-distribution)

 *Distribusi Lalu Lint * as Layanan (tersedia untuk Kubernetes versi 1.31 dan yang lebih baru di EKS) adalah solusi yang direkomendasikan di atas Perutean Aware [ Topology ](https://kubernetes.io/docs/concepts/services-networking/topology-aware-routing/) karena lebih dapat diprediksi. Dalam Distribusi Lalu Lintas Layanan, titik akhir yang sehat di zona akan menerima semua lalu lintas untuk zona tersebut. Dalam Perutean Aware Topology, setiap layanan harus memenuhi beberapa kondisi di zona tersebut untuk menerapkan perutean kustom, jika tidak maka akan merutekan lalu lintas secara merata ke semua titik akhir. Langkah-langkah berikut mengkonfigurasi Distribusi Lalu Lintas Layanan.

Jika Anda menggunakan Cilium sebagai CNI Anda, Anda harus menjalankan CNI dengan `enable-service-topology` set `true` untuk mengaktifkan Distribusi Lalu Lintas Layanan. Anda dapat melewati konfigurasi ini dengan flag instalasi Helm `--set loadBalancer.serviceTopology=true` atau Anda dapat memperbarui instalasi yang ada dengan perintah Cilium CLI. `cilium config set enable-service-topology true` Agen Cilium yang berjalan pada setiap node harus dimulai ulang setelah memperbarui konfigurasi untuk instalasi yang ada.

1. Tambahkan label zona topologi untuk setiap node hybrid Anda, misalnya`topology.kubernetes.io/zone: onprem`. Atau, Anda dapat mengatur label pada `nodeadm init` fase dengan menentukan label dalam `nodeadm` konfigurasi Anda, lihat[Konfigurasi Node untuk menyesuaikan kubelet (Opsional)](hybrid-nodes-nodeadm.md#hybrid-nodes-nodeadm-kubelet). Catatan, node yang berjalan di AWS Cloud secara otomatis mendapatkan label zona topologi yang diterapkan padanya yang sesuai dengan zona ketersediaan (AZ) node.

   ```
   kubectl label node {{hybrid-node-name}} topology.kubernetes.io/zone={{zone}}
   ```

1. Tambahkan `podAntiAffinity` ke penerapan CoreDNS dengan kunci zona topologi. Atau, Anda dapat mengonfigurasi penyebaran CoreDNS selama instalasi dengan add-on EKS.

   ```
   kubectl edit deployment coredns -n kube-system
   ```

   ```
   spec:
     template:
       spec:
         affinity:
          ...
           podAntiAffinity:
             preferredDuringSchedulingIgnoredDuringExecution:
             - podAffinityTerm:
                 labelSelector:
                   matchExpressions:
                   - key: k8s-app
                     operator: In
                     values:
                     - kube-dns
                 topologyKey: kubernetes.io/hostname
               weight: 100
             - podAffinityTerm:
                 labelSelector:
                   matchExpressions:
                   - key: k8s-app
                     operator: In
                     values:
                     - kube-dns
                 topologyKey: topology.kubernetes.io/zone
               weight: 50
         ...
   ```

1. Tambahkan pengaturan `trafficDistribution: PreferClose` ke konfigurasi `kube-dns` Layanan untuk mengaktifkan Distribusi Lalu Lintas Layanan.

   ```
   kubectl patch svc kube-dns -n kube-system --type=merge -p '{
     "spec": {
       "trafficDistribution": "PreferClose"
     }
   }'
   ```

1. Anda dapat mengonfirmasi bahwa Distribusi Lalu Lintas Layanan diaktifkan dengan melihat irisan titik akhir untuk `kube-dns` Layanan. Irisan titik akhir Anda harus menampilkan `hints` label zona topologi Anda, yang mengonfirmasi bahwa Distribusi Lalu Lintas Layanan diaktifkan. Jika Anda tidak melihat `hints` untuk setiap alamat titik akhir, maka Distribusi Lalu Lintas Layanan tidak diaktifkan.

   ```
   kubectl get endpointslice -A | grep "kube-dns"
   ```

   ```
   kubectl get endpointslice {{kube-dns-<id>}}  -n kube-system -o yaml
   ```

   ```
   addressType: IPv4
   apiVersion: discovery.k8s.io/v1
   endpoints:
   - addresses:
     - <your-hybrid-node-pod-ip>
     hints:
       forZones:
       - name: onprem
     nodeName: <your-hybrid-node-name>
     zone: onprem
   - addresses:
     - <your-cloud-node-pod-ip>
     hints:
       forZones:
       - name: us-west-2a
     nodeName: <your-cloud-node-name>
     zone: us-west-2a
   ```

### Konfigurasikan webhook untuk add-on
<a name="hybrid-nodes-webhooks-add-ons"></a>

Add-on berikut menggunakan webhook dan didukung untuk digunakan dengan node hybrid.
+  AWS Pengontrol Penyeimbang Beban
+ CloudWatch Agen Pengamatan
+  AWS Distro untuk OpenTelemetry (ADOT)
+  `cert-manager` 

Lihat bagian berikut untuk mengonfigurasi webhook yang digunakan oleh add-on ini untuk dijalankan pada node di AWS Cloud.

#### AWS Pengontrol Penyeimbang Beban
<a name="hybrid-nodes-mixed-lbc"></a>

Untuk menggunakan AWS Load Balancer Controller dalam pengaturan cluster mode campuran, Anda harus menjalankan pengontrol pada node di AWS Cloud. Untuk melakukannya, tambahkan yang berikut ini ke konfigurasi nilai Helm Anda atau tentukan nilai dengan menggunakan konfigurasi add-on EKS.

```
affinity:
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      nodeSelectorTerms:
      - matchExpressions:
        - key: eks.amazonaws.com/compute-type
          operator: NotIn
          values:
          - hybrid
```

#### CloudWatch Agen Pengamatan
<a name="hybrid-nodes-mixed-cwagent"></a>

Add-on CloudWatch Observability Agent memiliki Operator Kubernetes yang menggunakan webhook. Untuk menjalankan operator pada node di AWS Cloud dalam pengaturan cluster mode campuran, edit konfigurasi operator Agen CloudWatch Observability. Anda tidak dapat mengonfigurasi afinitas operator selama penginstalan dengan Helm dan EKS add-on (lihat masalah [ wadah-peta jalan \#2431](https://github.com/aws/containers-roadmap/issues/2431)).

```
kubectl edit -n amazon-cloudwatch deployment amazon-cloudwatch-observability-controller-manager
```

```
spec:
  ...
  template:
    ...
    spec:
      affinity:
        nodeAffinity:
          requiredDuringSchedulingIgnoredDuringExecution:
            nodeSelectorTerms:
            - matchExpressions:
              - key: eks.amazonaws.com/compute-type
                operator: NotIn
                values:
                - hybrid
```

#### AWS Distro untuk OpenTelemetry (ADOT)
<a name="hybrid-nodes-mixed-adot"></a>

Add-on AWS Distro for OpenTelemetry (ADOT) memiliki Operator Kubernetes yang menggunakan webhook. Untuk menjalankan operator pada node di AWS Cloud dalam pengaturan cluster mode campuran, tambahkan yang berikut ini ke konfigurasi nilai Helm Anda atau tentukan nilai dengan menggunakan konfigurasi add-on EKS.

```
affinity:
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      nodeSelectorTerms:
      - matchExpressions:
        - key: eks.amazonaws.com/compute-type
          operator: NotIn
          values:
          - hybrid
```

Jika CIDR pod Anda tidak dapat dirutekan di jaringan lokal Anda, maka kolektor ADOT harus berjalan pada node hybrid untuk mengikis metrik dari node hibrida Anda dan beban kerja yang berjalan di atasnya. Untuk melakukannya, edit Definisi Sumber Daya Kustom (CRD).

```
kubectl -n opentelemetry-operator-system edit opentelemetrycollectors.opentelemetry.io adot-col-prom-metrics
```

```
spec:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: eks.amazonaws.com/compute-type
            operator: In
            values:
            - hybrid
```

Anda dapat mengonfigurasi kolektor ADOT untuk hanya mengikis metrik dari node hibrida dan sumber daya yang berjalan pada node hibrida dengan menambahkan yang berikut `relabel_configs` ke masing-masing `scrape_configs` dalam konfigurasi CRD kolektor ADOT.

```
relabel_configs:
  - action: keep
    regex: hybrid
    source_labels:
    - __meta_kubernetes_node_label_eks_amazonaws_com_compute_type
```

Add-on ADOT memiliki persyaratan prasyarat `cert-manager` untuk menginstal sertifikat TLS yang digunakan oleh webhook operator ADOT. `cert-manager`juga menjalankan webhook dan Anda dapat mengonfigurasinya untuk berjalan di node di AWS Cloud dengan konfigurasi nilai Helm berikut.

```
affinity:
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      nodeSelectorTerms:
      - matchExpressions:
        - key: eks.amazonaws.com/compute-type
          operator: NotIn
          values:
          - hybrid
webhook:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: eks.amazonaws.com/compute-type
            operator: NotIn
            values:
            - hybrid
cainjector:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: eks.amazonaws.com/compute-type
            operator: NotIn
            values:
            - hybrid
startupapicheck:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: eks.amazonaws.com/compute-type
            operator: NotIn
            values:
            - hybrid
```

#### `manajer sertifikat`
<a name="hybrid-nodes-mixed-cert-manager"></a>

`cert-manager`Add-on menjalankan webhook dan Anda dapat mengonfigurasinya untuk berjalan di node di AWS Cloud dengan konfigurasi nilai Helm berikut.

```
affinity:
  nodeAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
      nodeSelectorTerms:
      - matchExpressions:
        - key: eks.amazonaws.com/compute-type
          operator: NotIn
          values:
          - hybrid
webhook:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: eks.amazonaws.com/compute-type
            operator: NotIn
            values:
            - hybrid
cainjector:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: eks.amazonaws.com/compute-type
            operator: NotIn
            values:
            - hybrid
startupapicheck:
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: eks.amazonaws.com/compute-type
            operator: NotIn
            values:
            - hybrid
```