SELinux
RKE2 est compatible avec les systèmes où SELinux est activé, ce qui constitue la configuration par défaut sur les systèmes CentOS/RHEL à partir de la version 7. La stratégie qui prend en charge cela est une spécialisation de la stratégie conteneur-selinux pour containerd. Elle prend en compte les emplacements non standards où containerd est installé et place l’état persistant et éphémère.
|
Dans certaines circonstances, un redémarrage du nœud peut être nécessaire après l’installation du paquet rke2-selinux et avant de démarrer le service rke2. Si vous rencontrez des refus dans votre journal d’audit SELinux malgré l’installation des paquets rke2-selinux et conteneur-selinux, veuillez redémarrer le nœud. |
Étiquettes de contexte personnalisées
RKE2 exécute des services de plan de contrôle en tant que pods statiques qui nécessitent un accès à plusieurs container_var_lib_t emplacements. Le etcd conteneur doit pouvoir accéder en lecture et en écriture à /var/lib/rancher/rke2/server/db et lire, avec kube-apiserver, kube-controller-manager et kube-scheduler, depuis /var/lib/rancher/rke2/server/tls. Pour que cela fonctionne sans attribuer des privilèges excessifs, par exemple, spc_t, la stratégie SELinux de RKE2 introduit les étiquettes de contexte rke2_service_db_t et rke2_service_t pour, respectivement, un accès en lecture et en écriture et un accès en lecture seule. Ces étiquettes ne seront appliquées qu’aux pods statiques du plan de contrôle RKE2.
Configuration
Le support de RKE2 pour SELinux se résume à un seul élément de configuration, le --selinux drapeau booléen. Ceci constitue un dispositif d’intercommunication (pass-through) vers le enable_selinux booléen dans la section cri du fichier containerd/cri toml. Si RKE2 a été installé via tarball, alors SELinux ne sera pas activé sans configuration supplémentaire. La méthode recommandée pour configurer cela est via une entrée dans le config.yaml de RKE2, par exemple :
# /etc/rancher/rke2/config.yaml is the default location
selinux: true
Ceci équivaut à passer le --selinux drapeau à rke2 server ou rke2 agent en ligne de commande ou à définir la variable d’environnement RKE2_SELINUX=true.
Support Calico
Si vous choisissez d’utiliser Calico comme votre CNI avec SELinux activé, vous devrez également installer des stratégies spécifiques.
Le paquet à installer est fourni par Tigera ici.
Voir la documentation de Calico pour plus de détails.