{"id":1163,"date":"2021-10-26T09:46:37","date_gmt":"2021-10-26T07:46:37","guid":{"rendered":"https:\/\/loeilduse.fr\/?p=1163"},"modified":"2022-02-19T18:39:29","modified_gmt":"2022-02-19T17:39:29","slug":"ajouter-un-certificat-self-signed-dans-un-cluster-tkg","status":"publish","type":"post","link":"https:\/\/loeilduse.fr\/?p=1163&lang=fr","title":{"rendered":"Ajouter un certificat self signed dans un cluster TKG"},"content":{"rendered":"<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">Si vous souhaitez d\u00e9ployer des pods sur un cluster Kubernetes ne connaissant pas le certificat de la registry contenant les images (c&#8217;est le cas en g\u00e9n\u00e9ral pour les labs ayant des certificat auto-sign\u00e9 et non connu par une autorit\u00e9), vous risquez de ne pas pouvoir d\u00e9ployer vos images, voyons un exemple en d\u00e9ployant une image Kuard sur ma registry priv\u00e9e Harbor :<\/span><\/p>\n<p><span style=\"color: #ff0000;\"><strong>(Attention, WordPress remplace les deux tirets par un seul \ud83d\ude25 )<\/strong><\/span><\/p>\n<p><span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\"> # kubectl run kuard &#8211;image=harbor.cpod-velocity.az-fkd.cloud-garage.net\/library\/kuard-amd64:blue<br \/>\n<\/span><span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\"># kubectl get pods<br \/>\n<\/span><span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">NAME\u00a0 READY STATUS\u00a0\u00a0 RESTARTS\u00a0 AGE<\/span><br \/>\n<span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">kuard\u00a0\u00a0\u00a0 0\/1\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ImagePullBackOff\u00a0 0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 7s<\/span><\/p>\n<p><span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\"> # kubectl describe pods kuard<br \/>\n<\/span><span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">&#8230;.<br \/>\n<\/span><span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">Type Reason Age From Message <\/span><br \/>\n<span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">&#8212;- &#8212;&#8212; &#8212;- &#8212;- &#8212;&#8212;-<\/span><br \/>\n<span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">Normal Scheduled 33s default-scheduler Successfully assigned default\/kuard to test-md-0-5d6756b7fd-b9kwl<\/span><br \/>\n<span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">Normal Pulling 19s (x2 over 32s) kubelet Pulling image &#8220;harbor.cpod-velocity.az-fkd.cloud-garage.net\/library\/kuard-amd64:blue&#8221;<\/span><br \/>\n<strong><span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">Warning Failed 19s (x2 over 32s) kubelet Failed to pull image &#8220;harbor.cpod-velocity.az-fkd.cloud-garage.net\/library\/kuard-amd64:blue&#8221;: rpc error: code = Unknown desc = failed to pull and unpack image &#8220;harbor.cpod-velocity.az-fkd.cloud-garage.net\/library\/kuard-amd64:blue&#8221;: failed to resolve reference &#8220;harbor.cpod-velocity.az-fkd.cloud-garage.net\/library\/kuard-amd64:blue&#8221;: failed to do request: Head &#8220;https:\/\/harbor.cpod-velocity.az-fkd.cloud-garage.net\/v2\/library\/kuard-amd64\/manifests\/blue&#8221;: x509: certificate signed by unknown authority<\/span><\/strong><br \/>\n<strong><span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">Warning Failed 19s (x2 over 32s) kubelet Error: ErrImagePull<\/span><\/strong><br \/>\n<strong><span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">Normal BackOff 4s (x2 over 31s) kubelet Back-off pulling image &#8220;harbor.cpod-velocity.az-fkd.cloud-garage.net\/library\/kuard-amd64:blue&#8221;<\/span><\/strong><br \/>\n<strong><span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">Warning Failed 4s (x2 over 31s) kubelet Error: ImagePullBackOff<\/span><\/strong><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">Dans cet exemple, j&#8217;ai tent\u00e9 \u00e0 partir de mon cluster Tanzu Kubernetes Grid (TKG) de d\u00e9ployer\u00a0 l&#8217;image Kuard qui se trouve sur ma registry Harbor priv\u00e9 h\u00e9berg\u00e9e sur mon lab. Ce certificat auto sign\u00e9 n&#8217;est pas reconnu par une autorit\u00e9. Pour que cela fonctionne malgr\u00e9 tout, Il faudrait que chaque worker node de mon cluster puisse connaitre ce certificat. Je pourrai le copier sur chacun d&#8217;entres-eux mais le principe de TKG est d&#8217;avoir un cluster dont le cycle de vie puisse \u00e9voluer facilement et de mani\u00e8re automatis\u00e9e, ajouter des worker nodes, en supprimer, les remplacer lors de mise \u00e0 jour,&#8230; . Cela n\u00e9cessiterait \u00e0 chaque ajout de noeud d&#8217;y inclure le certificat.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\"><a href=\"https:\/\/gist.github.com\/jessehu\" target=\"_blank\" rel=\"noopener\">Jesse Hu<\/a> a \u00e9crit une proc\u00e9dure <a href=\"https:\/\/gist.github.com\/jessehu\/b342a0e3cb25144b13ad516538809d3c\">tkg-ytt-overlay-additional-ca-certs \u00b7 GitHub<\/a> que j&#8217;ai test\u00e9 en TKG 1.4. Elle fonctionne tr\u00e8s bien, elle coule de sens pour ceux qui pratiquent Kubernetes tous les jours mais peut para\u00eetre compliqu\u00e9e pour les autres. Je vais tenter de la clarifier. Cela consiste \u00e0 obtenir le certificat, le cod\u00e9 en base64, d&#8217;ex\u00e9cuter les commandes pour faire prendre en compte le certificat par tous les noeuds Kubernetes existant et \u00e0 venir.<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"text-decoration: underline; font-family: trebuchet ms, geneva, sans-serif;\">coder en base64 les certificat et le copier<\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\"># base64 -w0 ca.crt (le r\u00e9sultat a volontairement \u00e9t\u00e9 modifi\u00e9)<br \/>\n<\/span><span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURFekNDQWZ1Z0F3SUJBZ0lRREthWmp6NmF4MitZS3RxS0YrUUNKekFOQmdrcWhraUc5dzBCQVFzRkFEQVUKTVJJd0VBWURWUVFERXdsb1lYSmliM0l0WTJFd0hoY05NakV3T0RJek1UVXdNREEwV2hjTk1qSXdPREl6TVRVdwpNREEwV2pBVU1SSXdFQVlEVlFRREV3bG9ZWEppYjNJdFkyRXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCCkR3QXdnZ0VLQW9JQkFRREl0MEhDUEF0ZWxrSVZhOXZtbjJnQWR4VXNaL3lTd2psNi95SzV0eTZ5OW1PbU5peDgKOHAvVFk2SG9MVHlJNUhtNytUYTJ4RGpvUUpmNllWMURsc3Y3d2E2R2pTUXE0WWxQWG1hUUNvVkp5eno5OVRvUgpDbW80VjhRUnJLbE5WL3NFbStrVXhseGFNZTZOMlA3UjB1MHVCV0Q5NW9Ra3RqWC8rS01uT0ErUlZoWkJ1dEFmCjJXSzhIMmRYeWo4bFV3Vk4rWWJqeW83dkdnNERNZlVHMWtDa0hYYURTMGcvWlhyNU1LRTNDWEo4YUVPZFhMNjMKb3BHTXVMQWp4WUZIdng0SnBMN0lNQ2VZMGFCcjcybUUzcy9SMENCMW1zTU5nYWhXTkhNZjhINktsUy9qUVlnUgpQMjV6WmYyOUZ0VFdnOWhZNVJZQngxalcyeXZERGJsMmFGNXBBZ01CQUFHallUQmZNQTRHQTFVZER3RUIvd1FFCkF3SUNwREFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNESUt3WUJCUVVIQXdJd0R3WURWUjBUQVFIL0JBVXcKQXdFQi96QWRCZ05WSFE0RUZnUVVVbTBvVUtiSXBHbTcxL3JzUlBReUJJbkZYYmt3RFFZSktvWklodmNOQVFFTApCUUFEZ2dFQkFEcVJBamwzWTNqVk5JK1JUbHBYdmwvdUYxbXNZUTNzTnFwVXR6eVNCVlNDWlpDMkRSSnpwYWZGCjhPdXN5QjBMTTNlS3VTd0t4STgrT0o5OTlhZkdOazRWTnpySVhOQURaZ1BxbnRFSWRucXNReGg4eFBuOVY0T2QKQUtsTVJycVI4R3g4ejdRM2EvN01uR0sra1l3VmorZ3BBNkFGUEJxSVJrU3Jscmo5b2dXVzBqWTFzL2tNU21ydgpaVEFZWTJqcFhBaGZrdzcrVDN4OHYwa0NRai9NREo5L3dNTnhxeVNGMEhzNXd6THVvbVJOM0VEME03eUNhWjg0CmJuOFZTN1VUSjBaWnhBRmx3TWxySlRYWmFpQmNOeDRNdm4wNXN4RG5KZktCdFloSkZwbGRwR3hLMDRUSmNXWm0KU0dDemZhc2FIK2M1NklNT0IvRllMdlJlelh4cE5mMD0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"text-decoration: underline; font-family: trebuchet ms, geneva, sans-serif;\">Retrouvez le contexte de votre cluster de management et le nom du cluster de workload sur lequel vous allez copier le certificat :<\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\"># kubectl get-contexts<\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">CURRENT\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 NAME CLUSTER\u00a0 \u00a0 \u00a0 AUTHINFO\u00a0\u00a0\u00a0 \u00a0\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0\u00a0 NAMESPACE<\/span><br \/>\n<span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">&#8230;.<\/span><br \/>\n<span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">my-cluster-admin@my-cluster\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 my-cluster\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 my-cluster-admin<\/span><br \/>\n<span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">* test-admin@test\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <strong>test\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 <\/strong>test-admin<\/span><br \/>\n<span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\"><strong>tkg-mgmt-vsphere-admin@tkg-mgmt-vsphere<\/strong> \u00a0\u00a0\u00a0 tkg-mgmt-vsphere\u00a0 tkg-mgmt-vsphere-admin<\/span><br \/>\n<span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">tool-admin@tool\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 tool\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 tool-admin<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">Editez la configuration du template du contr\u00f4leur et du worker pour ajouter le contenu du certificat et la commande pour la prise en compte de ce certificat. Ainsi \u00e0 chaque ajout de n\u0153ud le certificat sera pris en compte. Le contenu du fichier est \u00e0 ajouter dans la partie <span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">files:<\/span> et la commande dans la partie <span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">preKubeadmCommands: <\/span>comme ci-dessous (J&#8217;ai une configuration \u00e0 base de Photon OS, si vous avez un autre OS il faut utiliser une autre commande. Les copi\u00e9s\/coll\u00e9s ne fonctionnent pas tr\u00e8s bien il est pr\u00e9f\u00e9rable de retaper les mots) :<br \/>\n<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">Pour \u00e9diter le template du control plane : <span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">kubectl edit KubeadmControlPlane test-control-plane &#8211;context tkg-mgmt-vsphere-admin@tkg-mgmt-vsphere<\/span><\/span><\/p>\n<p><em>(La syntaxe pour la partie content doit \u00eatre ainsi : <span style=\"font-family: 'courier new', courier, monospace; font-size: 10pt;\">-content: &lt;certificat cod\u00e9 avec base64&gt;<\/span>)<\/em><\/p>\n<p style=\"text-align: left;\"><span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">&#8230;&#8230;<\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">\u00a0 files:<\/span><br \/>\n<span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">\u00a0 &#8211; content: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURFekNDQWZ1Z0F3SUJBZ0lRREthWmp6NmF4MitZS3RxS0YrUUNKekFOQmdrcWhraUc5dzBCQVFzRkFEQVUKTVJJd0VBWURWUVFERXdsb1lYSmliM0l0WTJFd0hoY05NakV3T0RJek1UVXdNREEwV2hjTk1qSXdPREl6TVRVdwpNREEwV2pBVU1SSXdFQVlEVlFRREV3bG9ZWEppYjNJdFkyRXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCCkR3QXdnZ0VLQW9JQkFRREl0MEhDUEF0ZWxrSVZhOXZtbjJnQWR4VXNaL3lTd2psNi95SzV0eTZ5OW1PbU5peDgKOHAvVFk2SG9MVHlJNUhtNytUYTJ4RGpvUUpmNllWMURsc3Y3d2E2R2pTUXE0WWxQWG1hUUNvVkp5eno5OVRvUgpDbW80VjhRUnJLbE5WL3NFbStrVXhseGFNZTZOMlA3UjB1MHVCV0Q5NW9Ra3RqWC8rS01uT0ErUlZoWkJ1dEFmCjJXSzhIMmRYeWo4bFV3Vk4rWWJqeW83dkdnNERNZlVHMWtDa0hYYURTMGcvWlhyNU1LRTNDWEo4YUVPZFhMNjMKb3BHTXVMQWp4WUZIdng0SnBMN0lNQ2VZMGFCcjcybUUzcy9SMENCMW1zTU5nYWhXTkhNZjhINktsUy9qUVlnUgpQMjV6WmYyOUZ0VFdnOWhZNVJZQngxalcyeXZERGJsMmFGNXBBZ01CQUFHallUQmZNQTRHQTFVZER3RUIvd1FFCkF3SUNwREFkQmdOVkhTVUVGakFVQmdnckJnRUZCUWNESUt3WUJCUVVIQXdJd0R3WURWUjBUQVFIL0JBVXcKQXdFQi96QWRCZ05WSFE0RUZnUVVVbTBvVUtiSXBHbTcxL3JzUlBReUJJbkZYYmt3RFFZSktvWklodmNOQVFFTApCUUFEZ2dFQkFEcVJBamwzWTNqVk5JK1JUbHBYdmwvdUYxbXNZUTNzTnFwVXR6eVNCVlNDWlpDMkRSSnpwYWZGCjhPdXN5QjBMTTNlS3VTd0t4STgrT0o5OTlhZkdOazRWTnpySVhOQURaZ1BxbnRFSWRucXNReGg4eFBuOVY0T2QKQUtsTVJycVI4R3g4ejdRM2EvN01uR0sra1l3VmorZ3BBNkFGUEJxSVJrU3Jscmo5b2dXVzBqWTFzL2tNU21ydgpaVEFZWTJqcFhBaGZrdzcrVDN4OHYwa0NRai9NREo5L3dNTnhxeVNGMEhzNXd6THVvbVJOM0VEME03eUNhWjg0CmJuOFZTN1VUSjBaWnhBRmx3TWxySlRYWmFpQmNOeDRNdm4wNXN4RG5KZktCdFloSkZwbGRwR3hLMDRUSmNXWm0KU0dDemZhc2FIK2M1NklNT0IvRllMdlJlelh4cE5mMD0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=<\/span><br \/>\n<span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">\u00a0\u00a0\u00a0 encoding: base64<br \/>\n<\/span><span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">\u00a0\u00a0\u00a0 owner: root:root<\/span><br \/>\n<span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">\u00a0\u00a0\u00a0 permissions: &#8220;0644&#8221;<\/span><br \/>\n<span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">\u00a0\u00a0\u00a0 path: \/etc\/ssl\/certs\/tkg-custom-ca.pem<\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">&#8230;&#8230;<\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">\u00a0 preKubeadmCommands:<\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">\u00a0 &#8211; <span class=\"pl-s\"><span class=\"pl-pds\">&#8216;<\/span>! which rehash_ca_certificates.sh 2&gt;\/dev\/null || rehash_ca_certificates.sh<span class=\"pl-pds\">&#8216;<\/span><\/span><\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">&#8230;&#8230;&#8230;.<\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">La prise en compte est imm\u00e9diate et un nouveau contr\u00f4leur est d\u00e9ploy\u00e9 pour remplacer l&#8217;ancien. (ou plusieurs en fonction du plan choisi au moment de la cr\u00e9ation). Attendre que le temps que le nouveau controleur se d\u00e9ploie et remplace l&#8217;ancien.<br \/>\n<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">La m\u00eame chose pour le worker : <span style=\"font-family: courier new, courier, monospace;\">kubectl edit KubeadmConfigTemplate test-md-0 &#8211;context tkg-mgmt-vsphere-admin@tkg-mgmt-vsphere<\/span><\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\"><span style=\"font-family: courier new, courier, monospace;\"><br \/>\n<\/span><\/span><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">La prise en compte pour les worker n&#8217;est pas imm\u00e9diate, il faut ex\u00e9cuter la commande suivante :<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\"># kubectl patch machinedeployment test-md-0 &#8211;type merge -p &#8220;{\\&#8221;spec\\&#8221;:{\\&#8221;template\\&#8221;:{\\&#8221;metadata\\&#8221;:{\\&#8221;annotations\\&#8221;:{\\&#8221;date\\&#8221;:\\&#8221;`date +&#8217;%s&#8217;`\\&#8221;}}}}}&#8221; &#8211;context tkg-mgmt-vsphere-admin@tkg-mgmt<br \/>\n<span style=\"font-family: trebuchet ms, geneva, sans-serif; font-size: 12pt;\">Attendre un peu que les workers nodes soient remplac\u00e9s par des nouveaux puis on peut retester de d\u00e9ployer une nouvelle image kuard<\/span> # kubectl get node NAME STATUS ROLES AGE VERSION test-control-plane-gsmqz Ready control-plane,master 34m v1.21.2+vmware.1 test-md-0-698857566f-8pvt7 Ready &lt;none&gt; 118s v1.21.2+vmware.1 <span style=\"font-family: trebuchet ms, geneva, sans-serif; font-size: 12pt;\">Maintenant on peut red\u00e9ployer l&#8217;image Kuard pour v\u00e9rifier quelle va bien s&#8217;ex\u00e9cuter<\/span> # kubectl run kuard &#8211;image=harbor.cpod-velocity.az-fkd.cloud-garage.net\/library\/kuard-amd64:blue pod\/kuard created <\/span><\/p>\n<p style=\"text-align: left;\"><span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\"># kg pods<\/span><br \/>\n<span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">NAME READY STATUS RESTARTS AGE<\/span><br \/>\n<span style=\"font-family: courier new, courier, monospace; font-size: 10pt;\">kuard 1\/1 Running 0 17s<\/span><\/p>\n<p style=\"text-align: justify;\"><span style=\"font-family: trebuchet ms, geneva, sans-serif;\">Cette proc\u00e9dure est valable pour la prise en compte de certificats si le cluster est d\u00e9j\u00e0 d\u00e9ploy\u00e9. s&#8217;il n&#8217;a pas encore \u00e9t\u00e9 cr\u00e9\u00e9, il est pr\u00e9f\u00e9rable de faire prendre en compte le certificat d\u00e8s le d\u00e9part en utilisant la proc\u00e9dure d\u00e9crite dans la documentation d&#8217;installation.<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Si vous souhaitez d\u00e9ployer des pods sur un cluster Kubernetes ne connaissant pas le certificat de la registry contenant les images (c&#8217;est le cas en g\u00e9n\u00e9ral pour les labs ayant des certificat auto-sign\u00e9 et non connu par une autorit\u00e9), vous risquez de ne pas pouvoir d\u00e9ployer vos images, voyons un exemple en d\u00e9ployant une image<\/p><\/div>\n<div class=\"blog-btn\"><a href=\"https:\/\/loeilduse.fr\/?p=1163&#038;lang=fr\" class=\"home-blog-btn\">Lire la suite<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[147,111,112],"tags":[177,176,148,179,150,181],"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/loeilduse.fr\/index.php?rest_route=\/wp\/v2\/posts\/1163"}],"collection":[{"href":"https:\/\/loeilduse.fr\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/loeilduse.fr\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/loeilduse.fr\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/loeilduse.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1163"}],"version-history":[{"count":16,"href":"https:\/\/loeilduse.fr\/index.php?rest_route=\/wp\/v2\/posts\/1163\/revisions"}],"predecessor-version":[{"id":1191,"href":"https:\/\/loeilduse.fr\/index.php?rest_route=\/wp\/v2\/posts\/1163\/revisions\/1191"}],"wp:attachment":[{"href":"https:\/\/loeilduse.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1163"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/loeilduse.fr\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1163"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/loeilduse.fr\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1163"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}