|
| 1 | +--- |
| 2 | +title: Membangun Klaster dengan Ketersediaan Tinggi menggunakan kubeadm |
| 3 | +content_type: task |
| 4 | +weight: 60 |
| 5 | +--- |
| 6 | + |
| 7 | +<!-- overview --> |
| 8 | + |
| 9 | +Laman ini menjelaskan dua pendekatan yang berbeda untuk membuat klaster Kubernetes dengan ketersediaan tinggi menggunakan kubeadm: |
| 10 | + |
| 11 | +- Dengan Node _control plane_ yang bertumpuk (_stacked_). Pendekatan ini membutuhkan sumber daya infrastruktur yang lebih sedikit. Anggota-anggota etcd dan Node _control plane_ diletakkan pada tempat yang sama (_co-located_). |
| 12 | +- Dengan klaster etcd eksternal. Pendekatan ini membutuhkan lebih banyak sumber daya infrastruktur. Node _control plane_ dan anggota etcd berada pada tempat yang berbeda. |
| 13 | + |
| 14 | +Sebelum memulai, kamu harus memikirkan dengan matang pendekatan mana yang paling sesuai untuk kebutuhan aplikasi dan _environment_-mu. [Topik perbandingan berikut](/id/docs/setup/production-environment/tools/kubeadm/ha-topology/) menguraikan kelebihan dan kekurangan dari masing-masing pendekatan. |
| 15 | + |
| 16 | +Jika kamu menghadapi masalah dalam pembuatan klaster dengan ketersediaan tinggi, silakan berikan umpan balik |
| 17 | +pada [pelacak isu](https://github.com/kubernetes/kubeadm/issues/new) kubeadm. |
| 18 | + |
| 19 | +Lihat juga [dokumentasi pembaruan](/id/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade-1-15). |
| 20 | + |
| 21 | +{{< caution >}} |
| 22 | +Laman ini tidak menunjukkan cara untuk menjalankan klastermu pada penyedia layanan cloud. Pada _environment_ cloud, kedua pendekatan yang didokumentasikan di sini tidak akan bekerja untuk objek Service dengan tipe LoadBalancer maupun PersistentVolume dinamis. |
| 23 | +{{< /caution >}} |
| 24 | + |
| 25 | + |
| 26 | + |
| 27 | +## {{% heading "prerequisites" %}} |
| 28 | + |
| 29 | + |
| 30 | +Untuk kedua metode kamu membutuhkan infrastruktur seperti berikut: |
| 31 | + |
| 32 | +- Tiga mesin yang memenuhi [kebutuhan minimum kubeadm](/id/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#sebelum-mulai) untuk |
| 33 | + Node _control plane_ |
| 34 | +- Tiga mesin yang memenuhi [kebutuhan minimum kubeadm](/id/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#sebelum-mulai) untuk Node _worker_ |
| 35 | +- Konektivitas internet pada seluruh mesin di dalam klaster (baik jaringan publik maupun jaringan pribadi) |
| 36 | +- Hak akses sudo pada seluruh mesin |
| 37 | +- Akses SSH dari satu perangkat ke seluruh Node pada sistem |
| 38 | +- Perkakas `kubeadm` dan `kubelet` diinstal pada seluruh mesin. Perkakas `kubectl` bersifat opsional. |
| 39 | + |
| 40 | +Untuk klaster etcd eksternal saja, kamu juga membutuhkan: |
| 41 | + |
| 42 | +- Tiga mesin tambahan untuk anggota-anggota etcd |
| 43 | + |
| 44 | + |
| 45 | + |
| 46 | +<!-- steps --> |
| 47 | + |
| 48 | +## Langkah pertama untuk kedua metode |
| 49 | + |
| 50 | +### Membuat _load balancer_ untuk kube-apiserver |
| 51 | + |
| 52 | +{{< note >}} |
| 53 | +Akan ada banyak konfigurasi untuk _load balancer_. Contoh berikut ini hanyalah salah satu |
| 54 | +opsi. Kebutuhan klastermu mungkin membutuhkan konfigurasi berbeda. |
| 55 | +{{< /note >}} |
| 56 | + |
| 57 | +1. Buat sebuah _load balancer_ kube-apiserver dengan sebuah nama yang yang akan mengubah ke dalam bentuk DNS. |
| 58 | + |
| 59 | + - Pada _environment_ cloud kamu harus meletakkan Node _control plane_ di belakang _load balancer_ yang meneruskan TCP. _Load balancer_ ini mendistribusikan trafik ke seluruh Node _control plane_ pada daftar tujuan. _Health check_ untuk |
| 60 | + apiserver adalah pengujian TCP pada porta yang didengarkan oleh kube-apiserver |
| 61 | + (nilai semula `:6443`). |
| 62 | + |
| 63 | + - Tidak direkomendasikan untuk menggunakan alamat IP secara langsung pada _environment_ cloud. |
| 64 | + |
| 65 | + - _Load balancer_ harus dapat berkomunikasi dengan seluruh Node _control plane_ |
| 66 | + pada porta yang digunakan apiserver. _Load balancer_ tersebut juga harus mengizinkan trafik masuk pada porta yang didengarkannya. |
| 67 | + |
| 68 | + - Pastikan alamat _load balancer_ sesuai |
| 69 | + dengan alamat `ControlPlaneEndpoint` pada kubeadm. |
| 70 | + |
| 71 | + - Baca panduan [Opsi untuk _Software Load Balancing_](https://github.com/kubernetes/kubeadm/blob/master/id/docs/ha-considerations.md#options-for-software-load-balancing) |
| 72 | + untuk detail lebih lanjut. |
| 73 | + |
| 74 | +2. Tambahkan Node _control plane_ pertama pada _load balancer_ dan lakukan pengujian koneksi: |
| 75 | + |
| 76 | + ```sh |
| 77 | + nc -v LOAD_BALANCER_IP PORT |
| 78 | + ``` |
| 79 | + |
| 80 | + - Kegalatan koneksi yang ditolak memang diantisipasi karena apiserver belum |
| 81 | + berjalan. Namun jika mendapat _timeout_, berarti _load balancer_ tidak dapat berkomunikasi |
| 82 | + dengan Node _control plane_. Jika terjadi _timeout_, lakukan pengaturan ulang pada _load balancer_ agar dapat berkomunikasi dengan Node _control plane_. |
| 83 | + |
| 84 | +3. Tambahkan Node _control plane_ lainnya pada grup tujuan _load balancer_. |
| 85 | + |
| 86 | +## Node _control plane_ dan etcd bertumpuk (_stacked_) |
| 87 | + |
| 88 | +### Langkah-langkah untuk Node _control plane_ pertama |
| 89 | + |
| 90 | +1. Inisialisasi _control plane_: |
| 91 | + |
| 92 | + ```sh |
| 93 | + sudo kubeadm init --control-plane-endpoint "LOAD_BALANCER_DNS:LOAD_BALANCER_PORT" --upload-certs |
| 94 | + ``` |
| 95 | + |
| 96 | + - Kamu bisa menggunakan opsi `--kubernetes-version` untuk mengatur versi Kubernetes yang akan digunakan. |
| 97 | + Direkomendasikan untuk menggunakan versi kubeadm, kubelet, kubectl, dan Kubernetes yang sama. |
| 98 | + |
| 99 | + - Opsi `--control-plane-endpoint` harus diatur menuju alamat atau DNS dan porta dari _load balancer_. |
| 100 | + |
| 101 | + - Opsi `--upload-certs` digunakan untuk mengunggah sertifikat-sertifikat yang harus dibagikan ke seluruh |
| 102 | + Node _control plane_ pada klaster. Jika sebaliknya, kamu memilih untuk menyalin sertifikat ke |
| 103 | + seluruh Node _control plane_ sendiri atau menggunakan perkakas automasi, silakan hapus opsi ini dan merujuk ke bagian [Distribusi sertifikat manual](#distribusi-sertifikat-manual) di bawah. |
| 104 | + |
| 105 | + {{< note >}} |
| 106 | + Opsi `--config` dan `--certificate-key` pada `kubeadm init` tidak dapat digunakan secara bersamaan, maka dari itu jika kamu ingin menggunakan |
| 107 | + [konfigurasi kubeadm](https://godoc.org/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta2) |
| 108 | + kamu harus menambahkan _field_ `certificateKey` pada lokasi pengaturan yang sesuai |
| 109 | + (berada di bawah `InitConfiguration` dan `JoinConfiguration: controlPlane`). |
| 110 | + {{< /note >}} |
| 111 | + |
| 112 | + {{< note >}} |
| 113 | + Beberapa _plugin_ jaringan CNI membutuhkan pengaturan tambahan, seperti menentukan CIDR IP untuk Pod, meski beberapa lainnya tidak. |
| 114 | + Lihat [dokumentasi jaringan CNI](/id/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#jaringan-pod). |
| 115 | + Untuk menambahkan CIDR Pod, tambahkan opsi `--pod-network-cidr`, atau jika kamu menggunakan berkas konfigurasi kubeadm |
| 116 | + pasang _field_ `podSubnet` di bawah objek `networking` dari `ClusterConfiguration`. |
| 117 | + {{< /note >}} |
| 118 | + |
| 119 | + - Keluaran yang dihasilkan terlihat seperti berikut ini: |
| 120 | + |
| 121 | + ```sh |
| 122 | + ... |
| 123 | + You can now join any number of control-plane node by running the following command on each as a root: |
| 124 | + kubeadm join 192.168.0.200:6443 --token 9vr73a.a8uxyaju799qwdjv --discovery-token-ca-cert-hash sha256:7c2e69131a36ae2a042a339b33381c6d0d43887e2de83720eff5359e26aec866 --control-plane --certificate-key f8902e114ef118304e561c3ecd4d0b543adc226b7a07f675f56564185ffe0c07 |
| 125 | + |
| 126 | + Please note that the certificate-key gives access to cluster sensitive data, keep it secret! |
| 127 | + As a safeguard, uploaded-certs will be deleted in two hours; If necessary, you can use kubeadm init phase upload-certs to reload certs afterward. |
| 128 | + |
| 129 | + Then you can join any number of worker nodes by running the following on each as root: |
| 130 | + kubeadm join 192.168.0.200:6443 --token 9vr73a.a8uxyaju799qwdjv --discovery-token-ca-cert-hash sha256:7c2e69131a36ae2a042a339b33381c6d0d43887e2de83720eff5359e26aec866 |
| 131 | + ``` |
| 132 | + |
| 133 | + - Salin keluaran ini pada sebuah berkas teks. Kamu akan membutuhkannya nanti untuk menggabungkan Node _control plane_ dan _worker_ ke klaster. |
| 134 | + - Ketika opsi `--upload-certs` digunakan dengan `kubeadm init`, sertifikat dari _control plane_ utama |
| 135 | + akan dienkripsi dan diunggah ke Secret `kubeadm-certs`. |
| 136 | + - Untuk mengunggah ulang sertifikat dan membuat kunci dekripsi baru, gunakan perintah berikut pada Node _control plane_ |
| 137 | + yang sudah tergabung pada klaster: |
| 138 | + |
| 139 | + ```sh |
| 140 | + sudo kubeadm init phase upload-certs --upload-certs |
| 141 | + ``` |
| 142 | + |
| 143 | + - Kamu juga dapat menentukan `--certificate-key` _custom_ pada saat `init` yang nanti dapat digunakan pada saat `join`. |
| 144 | + Untuk membuat kunci tersebut kamu dapat menggunakan perintah berikut: |
| 145 | + |
| 146 | + ```sh |
| 147 | + kubeadm alpha certs certificate-key |
| 148 | + ``` |
| 149 | + |
| 150 | + {{< note >}} |
| 151 | + Secret `kubeadm-certs` dan kunci dekripsi akan kadaluarsa setelah dua jam. |
| 152 | + {{< /note >}} |
| 153 | + |
| 154 | + {{< caution >}} |
| 155 | + Seperti yang tertera pada keluaran perintah, kunci sertifikat memberikan akses ke data klaster yang bersifat sensitif, jaga kerahasiaannya! |
| 156 | + {{< /caution >}} |
| 157 | + |
| 158 | +2. Pasang _plugin_ CNI pilihanmu: |
| 159 | + [Ikuti petunjuk berikut](/id/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#jaringan-pod) |
| 160 | + untuk menginstal penyedia CNI. Pastikan konfigurasinya sesuai dengan CIDR Pod yang ditentukan pada berkas konfigurasi kubeadm jika diterapkan. |
| 161 | + |
| 162 | + Pada contoh berikut kami menggunakan Weave Net: |
| 163 | + |
| 164 | + ```sh |
| 165 | + kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')" |
| 166 | + ``` |
| 167 | + |
| 168 | +3. Tulis perintah berikut dan saksikan Pod komponen-komponen _control plane_ mulai dinyalakan: |
| 169 | + |
| 170 | + ```sh |
| 171 | + kubectl get pod -n kube-system -w |
| 172 | + ``` |
| 173 | + |
| 174 | +### Langkah-langkah selanjutnya untuk Node _control plane_ |
| 175 | + |
| 176 | +{{< note >}} |
| 177 | +Sejak kubeadm versi 1.15 kamu dapat menggabungkan beberapa Node _control plane_ secara bersamaan. |
| 178 | +Pada versi sebelumnya, kamu harus menggabungkan Node _control plane_ baru secara berurutan, setelah |
| 179 | +Node pertama selesai diinisialisasi. |
| 180 | +{{< /note >}} |
| 181 | + |
| 182 | +Untuk setiap Node _control plane_ kamu harus: |
| 183 | + |
| 184 | +1. Mengeksekusi perintah untuk bergabung yang sebelumnya diberikan pada keluaran `kubeadm init` pada Node pertama. |
| 185 | + Perintah tersebut terlihat seperti ini: |
| 186 | + |
| 187 | + ```sh |
| 188 | + sudo kubeadm join 192.168.0.200:6443 --token 9vr73a.a8uxyaju799qwdjv --discovery-token-ca-cert-hash sha256:7c2e69131a36ae2a042a339b33381c6d0d43887e2de83720eff5359e26aec866 --control-plane --certificate-key f8902e114ef118304e561c3ecd4d0b543adc226b7a07f675f56564185ffe0c07 |
| 189 | + ``` |
| 190 | + |
| 191 | + - Opsi `--control-plane` menunjukkan `kubeadm join` untuk membuat _control plane_ baru. |
| 192 | + - Opsi `--certificate-key ...` akan membuat sertifikat _control plane_ diunduh |
| 193 | + dari Secret `kubeadm-certs` pada klaster dan didekripsi menggunakan kunci yang diberikan. |
| 194 | + |
| 195 | +## Node etcd eksternal |
| 196 | + |
| 197 | +Membangun sebuah klaster dengan Node etcd eksternal memiliki prosedur yang mirip dengan etcd bertumpuk |
| 198 | +dengan pengecualian yaitu kamu harus setup etcd terlebih dulu, dan kamu harus memberikan informasi etcd |
| 199 | +pada berkas konfigurasi kubeadm. |
| 200 | + |
| 201 | +### Memasang klaster etcd |
| 202 | + |
| 203 | +1. Ikuti [petunjuk berikut](/docs/setup/production-environment/tools/kubeadm/setup-ha-etcd-with-kubeadm/) untuk membangun klaster etcd. |
| 204 | + |
| 205 | +2. Lakukan pengaturan SSH seperti yang dijelaskan [di sini](#distribusi-sertifikat-manual). |
| 206 | + |
| 207 | +3. Salin berkas-berkas berikut dari Node etcd manapun pada klaster ke Node _control plane_ pertama: |
| 208 | + |
| 209 | + ```sh |
| 210 | + export CONTROL_PLANE="[email protected]" |
| 211 | + scp /etc/kubernetes/pki/etcd/ca.crt "${CONTROL_PLANE}": |
| 212 | + scp /etc/kubernetes/pki/apiserver-etcd-client.crt "${CONTROL_PLANE}": |
| 213 | + scp /etc/kubernetes/pki/apiserver-etcd-client.key "${CONTROL_PLANE}": |
| 214 | + ``` |
| 215 | + |
| 216 | + - Ganti nilai `CONTROL_PLANE` dengan `user@host` dari mesin _control plane_ pertama. |
| 217 | + |
| 218 | +### Mengatur Node _control plane_ pertama |
| 219 | + |
| 220 | +1. Buat sebuah berkas bernama `kubeadm-config.yaml` dengan konten sebagai berikut: |
| 221 | + |
| 222 | + apiVersion: kubeadm.k8s.io/v1beta2 |
| 223 | + kind: ClusterConfiguration |
| 224 | + kubernetesVersion: stable |
| 225 | + controlPlaneEndpoint: "LOAD_BALANCER_DNS:LOAD_BALANCER_PORT" |
| 226 | + etcd: |
| 227 | + external: |
| 228 | + endpoints: |
| 229 | + - https://ETCD_0_IP:2379 |
| 230 | + - https://ETCD_1_IP:2379 |
| 231 | + - https://ETCD_2_IP:2379 |
| 232 | + caFile: /etc/kubernetes/pki/etcd/ca.crt |
| 233 | + certFile: /etc/kubernetes/pki/apiserver-etcd-client.crt |
| 234 | + keyFile: /etc/kubernetes/pki/apiserver-etcd-client.key |
| 235 | + |
| 236 | + {{< note >}} |
| 237 | + Perbedaan antara etcd bertumpuk dan etcd eksternal yaitu etcd eksternal membutuhkan |
| 238 | + sebuah berkas konfigurasi dengan _endpoint_ etcd di bawah objek `external`untuk `etcd`. |
| 239 | + Pada kasus ini topologi etcd bertumpuk dikelola secara otomatis. |
| 240 | + {{< /note >}} |
| 241 | + |
| 242 | + - Ganti variabel-variabel berikut pada templat konfigurasi dengan nilai yang sesuai untuk klastermu: |
| 243 | + |
| 244 | + - `LOAD_BALANCER_DNS` |
| 245 | + - `LOAD_BALANCER_PORT` |
| 246 | + - `ETCD_0_IP` |
| 247 | + - `ETCD_1_IP` |
| 248 | + - `ETCD_2_IP` |
| 249 | + |
| 250 | +Langkah-langkah berikut sama dengan pengaturan pada etcd bertumpuk: |
| 251 | + |
| 252 | +1. Jalankan `sudo kubeadm init --config kubeadm-config.yaml --upload-certs` pada Node ini. |
| 253 | + |
| 254 | +2. Tulis perintah untuk bergabung yang didapat dari keluaran ke dalam sebuah berkas teks untuk digunakan nanti. |
| 255 | + |
| 256 | +3. Pasang _plugin_ CNI pilihanmu. Contoh berikut ini untuk Weave Net: |
| 257 | + |
| 258 | + ```sh |
| 259 | + kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')" |
| 260 | + ``` |
| 261 | + |
| 262 | +### Langkah selanjutnya untuk Node _control plane_ lainnya |
| 263 | + |
| 264 | +Langkah-langkah selanjutnya sama untuk pengaturan etcd bertumpuk: |
| 265 | + |
| 266 | +- Pastikan Node _control plane_ pertama sudah diinisialisasi dengan sempurna. |
| 267 | +- Gabungkan setiap Node _control plane_ dengan perintah untuk bergabung yang kamu simpan dalam berkas teks. Direkomendasikan untuk |
| 268 | +menggabungkan Node _control plane_ satu persatu. |
| 269 | +- Jangan lupakan bahwa kunci dekripsi dari `--certificate-key` akan kadaluarsa setelah dua jam, pada pengaturan semula. |
| 270 | + |
| 271 | +## Tugas-tugas umum setelah menyiapkan _control plane_ |
| 272 | + |
| 273 | +### Menginstal _worker_ |
| 274 | + |
| 275 | +Node _worker_ bisa digabungkan ke klaster menggunakan perintah yang kamu simpan sebelumnya |
| 276 | +dari keluaran perintah `kubeadm init`: |
| 277 | + |
| 278 | +```sh |
| 279 | +sudo kubeadm join 192.168.0.200:6443 --token 9vr73a.a8uxyaju799qwdjv --discovery-token-ca-cert-hash sha256:7c2e69131a36ae2a042a339b33381c6d0d43887e2de83720eff5359e26aec866 |
| 280 | +``` |
| 281 | + |
| 282 | +## Distribusi sertifikat manual |
| 283 | + |
| 284 | +Jika kamu memilih untuk tidak menggunakan `kubeadm init` dengan opsi `--upload-certs` berarti kamu harus |
| 285 | +menyalin sertifikat dari Node _control plane_ utama secara manual ke |
| 286 | +Node _control plane_ yang akan bergabung. |
| 287 | + |
| 288 | +Ada beberapa cara untuk melakukan hal ini. Pada contoh berikut ini kami menggunakan `ssh` dan `scp`: |
| 289 | + |
| 290 | +SSH dibutuhkan jika kamu ingin mengendalikan seluruh Node dari satu mesin. |
| 291 | + |
| 292 | +1. Nyalakan ssh-agent pada perangkat utamamu yang memiliki akses ke seluruh Node pada |
| 293 | + sistem: |
| 294 | + |
| 295 | + ``` |
| 296 | + eval $(ssh-agent) |
| 297 | + ``` |
| 298 | + |
| 299 | +2. Tambahkan identitas SSH milikmu ke dalam sesi: |
| 300 | + |
| 301 | + ``` |
| 302 | + ssh-add ~/.ssh/path_to_private_key |
| 303 | + ``` |
| 304 | + |
| 305 | +3. Lakukan SSH secara bergantian ke setiap Node untuk memastikan koneksi bekerja dengan baik. |
| 306 | + |
| 307 | + - Ketika kamu melakukan SSH ke Node, pastikan untuk menambahkan opsi `-A`: |
| 308 | + |
| 309 | + ``` |
| 310 | + ssh -A 10.0.0.7 |
| 311 | + ``` |
| 312 | + |
| 313 | + - Jika kamu menggunakan sudo pada Node, pastikan kamu menyimpan _environment_ yang ada sehingga penerusan SSH |
| 314 | + dapat bekerja dengan baik: |
| 315 | + |
| 316 | + ``` |
| 317 | + sudo -E -s |
| 318 | + ``` |
| 319 | + |
| 320 | +4. Setelah mengatur SSH pada seluruh Node kamu harus menjalankan skrip berikut pada Node _control plane_ pertama setelah |
| 321 | + menjalankan `kubeadm init`. Skrip ini akan menyalin sertifikat dari Node _control plane_ pertama ke Node |
| 322 | + _control plane_ lainnya: |
| 323 | + |
| 324 | + Pada contoh berikut, ganti `CONTROL_PLANE_IPS` dengan alamat IP dari |
| 325 | + Node _control plane_ lainnya. |
| 326 | + ```sh |
| 327 | + USER=ubuntu # dapat disesuaikan |
| 328 | + CONTROL_PLANE_IPS="10.0.0.7 10.0.0.8" |
| 329 | + for host in ${CONTROL_PLANE_IPS}; do |
| 330 | + scp /etc/kubernetes/pki/ca.crt "${USER}"@$host: |
| 331 | + scp /etc/kubernetes/pki/ca.key "${USER}"@$host: |
| 332 | + scp /etc/kubernetes/pki/sa.key "${USER}"@$host: |
| 333 | + scp /etc/kubernetes/pki/sa.pub "${USER}"@$host: |
| 334 | + scp /etc/kubernetes/pki/front-proxy-ca.crt "${USER}"@$host: |
| 335 | + scp /etc/kubernetes/pki/front-proxy-ca.key "${USER}"@$host: |
| 336 | + scp /etc/kubernetes/pki/etcd/ca.crt "${USER}"@$host:etcd-ca.crt |
| 337 | + # Kutip baris berikut jika kamu menggunakan etcd eksternal |
| 338 | + scp /etc/kubernetes/pki/etcd/ca.key "${USER}"@$host:etcd-ca.key |
| 339 | + done |
| 340 | + ``` |
| 341 | + |
| 342 | + {{< caution >}} |
| 343 | + Salinlah hanya sertifikat yang berada pada daftar di atas saja. Perkakas kubeadm akan mengambil alih pembuatan sertifikat lainnya |
| 344 | + dengan SANs yang dibutuhkan untuk Node _control plane_ yang akan bergabung. Jika kamu menyalin seluruh sertifikat tanpa sengaja, |
| 345 | + pembuatan Node tambahan dapat gagal akibat tidak adanya SANs yang dibutuhkan. |
| 346 | + {{< /caution >}} |
| 347 | + |
| 348 | +5. Lalu, pada setiap Node _control plane_ yang bergabung kamu harus menjalankan skrip berikut sebelum menjalankan `kubeadm join`. |
| 349 | + Skrip ini akan memindahkan sertifikat yang telah disalin sebelumnya dari direktori _home_ ke `/etc/kubernetes/pki`: |
| 350 | + |
| 351 | + ```sh |
| 352 | + USER=ubuntu # dapat disesuaikan |
| 353 | + mkdir -p /etc/kubernetes/pki/etcd |
| 354 | + mv /home/${USER}/ca.crt /etc/kubernetes/pki/ |
| 355 | + mv /home/${USER}/ca.key /etc/kubernetes/pki/ |
| 356 | + mv /home/${USER}/sa.pub /etc/kubernetes/pki/ |
| 357 | + mv /home/${USER}/sa.key /etc/kubernetes/pki/ |
| 358 | + mv /home/${USER}/front-proxy-ca.crt /etc/kubernetes/pki/ |
| 359 | + mv /home/${USER}/front-proxy-ca.key /etc/kubernetes/pki/ |
| 360 | + mv /home/${USER}/etcd-ca.crt /etc/kubernetes/pki/etcd/ca.crt |
| 361 | + # Kutip baris berikut jika kamu menggunakan etcd eksternal |
| 362 | + mv /home/${USER}/etcd-ca.key /etc/kubernetes/pki/etcd/ca.key |
| 363 | + ``` |
| 364 | + |
0 commit comments