

 **Bantu tingkatkan 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 **Edit halaman ini pada GitHub** tautan 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.

# Memecahkan masalah Konektor Amazon EKS
<a name="troubleshooting-connector"></a>

Topik ini mencakup beberapa kesalahan umum yang mungkin Anda temui saat menggunakan Konektor Amazon EKS, termasuk petunjuk tentang cara mengatasinya dan solusinya.

## Pemecahan masalah dasar
<a name="tsc-steps"></a>

Bagian ini menjelaskan langkah-langkah untuk mendiagnosis masalah Amazon EKS Connector.

### Periksa status Konektor Amazon EKS
<a name="tsc-check"></a>

Untuk memeriksa status Konektor Amazon EKS, ketik:

```
kubectl get pods -n eks-connector
```

### Periksa log Konektor Amazon EKS
<a name="tsc-logs"></a>

Amazon EKS Connector Pod terdiri dari tiga kontainer. Untuk mengambil log lengkap untuk semua kontainer ini sehingga Anda dapat memeriksanya, jalankan perintah berikut:
+  `connector-init` 

  ```
  kubectl logs eks-connector-0 --container connector-init -n eks-connector
  kubectl logs eks-connector-1 --container connector-init -n eks-connector
  ```
+  `connector-proxy` 

  ```
  kubectl logs eks-connector-0 --container connector-proxy -n eks-connector
  kubectl logs eks-connector-1 --container connector-proxy -n eks-connector
  ```
+  `connector-agent` 

  ```
  kubectl exec eks-connector-0 --container connector-agent -n eks-connector -- cat /var/log/amazon/ssm/amazon-ssm-agent.log
  kubectl exec eks-connector-1 --container connector-agent -n eks-connector -- cat /var/log/amazon/ssm/amazon-ssm-agent.log
  ```

### Dapatkan nama cluster yang efektif
<a name="tsc-name"></a>

Cluster Amazon EKS diidentifikasi secara unik oleh `clusterName` dalam satu AWS akun dan Wilayah. AWS Jika Anda memiliki beberapa cluster yang terhubung di Amazon EKS, Anda dapat mengonfirmasi klaster Amazon EKS mana yang terdaftar untuk klaster Kubernetes saat ini. Untuk melakukan ini, masukkan yang berikut ini untuk mengetahui cluster saat ini. `clusterName`

```
kubectl exec eks-connector-0 --container connector-agent -n eks-connector \
  -- cat /var/log/amazon/ssm/amazon-ssm-agent.log | grep -m1 -oE "eks_c:[a-zA-Z0-9_-]+" | sed -E "s/^.*eks_c:([a-zA-Z0-9_-]+)_[a-zA-Z0-9]+.*$/\1/"
kubectl exec eks-connector-1 --container connector-agent -n eks-connector \
  -- cat /var/log/amazon/ssm/amazon-ssm-agent.log | grep -m1 -oE "eks_c:[a-zA-Z0-9_-]+" | sed -E "s/^.*eks_c:([a-zA-Z0-9_-]+)_[a-zA-Z0-9]+.*$/\1/"
```

### Perintah lain-lain
<a name="tsc-misc"></a>

Perintah berikut berguna untuk mengambil informasi yang Anda butuhkan untuk memecahkan masalah.
+ Gunakan perintah berikut untuk mengumpulkan gambar yang digunakan oleh Pod di Amazon EKS Connector.

  ```
  kubectl get pods -n eks-connector -o jsonpath="{.items[*].spec.containers[*].image}" | tr -s '[[:space:]]' '\n'
  ```
+ Gunakan perintah berikut untuk menentukan nama node tempat Amazon EKS Connector berjalan.

  ```
  kubectl get pods -n eks-connector -o jsonpath="{.items[*].spec.nodeName}" | tr -s '[[:space:]]' '\n'
  ```
+ Jalankan perintah berikut untuk mendapatkan versi klien dan server Kubernetes Anda.

  ```
  kubectl version
  ```
+ Jalankan perintah berikut untuk mendapatkan informasi tentang node Anda.

  ```
  kubectl get nodes -o wide --show-labels
  ```

## Masalah helm: 403 Terlarang
<a name="w662aac60c33b9"></a>

Jika Anda menerima kesalahan berikut saat menjalankan perintah helm install:

```
Error: INSTALLATION FAILED: unexpected status from HEAD request to https://public.ecr.aws/v2/eks-connector/eks-connector-chart/manifests/0.0.6: 403 Forbidden
```

Anda dapat menjalankan baris berikut untuk memperbaikinya:

```
docker logout public.ecr.aws
```

## Kesalahan konsol: cluster macet dalam status Tertunda
<a name="symp-pending"></a>

