Zabezpečená komunikace s certifikáty v hybridní službě AKS
Platí pro: AKS v Azure Stack HCI, AKS na Windows Serveru
Certifikáty se používají k vytvoření zabezpečené komunikace mezi komponentami v clusteru. Hybridní AKS poskytuje bezobslužné zřizování a správu certifikátů pro integrované komponenty Kubernetes. V tomto článku se dozvíte, jak zřizovat a spravovat certifikáty v hybridní službě AKS.
Certifikáty a certifikační autority
Hybridní AKS generuje a používá následující certifikační autority (CA) a certifikáty.
Certifikační autorita clusteru:
- Server rozhraní API má certifikační autoritu clusteru, která podepisuje certifikáty pro jednosměrnou komunikaci ze serveru rozhraní API do
kubelet
. - Každý z nich
kubelet
také vytvoří žádost o podepsání certifikátu (CSR), která je podepsaná certifikační autoritou clusteru, pro komunikaci z objektu nakubelet
server rozhraní API. - Úložiště hodnot klíčů etcd má certifikát podepsaný certifikační autoritou clusteru pro komunikaci ze služby Etcd se serverem rozhraní API.
certifikační autorita etcd:
- Úložiště hodnot klíčů etcd má certifikační autoritu etcd, která podepisuje certifikáty k ověření a autorizaci replikace dat mezi replikami etcd v clusteru.
Front Proxy CA
- Přední proxy certifikační autorita zabezpečuje komunikaci mezi serverem rozhraní API a serverem rozhraní API rozšíření.
Zřizování certifikátů
Zřizování certifikátů pro objekt se provádí pomocí bootstrappingukubelet
TLS. Pro všechny ostatní certifikáty použijte klíč založený na YAML a vytvoření certifikátu.
- Certifikáty jsou uložené v /etc/kubernetes/pki.
- Klíče jsou RSA 4096, EcdsaCurve: P384
Poznámka
Kořenové certifikáty jsou platné 10 let. Všechny ostatní certifikáty, které nejsou rootem, jsou krátkodobé a jsou platné čtyři dny.
Obnovení a správa certifikátů
Jiné než kořenové certifikáty se automaticky prodloužily. Všechny certifikáty řídicí roviny pro Kubernetes s výjimkou následujících certifikátů jsou spravované:
- Certifikát serveru Kubelet
- Klientský certifikát Kubeconfig
Jako osvědčený postup zabezpečení byste k ověřování uživatelů měli použít jednotné přihlašování Active Directory .
Odvolání certifikátu
Odvolání certifikátu by mělo být vzácné a mělo by se provádět v době prodloužení platnosti certifikátu.
Jakmile budete mít sériové číslo certifikátu, který chcete odvolat, použijte k definování a zachování informací o odvolání vlastní prostředek Kubernetes. Každý objekt odvolání se může skládat z jedné nebo více položek odvolání.
Pokud chcete provést odvolání, použijte jednu z následujících možností:
- Sériové číslo
- Group (Skupina)
- Název DNS
- IP adresa
Je možné zadat notBefore tak, aby se odvolaly pouze certifikáty, které byly vydány před určitým časovým razítkem. Pokud není zadaný čas notBefore , všechny stávající a budoucí certifikáty odpovídající odvolání budou odvolány.
Poznámka
kubelet
Odvolání certifikátů serveru v současné době není k dispozici.
Pokud při odvolání použijete sériové číslo, můžete cluster do funkčního stavu dostat do funkčního stavu pomocí Repair-AksHciClusterCerts
příkazu PowerShellu popsaného níže. Pokud použijete některé z dalších polí uvedených výše, nezapomeňte zadat notBefore time, abyste mohli cluster obnovit pomocí Repair-AksHciClusterCerts
příkazu .
apiVersion: certificates.microsoft.com/v1
kind: RenewRevocation
metadata:
name: my-renew-revocation
namespace: kube-system
spec:
description: My list of renew revocations
revocations:
- description: Revoked certificates by serial number
kind: serialnumber
notBefore: "2020-04-17T17:22:05Z"
serialNumber: 77fdf4b1033b387aaace6ce1c18710c2
- description: Revoked certificates by group
group: system:nodes
kind: Group
- description: Revoked certificates by DNS
dns: kubernetes.default.svc.
kind: DNS
- description: Revoked certificates by DNS Suffix
dns: .cluster.local
kind: DNS
- description: Revoked certificates by IP
ip: 170.63.128.124
kind: IP
Řešení potíží a údržba
Informace o protokolování a monitorování najdete v následujících skriptech a dokumentaci:
Obnovení certifikátů pro pracovní uzly
U pracovních uzlů se neúspěšná obnovení certifikátů protokolují pomocí podu certificate-renewal-worker . Pokud obnovení certifikátu na pracovním uzlu dál selže a platnost certifikátů vyprší, uzel se odebere a místo toho se vytvoří nový pracovní uzel.
Tady je příklad zobrazení protokolů pro pod s předponou certificate-renewal-worker:
kubectl.exe --kubeconfig .\testcluster-kubeconfig -n=kube-system get pods
NAME READY STATUS RESTARTS AGE
…
certificate-renewal-worker-6f68k 1/1 Running 0 6d
Získání protokolů z podu pro prodloužení platnosti certifikátu:
kubectl.exe --kubeconfig .\testcluster-kubeconfig -n=kube-system logs certificate-renewal-worker-6f68k
Obnovení certifikátů pro uzly řídicí roviny
U uzlů řídicí roviny se neúspěšná obnovení certifikátů protokolují pomocí podu certificate-renewal-controller . Pokud platnost certifikátů na uzlu řídicí roviny vyprší, může se uzel nakonec stát nedostupným pro jiné uzly. Pokud všechny uzly řídicí roviny přejdou do tohoto stavu, cluster přestane fungovat kvůli selhání protokolu TLS. Pokud chcete ověřit, jestli cluster přešel do tohoto stavu, zkuste ke clusteru získat přístup pomocí kubectl
a pak ověřte, jestli připojení selže s chybovou zprávou související s prošlými certifikáty x509.
Tady je příklad zobrazení protokolů pro pod s předponou certificate-renewal-controller:
kubectl.exe --kubeconfig .\testcluster-kubeconfig -n=kube-system get pods
NAME READY STATUS RESTARTS AGE
…
certificate-renewal-controller-2cdmz 1/1 Running 0 6d
Získání protokolů z podu pro prodloužení platnosti certifikátu:
kubectl.exe --kubeconfig .\testcluster-kubeconfig -n=kube-system logs certificate-renewal-controller-2cdmz
Uzly řídicí roviny se nedají znovu vytvořit jako pracovní uzly, ale k opravě chyb souvisejících s prošlými certifikáty můžete použít modul Repair-AksHciClusterCerts . Pokud cluster začne selhávat kvůli prošlým certifikátům, spusťte následující příkaz:
Repair-AksHciClusterCerts -Name mytargetcluster
Pokud se cluster stane nedostupným prostřednictvím kubectl
, najdete protokoly ve /var/log/pods
složce .
Další kroky
V tomto průvodci jste se naučili zřizovat a spravovat certifikáty. Dále můžete: