Utilisation des alias d'hôte Kubernetes

description de la scène

/etc/hostsCat << EOF... est souvent utilisé lors de l'ajout d'entrées à , mais cette opération nécessite les privilèges root . Lorsque le conteneur k8s est démarré en tant qu'utilisateur non root et que la commande cat est exécutée, un message d'erreur sera signalé Permission denied. À l'heure actuelle, vous pouvez utiliser les hostAliases de k8s pour implémenter la fonction d'ajout d'entrées aux hôtes sous un utilisateur non root.


Méthode pour réaliser

Utilisez la démo en utilisant le tutoriel officiel . Le conteneur est démarré avec user_b:2381 et deux enregistrements sont ajoutés aux hôtes.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: user-b
  labels:
    app: user-b
spec:
  selector:
    matchLabels:
      app: user-b
  template:
    metadata:
      labels:
        app: user-b
    spec:
      hostAliases:
        - ip: "127.0.0.1"
          hostnames:
            - "foo.local"
            - "bar.local"
        - ip: "10.1.2.3"
          hostnames:
            - "foo.remote"
            - "bar.remote"
      securityContext:
        runAsUser: 2381
      nodeSelector:
        kubernetes.io/hostname: sh02
      containers:
        - image: yang:01
          name: user-b
          command: ["sleep"]
          args: ["infinity"]

Voir les résultats

(base) [deployer@sh01 yang]$ kubectl exec user-b-7df9d9957f-wzm4v -- whoami
user_b
(base) [deployer@sh01 yang]$ kubectl exec user-b-7df9d9957f-wzm4v -- cat /etc/hosts
# Kubernetes-managed hosts file.
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.244.1.15     user-b-7df9d9957f-wzm4v

# Entries added by HostAliases.
127.0.0.1       foo.local       bar.local
10.1.2.3        foo.remote      bar.remote

おすすめ

転載: blog.csdn.net/yy_diego/article/details/126471245