2017-06-13 7 views
0

Nous utilisons OpenShift Origin 1.4 (OSE 3.4) et le certificat CA pour etcd expire pendant le week-end. Le cluster semble toujours fonctionner. Cependant, je suppose que c'est une bombe à retardement. Ce qui m'amène à ma question. Est-ce que quelqu'un sait d'un moyen sûr de mettre à jour les certificats?comment remplacer etcd expiré CA cert dans le cluster Openshift Origin

J'ai vu le lien ci-dessous, mais il semble que ce soit pour des certificats valides qui vont expirer. J'ai le sentiment qu'il échouera dès que tout service est redémarré depuis l'expiration du CERT.

https://docs.openshift.org/latest/install_config/redeploying_certificates.html

Répondre

2

J'ai résolu ce problème hier matin. Voici une description complète de la situation et ce que j'ai fait pour la résoudre au cas où quelqu'un avec le même problème voit cela.

Nous utilisons un cluster OpenShift origin 1.4 installé à l'origine en version 1.1 et qui a été mis à jour à travers toutes les versions au cours de l'année écoulée. Samedi dernier, nos certificats d'autorité de certification, serveurs et homologues pour etcd ont expiré. Cela a provoqué un certain nombre d'erreurs dans nos journaux de serveur, mais le cluster etcd et openshift a continué à fonctionner. Cependant, lorsque j'ai provoqué la même situation dans notre environnement de développement et redémarré les services, les nœuds etcd ont refusé de se connecter les uns aux autres et le cluster openshift ne démarrait pas.

Si vous êtes dans la même situation, ne redémarrez pas etcd ou vos services maîtres sauf si vous avez un plan de jeu pour résoudre le problème et que vous êtes prêt à le faire. Les docs OpenShift pour le redéploiement des certificats indiquent que l'utilisation du playbook redeploy-certificates.yaml ne régénère aucun certificat d'autorité de certification. J'ai testé cela dans notre environnement de développement et confirmé qu'il ne régénère pas le certificat de l'AC etc. Le redéploiement-etcd-certificates.yaml playbook non plus. Ce qui signifie que vous devez exécuter le playbook redeploy-openshift-ca.yml puis le playbook redeploy-certificates.yml pour résoudre le problème. À la fin, vous auriez tous les nouveaux certificats pour tout dans le cluster. J'étais à peu près sûr que cela prendrait beaucoup de temps et causerait potentiellement une panne quand redeploy-openshift-ca essaierait de redémarrer etcd et verrait des certificats de serveur et d'homologues expirés.

Pour résoudre le problème, j'ai trouvé la commande utilisée dans le livre de jeu redeploy-openshift-ca.yaml qui génère le certificat de CA etcd et l'a exécuté manuellement. Après cela, j'ai exécuté le playbook redeploy-etcd-certificates.yaml.

cd /etc/etcd/ca/ 
export SAN=etcd-signer 
openssl req -config openssl.cnf -newkey rsa:4096 -keyout ca.key \ 
    -new -out ca.crt -x509 -extensions etcd_v3_ca_self -batch \ 
    -nodes -days 1825 -subj /[email protected]`date +%s` 
ansible-playbook -i hosts_file -vv \ 
    /usr/share/ansible/openshift-ansible/playbooks/byo/openshift-cluster/redeploy-etcd-certificates.yml 

Le Redéployer-ETCD certificats Playbook a échoué à essayer de redémarrer le premier noeud ETCD parce que les deux autres étaient encore en cours d'exécution des noeuds avec les certificats expirés. Pour résoudre ce problème, j'ai redémarré manuellement les services pour les trois nœuds etcd et tout est arrivé correctement. J'ai alors réexécuté le playbook redeploy-etcd-certificates pour faire bonne mesure. Il a terminé correctement la deuxième fois et notre environnement est heureux à nouveau.

@aleks merci pour l'aide.

0

Vous pouvez essayer d'obtenir un rapport pour les certs whicl expirera

https://docs.openshift.org/latest/install_config/redeploying_certificates.html#install-config-cert-expiry

J'ai utilisé cette PlayBook à plusieurs reprises et il gère très bien les certs.

https://docs.openshift.org/latest/install_config/redeploying_certificates.html#redeploying-all-certificates-current-ca

Yo peut créer une sauvegarde pour votre environnement avant d'exécuter ce playbook pour être en mesure de revenir à l'état actuel, dans le cas où quelque chose va mal.

+0

Avez-vous déjà essayé d'exécuter les playbooks sur un cluster avec un certificat déjà expiré? Je suis préoccupé par le fait que le fichier etcd ne reviendra pas lors du redémarrage tournant lorsqu'il verra un certificat expiré. – drew

+0

Oui, c'était le premier cas d'utilisation pour moi. Le cluster n'a pas pu parler avec etcd car le certificat a expiré – Aleksandar

+0

Avez-vous exécuté d'abord redploy-openshift-ca.yml, puis redeploy-certificates.yml? – drew