|
| 1 | +--- |
| 2 | +reviewers: |
| 3 | +- Random-Liu |
| 4 | +title: Validasi Pengaturan Node |
| 5 | +weight: 30 |
| 6 | +--- |
| 7 | + |
| 8 | +## Tes Kesesuaian *Node* |
| 9 | + |
| 10 | +*Node conformance test* atau tes kesesuaian *Node* adalah kerangka kerja tes berbasis kontainer yang menyediakan sistem verifikasi dan tes untuk *Node*. Tes memvalidasi apakah *Node* memenuhi syarat minimum untuk Kubernetes; *Node* yang lolos tes dianggap lolos untuk bergabung dengan klaster Kubernetes. |
| 11 | + |
| 12 | +## Prasyarat Node |
| 13 | + |
| 14 | +Untuk menjalankan tes kesesuaian *Node*, sebuah *Node* harus memenuhi prasyarat yang sama dengan *Node* Kubernetes standar. Sekurang - kurangnya, *daemon* dibawah ini harus terpasang di *Node*: |
| 15 | + |
| 16 | +* *runtime* kontainer yang kompatibel dengan CRI seperti Docker, containerd dan CRI-O |
| 17 | +* kubelet |
| 18 | + |
| 19 | +## Menjalankan Tes Kesesuaian Node |
| 20 | + |
| 21 | +Untuk menjalankan tes kesesuaian *Node*, lakukanlah langkah-langkah berikut ini: |
| 22 | + |
| 23 | +1. Sesuaikan nilai opsi dari `--kubeconfig` untuk kubelet; sebagai contoh: |
| 24 | + `--kubeconfig=/var/lib/kubelet/config.yaml`. |
| 25 | + Karena kerangka kerja tes akan menjalankan panel kontrol lokal untuk menguji kubelet, |
| 26 | + menggunakan `http://localhost:8080` sebagai URL dari API Server. |
| 27 | + Terdapat beberapa parameter *command line* untuk kubelet yang mungkin bisa kamu gunakan: |
| 28 | + |
| 29 | + * `--cloud-provider`: Jika kamu menggunakan `--cloud-provider=gce`, maka kamu harus |
| 30 | + menghapus *flag* untuk menjalankan tes |
| 31 | + |
| 32 | +2. Jalankan tes kesesuaian *Node* dengan perintah: |
| 33 | + |
| 34 | + ```shell |
| 35 | + # $CONFIG_DIR adalah path dari manifest untuk kubelet kamu |
| 36 | + # $LOG_DIR adalah path untuk output |
| 37 | + sudo docker run -it --rm --privileged --net=host \ |
| 38 | + -v /:/rootfs -v $CONFIG_DIR:$CONFIG_DIR -v $LOG_DIR:/var/result \ |
| 39 | + registry.k8s.io/node-test:0.2 |
| 40 | + ``` |
| 41 | + |
| 42 | +## Menjalankan Tes Kesesuaian Node untuk Arsitektur lainnya |
| 43 | + |
| 44 | +Kubernetes juga menyediakan *image* tes kesesuaian *Node* untuk arsitektur lainnya: |
| 45 | + |
| 46 | +| Arch | Image | |
| 47 | +|--------|:-----------------:| |
| 48 | +| amd64 | node-test-amd64 | |
| 49 | +| arm | node-test-arm | |
| 50 | +| arm64 | node-test-arm64 | |
| 51 | + |
| 52 | +## Menjalankan Tes Tertentu |
| 53 | + |
| 54 | +Untuk menjalankan tes-tes tertentu, ganti nilai *environment variable* `FOCUS` dengan ekspresi reguler dari tes-tes yang ingin kamu jalankan. |
| 55 | + |
| 56 | +```shell |
| 57 | +sudo docker run -it --rm --privileged --net=host \ |
| 58 | + -v /:/rootfs:ro -v $CONFIG_DIR:$CONFIG_DIR -v $LOG_DIR:/var/result \ |
| 59 | + -e FOCUS=MirrorPod \ # Hanya menjalankan tes MirrorPod |
| 60 | + registry.k8s.io/node-test:0.2 |
| 61 | +``` |
| 62 | + |
| 63 | +Untuk melewat tes-tes tertentu, ganti nilai *environment variable* `SKIP` dengan ekspresi reguler dari tes-tes yang ingin kamu lewati. |
| 64 | + |
| 65 | +```shell |
| 66 | +sudo docker run -it --rm --privileged --net=host \ |
| 67 | + -v /:/rootfs:ro -v $CONFIG_DIR:$CONFIG_DIR -v $LOG_DIR:/var/result \ |
| 68 | + -e SKIP=MirrorPod \ # Menjalankan semua tes skesesuaian dengan melewat tes MirrorPod |
| 69 | + registry.k8s.io/node-test:0.2 |
| 70 | +``` |
| 71 | + |
| 72 | +Tes kesesuaian *Node* adalah versi kontainer dari [node e2e test](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-node/e2e-node-tests.md). Secara bawaan, tes ini menjalankan semua tes kesesuaian. |
| 73 | + |
| 74 | +Secara teori, kamu dapat menjalankan tes node-e2e manapun jika kamu mengkonfigurasi kontainer dan *mount* yang dibutuhkan *volume* dengan benar. Tapi **sangat direkomendasikan hanya untuk menjalankan tes kesesuaian**, karena banyak sekali konfigurasi yang dibutuhkan untuk menjalankan tes ketidaksesuaian dan tentunya lebih kompleks. |
| 75 | + |
| 76 | +## Kekurangan |
| 77 | + |
| 78 | +* Tes ini meninggalkan sisa-sisa *image* Docker di dalam *Node*, termasuk *image* dari tes kesesuaian *Node* dan *image* kontainer yang digunakan untuk tes fungsionalitas. |
| 79 | +* Tes ini meninggalkan kontainer mati di dalam *Node*. Kontainer-kontainer ini dibuat selama tes fungsionalitas. |
| 80 | + |
0 commit comments