Jika klaster macet dalam `Pending` status di konsol Amazon EKS setelah Anda mendaftarkannya, itu mungkin karena Konektor Amazon EKS AWS belum berhasil menghubungkan cluster. Untuk klaster terdaftar, `Pending` status berarti bahwa koneksi tidak berhasil dibuat. Untuk mengatasi masalah ini, pastikan Anda telah menerapkan manifes ke cluster Kubernetes target. Jika Anda menerapkannya ke cluster, tetapi cluster masih dalam `Pending` status, maka `eks-connector` statefulset mungkin tidak sehat. Untuk memecahkan masalah ini, lihat [Pod konektor Amazon EKS sedang crash looping](#symp-loop) di topik ini.

## Kesalahan konsol: Sistem pengguna: serviceaccount:eks-connector:eks-connector tidak dapat menyamar sebagai pengguna sumber daya dalam grup API pada cakupan cluster
<a name="symp-imp"></a>

[Konektor Amazon EKS menggunakan [peniruan identitas pengguna](https://kubernetes.io/docs/reference/access-authn-authz/authentication/#user-impersonation) Kubernetes untuk bertindak atas nama kepala sekolah IAM dari.](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html#iam-term-principal) Konsol Manajemen AWS Setiap prinsipal yang mengakses API Kubernetes dari akun AWS `eks-connector` layanan harus diberikan izin untuk meniru pengguna Kubernetes yang sesuai dengan IAM ARN sebagai nama pengguna Kubernetes. Dalam contoh berikut, IAM ARN dipetakan ke pengguna Kubernetes.
+ Pengguna IAM {{john}} dari AWS akun {{111122223333}} dipetakan ke pengguna Kubernetes. [Praktik terbaik IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html) menyarankan agar Anda memberikan izin untuk peran, bukan pengguna.

  ```
   arn:aws: iam::111122223333:user/john
  ```
+ Peran IAM {{admin}} dari AWS akun {{111122223333}} dipetakan ke pengguna Kubernetes:

  ```
   arn:aws: iam::111122223333:role/admin
  ```

  Hasilnya adalah peran IAM ARN, bukan ARN sesi AWS STS.

Untuk petunjuk tentang cara mengonfigurasi `ClusterRole` dan `ClusterRoleBinding` memberikan hak istimewa akun `eks-connector` layanan untuk meniru pengguna yang dipetakan, lihat. [Berikan akses untuk melihat resource klaster Kubernetes di konsol Amazon EKS](connector-grant-access.md) Pastikan bahwa dalam template, `%IAM_ARN%` diganti dengan IAM ARN dari kepala IAM Konsol Manajemen AWS .

## Kesalahan konsol: [...] dilarang: Pengguna [...] tidak dapat mencantumkan sumber daya [...] dalam grup API di cakupan cluster
<a name="symp-rbac"></a>

Pertimbangkan masalah berikut. Konektor Amazon EKS telah berhasil menyamar sebagai prinsipal Konsol Manajemen AWS IAM yang meminta di cluster Kubernetes target. Namun, prinsipal yang ditiru tidak memiliki izin RBAC untuk operasi API Kubernetes.

Untuk mengatasi masalah ini, ada dua metode untuk memberikan izin kepada pengguna tambahan. Jika sebelumnya Anda menginstal eks-konektor melalui bagan helm, Anda dapat dengan mudah memberikan akses kepada pengguna dengan menjalankan perintah berikut. Ganti `userARN1` dan `userARN2` dengan daftar peran IAM untuk memberikan akses untuk melihat sumber daya Kubernetes: ARNs 

```
helm upgrade eks-connector oci://public.ecr.aws/eks-connector/eks-connector-chart \
    --reuse-values \
    --set 'authentication.allowedUserARNs={userARN1,userARN2}'
```

Atau, sebagai administrator klaster, berikan tingkat hak istimewa RBAC yang sesuai kepada masing-masing pengguna Kubernetes. Untuk informasi selengkapnya dan contoh tambahan, lihat [Berikan akses untuk melihat resource klaster Kubernetes di konsol Amazon EKS](connector-grant-access.md).

## Kesalahan konsol: Amazon EKS tidak dapat berkomunikasi dengan server API cluster Kubernetes Anda. Cluster harus dalam keadaan AKTIF agar koneksi berhasil. Coba lagi dalam beberapa menit.
<a name="symp-con"></a>

Jika layanan Amazon EKS tidak dapat berkomunikasi dengan konektor Amazon EKS di cluster target, itu mungkin karena salah satu alasan berikut:
+ Konektor Amazon EKS di cluster target tidak sehat.
+ Konektivitas yang buruk atau koneksi yang terputus antara cluster target dan AWS Wilayah.

Untuk mengatasi masalah ini, periksa [log Amazon EKS Connector](#tsc-logs). Jika Anda tidak melihat kesalahan untuk Konektor Amazon EKS, coba lagi koneksi setelah beberapa menit. Jika Anda secara teratur mengalami latensi tinggi atau konektivitas intermiten untuk kluster target, pertimbangkan untuk mendaftarkan ulang cluster ke AWS Wilayah yang terletak lebih dekat dengan Anda.

## Pod konektor Amazon EKS sedang crash looping
<a name="symp-loop"></a>

Ada banyak alasan yang dapat menyebabkan Pod konektor Amazon EKS memasuki `CrashLoopBackOff` status. Masalah ini kemungkinan melibatkan `connector-init` wadah. Periksa status Pod konektor Amazon EKS.

```
kubectl get pods -n eks-connector
```

Contoh output adalah sebagai berikut.

```
NAME              READY   STATUS                  RESTARTS   AGE
eks-connector-0   0/2     Init:CrashLoopBackOff   1          7s
```

Jika output Anda mirip dengan output sebelumnya, lihat [Periksa log Konektor Amazon EKS](#tsc-logs) untuk memecahkan masalah.

## Gagal memulai eks-konektor: InvalidActivation
<a name="symp-regis"></a>

Saat Anda memulai Konektor Amazon EKS untuk pertama kalinya, ia mendaftarkan `activationId` dan `activationCode` dengan Amazon Web Services. Pendaftaran mungkin gagal, yang dapat menyebabkan `connector-init` penampung mogok dengan kesalahan yang mirip dengan kesalahan berikut.

```
F1116 20:30:47.261469       1 init.go:43] failed to initiate eks-connector: InvalidActivation:
```

Untuk memecahkan masalah ini, pertimbangkan penyebab berikut dan perbaikan yang disarankan:
+ Pendaftaran mungkin gagal karena `activationId` dan `activationCode` tidak ada dalam file manifes Anda. Jika ini masalahnya, pastikan bahwa itu adalah nilai yang benar yang dikembalikan dari operasi `RegisterCluster` API, dan itu `activationCode` ada di file manifes. `activationCode`Itu ditambahkan ke rahasia Kubernetes, jadi harus dikodekan. `base64` Untuk informasi selengkapnya, lihat [Langkah 1: Mendaftarkan cluster](connecting-cluster.md#connector-connecting).
+ Pendaftaran mungkin gagal karena aktivasi Anda kedaluwarsa. Ini karena, untuk alasan keamanan, Anda harus mengaktifkan Konektor Amazon EKS dalam waktu tiga hari setelah mendaftarkan cluster. Untuk mengatasi masalah ini, pastikan manifes Amazon EKS Connector diterapkan ke cluster Kubernetes target sebelum tanggal dan waktu kedaluwarsa. Untuk mengonfirmasi tanggal kedaluwarsa aktivasi Anda, hubungi operasi `DescribeCluster` API.

  ```
  aws eks describe-cluster --name my-cluster
  ```

  Dalam contoh respons berikut, tanggal kedaluwarsa dan waktu dicatat sebagai`2021-11-12T22:28:51.101000-08:00`.

  ```
  {
      "cluster": {
          "name": "my-cluster",
          "arn": "arn:aws: eks:region:111122223333:cluster/my-cluster",
          "createdAt": "2021-11-09T22:28:51.449000-08:00",
          "status": "FAILED",
          "tags": {
          },
          "connectorConfig": {
              "activationId": "00000000-0000-0000-0000-000000000000",
              "activationExpiry": "2021-11-12T22:28:51.101000-08:00",
              "provider": "OTHER",
              "roleArn": "arn:aws: iam::111122223333:role/my-connector-role"
          }
      }
  }
  ```

  Jika `activationExpiry` lulus, deregister cluster dan daftarkan lagi. Melakukan hal ini menghasilkan aktivasi baru.

## Node cluster tidak memiliki konektivitas keluar
<a name="symp-out"></a>

Agar berfungsi dengan baik, Konektor Amazon EKS memerlukan konektivitas keluar ke beberapa titik AWS akhir. Anda tidak dapat menghubungkan klaster pribadi tanpa konektivitas keluar ke AWS Wilayah target. Untuk mengatasi masalah ini, Anda harus menambahkan konektivitas keluar yang diperlukan. Untuk informasi tentang persyaratan konektor, lihat [Pertimbangan Amazon EKS Connector](eks-connector.md#connect-cluster-reqts).

## Pod konektor Amazon EKS sedang dalam `ImagePullBackOff` keadaan
<a name="symp-img"></a>

Jika Anda menjalankan `get pods` perintah dan Pod berada dalam `ImagePullBackOff` status, mereka tidak dapat berfungsi dengan baik. Jika Pod Konektor Amazon EKS dalam `ImagePullBackOff` status, mereka tidak dapat berfungsi dengan baik. Periksa status Pod Konektor Amazon EKS Anda.

```
kubectl get pods -n eks-connector
```

Contoh output adalah sebagai berikut.

```
NAME              READY   STATUS                  RESTARTS   AGE
eks-connector-0   0/2     Init:ImagePullBackOff   0          4s
```

File manifes Konektor Amazon EKS default mereferensikan gambar dari [Galeri Publik Amazon ECR](https://gallery.ecr.aws/). Mungkin saja cluster Kubernetes target tidak dapat menarik gambar dari Galeri Publik Amazon ECR. Baik menyelesaikan masalah tarik gambar Galeri Publik Amazon ECR, atau pertimbangkan untuk mencerminkan gambar di registri penampung pribadi pilihan Anda.