Dalam beberapa skenario, Anda mungkin perlu mengonfigurasi hosts untuk pod berbasis Elastic Container Instance. Sebagai contoh, ketika menarik image dari repositori image yang dikelola sendiri, Anda harus menentukan alamat IP sebenarnya dari repositori tersebut menggunakan file hosts. Topik ini menjelaskan cara mengonfigurasi hosts untuk pod berbasis Elastic Container Instance dengan memodifikasi file /etc/hosts.
Deskripsi konfigurasi
Anda dapat menggunakan k8s.aliyun.com/eci-custom-hosts anotasi untuk mengonfigurasi hosts untuk sebuah pod. Anda dapat menentukan beberapa pemetaan antara alamat IP dan nama domain. Format dari sebuah pemetaan adalah {\"host\":\"example.com\",\"ip\":\"100.100.XX.XX\"}.
Anotasi harus ditambahkan ke metadata dalam file konfigurasi pod. Sebagai contoh, saat membuat Deployment, tambahkan anotasi di bagian spec.template.metadata.
Untuk menggunakan fitur Elastic Container Instance, Anda hanya dapat menambahkan anotasi saat membuat pod berbasis Elastic Container Instance. Jika anotasi ditambahkan atau dimodifikasi saat memperbarui pod, anotasi tersebut tidak akan berlaku.
Contoh konfigurasi
Sebagai contoh, Anda harus menentukan alamat IP sebenarnya dari repositori image menggunakan file hosts ketika menarik image dari repositori image yang dikelola sendiri. File YAML untuk hosts:
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 1
selector:
matchLabels:
app: test
template:
metadata:
name: test
labels:
app: test
alibabacloud.com/eci: "true"
annotations:
k8s.aliyun.com/eci-custom-hosts: "[{\"host\":\"example.com\",\"ip\":\"100.100.XX.XX\"},{\"host\":\"aliyundoc.com\",\"ip\":\"100.100.XX.XX\"}]"
spec:
containers:
- name: nginx
image: example.com/test/nginx:latest
ports:
- containerPort: 80
- name: busybox
image: aliyundoc.com/test/busybox:1.30
command: ["sleep"]
args: ["999999"]