Menambahkan entri pada berkas /etc/hosts Pod akan melakukan override resolusi hostname pada level Pod ketika DNS dan opsi lainnya tidak tersedia. Pada versi 1.7, pengguna dapat menambahkan entri yang diinginkan beserta field HostAliases pada PodSpec.
Modifikasi yang dilakukan tanpa menggunakan HostAliases tidaklah disarankan karena berkas ini diatur oleh Kubelet dan dapat di-override ketika Pod dibuat/di-restart.
HostsHosts?HostsMisalnya saja kamu mempunyai sebuah Pod Nginx yang memiliki sebuah IP Pod:
kubectl run nginx --image nginx --generator=run-pod/v1pod/nginx createdPerhatikan IP Pod tersebut:
kubectl get pods --output=wideNAME READY STATUS RESTARTS AGE IP NODE
nginx 1/1 Running 0 13s 10.200.0.4 worker0File hosts yang ada akan tampak sebagai berikut:
kubectl exec nginx -- cat /etc/hosts# Berkas hosts yang dikelola Kubernetes
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
fe00::0 ip6-mcastprefix
fe00::1 ip6-allnodes
fe00::2 ip6-allrouters
10.200.0.4 nginxSecara default, berkas hosts hanya berisikan boilerplate alamat IP IPv4 and IPv6 seperti
localhost dan hostname dari Pod itu sendiri.
Selain boilerplate default, kita dapat menambahkan entri pada berkas
hosts untuk melakukan resolusi foo.local, bar.local pada 127.0.0.1 dan foo.remote,
bar.remote pada 10.1.2.3, kita dapat melakukannya dengan cara menambahkan
HostAliases pada Pod di bawah field .spec.hostAliases:
service/networking/hostaliases-pod.yaml
|
|---|
|
Pod ini kemudian dapat dihidupkan dengan perintah berikut:
kubectl apply -f hostaliases-pod.yamlpod/hostaliases-pod createdPerhatikan IP dan status Pod tersebut:
kubectl get pod --output=wideNAME READY STATUS RESTARTS AGE IP NODE
hostaliases-pod 0/1 Completed 0 6s 10.200.0.5 worker0File hosts yang ada akan tampak sebagai berikut:
kubectl logs hostaliases-pod# Berkas hosts yang dikelola Kubernetes
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
fe00::0 ip6-mcastprefix
fe00::1 ip6-allnodes
fe00::2 ip6-allrouters
10.200.0.5 hostaliases-pod
# Entries added by HostAliases.
127.0.0.1 foo.local bar.local
10.1.2.3 foo.remote bar.remoteDengan tambahan entri yang telah dispesifikasikan sebelumnya.
Hosts?Kubelet melakukan proses manajemen
berkas hosts untuk setiap container yang ada pada Pod untuk mencegah Docker melakukan
modifikasi pada berkas tersebut
setelah kontainer dihidupkan.
Karena sifat dari berkas tersebut yang secara otomatis di-manage,
semua hal yang didefinisikan oleh pengguna akan ditimpa (overwrite) ketika berkas
hosts di-mount kembali oleh Kubelet ketika ada kontainer yang di-restart
atau Pod di-schedule ulang. Dengan demikian tidak dianjurkan untuk
memodifikasi berkas tersebut secara langsung.
Apakah halaman ini berguna?
Thanks for the feedback. If you have a specific, answerable question about how to use Kubernetes, ask it on Stack Overflow. Open an issue in the GitHub repo if you want to report a problem or suggest an improvement.