‫Jika Anda tidak datang langsung dari kuliah terakhir
‫kali ini, kembali ke kuliah sebelumnya untuk memastikan bahwa Anda menjalankan
‫Penempatan yang tepat sehingga Anda akan memiliki log yang akan
‫kita lihat di sini sebentar lagi.
‫Setelah kami memiliki Apache Deployment yang berjalan di latar
‫belakang, dan ia memiliki dua pod karena kami menskalakan
‫replika menjadi dua. Kita harus bisa membuat
‫kubectl mendapatkan polong dan melihat hasilnya.
‫Tentu saja, nama pod Anda akan sedikit berbeda
‫dari saya karena mereka akan memiliki angka dan karakter
‫acak pada akhirnya. Setiap kali saya
‫mengetik, sadari saja dua blok terakhir Anda akan
‫mengetik sesuatu yang berbeda berdasarkan apa yang ditampilkan Penempatan Anda.
‫Ada beberapa perintah, seperti halnya dengan Swarm
‫dan dengan Docker sendiri. Dalam hal ini, mereka adalah
‫perintah yang berbeda untuk memahami apa yang terjadi dalam wadah
‫dan apa yang dilakukan orkestra dengan wadah.
‫Yang pertama adalah log.
‫Yang kedua adalah menggambarkan.
‫Kami secara teknis tidak memiliki perintah inspeksi di Kubernetes, tetapi
‫menjelaskan melakukan lebih dari itu.
‫Pertama, mari kita coba perintah log.
‫Output Anda mungkin sedikit berbeda dari milik saya.
‫Anda akan melihat bahwa baris pertama setelah kita mengetik
‫penyebaran log / my-apache.
‫Dikatakan menemukan dua pod dan menggunakan nama pod,
‫ia memberi nama pod spesifik di sana.
‫Itu karena perintah log default tidak akan
‫menarik semua pod yang berbeda dan
‫menggabungkannya seperti yang Anda lakukan dengan
‫perintah Docker atau Swarm. Hanya secara default akan menarik salah satunya.
‫Klik perintah log lain yang biasa Anda
‫gunakan dalam kursus ini, ada banyak opsi termasuk
‫--follow, --tail.
‫Itu adalah hal yang umum untuk perintah logging di sistem
‫Linux apa pun.
‫Jika kita melakukan perintah yang sama dengan - cukup ikuti,
‫maka akan menunggu sesuatu yang baru muncul di log
‫pod itu. Kemudian
‫--tail, 1 berarti mengembalikan baris terakhir saja.
‫Dengan begitu Anda tidak akan mendapatkan banyak sekali log.
‫Anda dapat mengontrol C dari itu.
‫Bagaimana jika Anda ingin melihat log digabungkan untuk
‫beberapa pod?
‫Anda tentu bisa melakukannya. Itu bukan perintah
‫log default. Dalam hal ini, kita
‫harus menggunakan sesuatu yang disebut Selector di Kubernetes, yang merupakan teknik
‫untuk mengambil beberapa pod berdasarkan label
‫yang mereka bagikan.
‫Yang menyenangkan di sini adalah
‫ketika Anda menggunakan perintah run kubectl, itu secara
‫otomatis menambahkan label nama Deployment ke semua pod ini.
‫Jadi, kita dapat menggunakan nama Penerapan yang sama dengan Apache saya
‫untuk memilih semua pod dengan label itu.
‫Perhatikan bahwa ini hanyalah pencocokan sederhana
‫label di sini. Jadi, jika Anda memiliki
‫Penyebaran atau pod lain yang memiliki label ini, mereka juga
‫akan terjebak dalam hal ini. Jadi, Anda harus berhati-hati dengan pelabelan
‫dan penamaan Anda.
‫Kami menggunakan -l di
‫sini untuk menentukan label, dan kami menentukan label
‫yang menjalankan perintah yang dijalankan, yang
‫merupakan Apache saya.
‫Sama seperti Swarm dan Docker sendiri, perintah log
‫ini bisa sangat berguna untuk pemecahan masalah cepat tetapi
‫bukan pengganti sistem log lengkap.
‫Di Kubernetes, secara default, ia hanya dapat menarik
‫hingga lima polong pada saat
‫ia menggunakan tipe pemilih untuk menarik log.
‫Anda selalu dapat meningkatkan itu, tetapi kenyataannya ini
‫membebani sistem untuk menarik dari semua node berbeda
‫file log ini.
‫Dalam produksi, Anda akan menginginkan sistem penebangan pihak ketiga yang akan mengumpulkan
‫semua log ini dan menyimpannya dari waktu ke waktu
‫untuk pengambilan yang lebih cepat.
‫Itu berlaku untuk sistem orkestrasi wadah apa pun,
‫apakah itu Docker, Swarm, atau Kubernetes.
‫Perintah selanjutnya di sini adalah untuk menggambarkan perintah.
‫Perintah uraikan, dalam hal ini, adalah tempat kami
‫ingin menentukan pod itu sendiri.
‫Kami ingin mendapatkan pod yang sangat spesifik, tetapi kemudian kami harus
‫mengetahui nama pod tersebut terlebih dahulu.
‫Jadi, mari kita dapatkan podnya dulu.
‫Kemudian kita bisa menyalin dan menempelkan salah satu nama itu ke
‫dalam perintah uraikan.
‫Ketik pod terlebih dahulu.
‫Saya akan mendapatkan kembali pod itu.
‫Saya tidak harus menentukan satu pod itu.
‫Saya bisa mengatakan polong dan akan menampilkan semua polong, yang bisa
‫sedikit berbahaya jika Anda memiliki banyak polong.
‫Anda tentu dapat menggambarkan sumber daya lain dan mendapatkan
‫kembali berbagai jenis hasil berdasarkan objek.
‫Yang ingin saya tekankan di sini adalah
‫bahwa ini akan mirip dengan perintah inspect di Swarm,
‫atau di Docker sendiri. Tapi, itu memberikan tampilan yang sedikit lebih bagus
‫di layar daripada di JSON.
‫Saat Anda menggulir ke bawah hasil, Anda akan melihat
‫bahwa itu bukan hanya deskripsi tentang objek yang berbeda,
‫tetapi juga menarik hal-hal seperti
‫peristiwa di bagian bawah, yang merupakan cara terbaik untuk mendapatkan
‫status cepat pada realitas saat ini dari objek itu.
‫Jadi, jika Anda mengalami masalah, mungkin dengan pod menarik gambar,
‫Anda akan melihat peristiwa itu di sini di
‫mana ia mengatakan tidak dapat menarik gambar.
‫Itu yang umum ketika Anda secara tidak sengaja salah ketik
‫nama gambar atau sesuatu seperti itu.
‫Ini bisa sangat berguna untuk teknik pemecahan masalah cepat
‫tanpa harus menghidupkan beberapa acara atau
‫men-debug log.
‫Baiklah. Untuk bagian terakhir
‫ini, saya akan menunjukkan kepada Anda bagaimana Kubernetes memiliki daya tahan
‫yang mirip dengan Swarm di mana jika Anda menghapus salah satu level
‫abstraksi yang lebih rendah, dalam hal ini jika Anda menghapus
‫pod, abstraksi level yang lebih tinggi, Deployment dan
‫ReplicaSet, akan memastikan bahwa pod dibuat ulang.
‫Itu mirip dengan cara wadah atau tugas di Swarm,
‫jika Anda menghapusnya, akan dibuat ulang oleh layanan.
‫Kami akan melakukan ini di dua jendela yang berbeda.
‫Di jendela pertama, kita akan menggunakan get dengan -w.
‫Itu akan memberi kita pengalaman serupa
‫dengan perintah arloji. Jika Anda pernah melihat saya
‫menggunakan perintah arloji dalam kursus ini untuk menonton perintah Linux,
‫yang pada dasarnya berarti menjalankan hal itu di latar
‫belakang dan Anda dapat melakukannya di Linux.
‫Tapi, perintah menonton itu tidak selalu tersedia
‫di semua OS. Di sini, kita
‫bisa membuat kubectl mendapatkan pod tetapi menambahkan -w
‫yang akan membiarkannya duduk di
‫sana dan menyegarkan setiap beberapa detik.
‫Sekarang, kita bisa pergi ke
‫terminal lain. Kami akan menghapus salah satu dari pod itu.
‫Pertama. kita perlu menyalin nama
‫dan menggunakan
‫pod kubectl / nama pod.
‫Anda akan melihat bahwa itu menghapusnya.
‫Kami kemudian akan mendapatkan running log ini di
‫atas hal-hal yang berubah.
‫Saya juga suka ini sedikit lebih baik daripada
‫perintah arloji karena perintah arloji menyegarkan layar, di mana ini menunjukkan iterasi
‫perubahan yang sedang berlangsung,
‫yang cukup rapi. Di bagian
‫bawah, jika kami membuat kubectl lain mendapatkan polong, Anda akan melihat
‫bahwa kami kembali ke dua.
‫Sekali lagi, ini adalah semacam aspek penyembuhan diri
‫dari orkestra. Itulah salah satu tujuan utama memilikinya.
‫Terakhir, saya ingin menunjukkan sesuatu di sini di
‫mana Anda mungkin telah dilindungi di masa lalu dari melakukan hal-hal
‫merusak tertentu di Docker a Swarm, di mana jika Anda mencoba mengubah sesuatu
‫atau menghapus sesuatu yang tidak seharusnya, itu
‫mungkin memperingatkan Anda sebelum waktu.
‫Kubernetes cenderung jatuh di sisi lain di mana ia sedikit
‫kurang sepaham tentang bagaimana Anda menggunakannya.
‫Yang berarti bahwa Anda kadang-kadang dapat
‫melakukan hal-hal yang seharusnya tidak Anda lakukan, seperti
‫contoh saya sebelumnya dalam memodifikasi suatu ReplicaSet alih-alih memodifikasi
‫Penempatan di atasnya.
‫Hal yang sama berlaku untuk mengganti pod ketika Anda benar-benar tidak boleh
‫melakukannya. Anda harus mengubah objek di atasnya.
‫Itu hanya menekankan bahwa Anda perlu memahami secara spesifik apa yang
‫Anda lakukan agar Anda tidak secara
‫tidak sengaja menghapus, mengubah, atau memodifikasi hal yang salah dengan urutan
‫yang salah.
‫Ingatlah untuk melakukan penghapusan kubectl penyebaran my-apache
‫untuk membersihkan dari kuliah ini.