Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: ✔️ AKS Automatic ✔️ AKS Standard
K vytváření a nasazování image v clusterech Azure Kubernetes Service (AKS) se běžně používají pipeliny. I když je tento proces skvělý pro vytváření image, často nezohledňuje zastaralé image, které zůstaly na uzlech clusteru, a může vést k nafouknutí image. Tyto image můžou obsahovat ohrožení zabezpečení, což může způsobit problémy se zabezpečením. Pokud chcete odebrat rizika zabezpečení ve vašich clusterech, můžete tyto neodkazované image vyčistit. Ruční čištění obrázků může být časově náročné. Nástroj Image Cleaner provádí automatickou identifikaci a odebrání obrázků, což snižuje riziko zastaralých obrázků a zkracuje dobu potřebnou k jejich vyčištění.
AKS Automatic je doporučená výchozí volba pro produkční nasazení pro většinu úloh v AKS. Nástroj Image Cleaner je předkonfigurovaný v automatických clusterech AKS, aby ve výchozím nastavení pomohl odebrat nepoužívané image s ohroženími zabezpečení.
V clusterech AKS Standard je nástroj Image Cleaner volitelný a explicitně ho povolíte.
Další informace o službě AKS Automatic najdete v tématu Co je služba Azure Kubernetes Service (AKS) Automatic?
Poznámka
Image Cleaner je funkce založená na nástroji Eraser. V AKS je název funkce i název vlastnosti Image Cleaner, zatímco názvy příslušných podů Image Cleaner obsahují Eraser.
Automatické chování AKS a AKS Standard
Prerequisites
- Předplatné služby Azure. Pokud ještě nemáte předplatné Azure, můžete si vytvořit bezplatný účet.
- Pro konfiguraci standardu AKS prostřednictvím Azure CLI Azure CLI verze 2.49.0 nebo novější. Spuštěním
az --versionvyhledejte svou verzi. Pokud potřebujete instalovat nebo upgradovat, podívejte se na Install Azure CLI.
Limitations
Nástroj Image Cleaner zatím nepodporuje fondy uzlů Windows nebo virtuální uzly AKS.
Jak funguje Image Cleaner
Když v clusteru aktivujete Image Cleaner, nasadí se pod správce kontroleru s názvem eraser-controller-manager.
Image Cleaner podporuje režimy automatického a ručního čištění.
Možnosti konfigurace pro AKS Standard
Tyto možnosti použijte při konfiguraci nástroje Image Cleaner ve službě AKS Standard pomocí Azure CLI.
| Name | Popis | Povinné |
|---|---|---|
--enable-image-cleaner |
Povolení funkce Image Cleaner pro cluster AKS | Ano, pokud nezadáte disable |
--disable-image-cleaner |
Zakázání funkce Image Cleaner pro cluster AKS | Ano, pokud nezadáte povolení |
--image-cleaner-interval-hours |
Interval v hodinách pro naplánované spuštění Azure CLI výchozí hodnota je jeden týden. Minimum je 24 hodin. Maximum je tři měsíce. | Nevyžaduje se pro Azure CLI; vyžaduje se pro šablonu ARM nebo jiné klienty. |
Poznámka
Pokud nástroj Image Cleaner zakážete a později ho znovu povolíte bez explicitního předávání konfigurace, použije se předchozí hodnota konfigurace.
Automatický režim
Když nasadíte eraser-controller-manager, Image Cleaner automaticky provede tyto akce:
- Spustí vyčištění a pro každý uzel vytvoří
eraser-aks-xxxxxpracovní pody. - Používá kontejner sběrač pro shromažďování nepoužívaných obrazů.
- Používá kontejner trivy-scanner ke kontrole ohrožení zabezpečení pomocí trivy.
- Používá kontejner remover k odstranění nepoužívaných obrazů se zranitelnostmi.
- Po dokončení odstraní pracovní pod.
- Naplánuje další čištění podle
--image-cleaner-interval-hours.
Ruční režim
Vyčištění můžete aktivovat ručně definováním objektuImageList CRD. Tím se spustí eraser-contoller-manager vytvoření pracovních podů eraser-aks-xxxxx pro každý uzel a dokončení ručního procesu odebrání.
Poznámka
Po zakázání nástroje Image Cleaner stále existuje stará konfigurace. To znamená, že pokud funkci znovu povolíte bez explicitního předávání konfigurace, použije se stávající hodnota místo výchozí hodnoty.
Použití nástroje Image Cleaner v AKS Automatic a AKS Standard
AKS automatické
Nástroj Image Cleaner je předkonfigurovaný v automatických clusterech AKS, což jsou doporučené výchozí nastavení připravené pro produkční prostředí pro většinu úloh AKS. Nemusíte spouštět samostatný příkaz enable.
Pokud chcete vytvořit automatický cluster AKS, přečtěte si téma Vytvoření automatického clusteru AKS.
Pokud chcete cílit na nápravu nebo provozní ověření, použijte pokyny k ručnímu vyčištění a monitorování v tomto článku.
AKS Standard: Povolení v novém clusteru
Povolte Image Cleaner v nově vytvořeném clusteru AKS Standard pomocí příkazu az aks create s parametrem --enable-image-cleaner.
az aks create \
--resource-group myResourceGroup \
--name myManagedCluster \
--enable-image-cleaner \
--generate-ssh-keys
AKS Standard: povolit v existujícím clusteru
Pomocí příkazu povolte nástroj Image Cleaner v existujícím clusteru az aks update AKS Standard.
az aks update \
--resource-group myResourceGroup \
--name myManagedCluster \
--enable-image-cleaner
AKS Standard: Interval aktualizace v novém nebo existujícím clusteru
Pomocí parametru --image-cleaner-interval-hours aktualizujte interval nástroje Image Cleaner na novém nebo existujícím clusteru AKS Standard.
# Create a new cluster with specifying the interval
az aks create \
--resource-group myResourceGroup \
--name myManagedCluster \
--enable-image-cleaner \
--image-cleaner-interval-hours 48 \
--generate-ssh-keys
# Update the interval on an existing cluster
az aks update \
--resource-group myResourceGroup \
--name myManagedCluster \
--enable-image-cleaner \
--image-cleaner-interval-hours 48
Ruční odebrání obrázků pomocí nástroje Image Cleaner
Důležité
name musí být nastaveno na imagelist.
Ručně odeberte obrázek pomocí následujícího kubectl apply příkazu. Tento příklad odebere docker.io/library/alpine:3.7.3 obraz, pokud se nepoužívá.
cat <<EOF | kubectl apply -f -
apiVersion: eraser.sh/v1
kind: ImageList
metadata:
name: imagelist
spec:
images:
- docker.io/library/alpine:3.7.3
EOF
Ruční vyčištění je jednorázová operace a aktivuje se pouze tehdy, když je vytvořen nový imagelist nebo jsou provedeny změny ve stávajícím imagelist. Po odstranění obrázku se imagelist neodstraní automaticky.
Pokud potřebujete aktivovat další ruční vyčištění, musíte vytvořit nový imagelist nebo provést změny existujícího. Pokud chcete stejnou image znovu odebrat, musíte vytvořit novou imagelist.
Odstraňte existující ImageList a vytvořte nový
Pomocí příkazu
imagelistodstraňte staroukubectl delete.kubectl delete ImageList imagelistVytvořte nový
imagelistse stejným názvem obrazu. Následující příklad používá stejný obrázek jako předchozí příklad.cat <<EOF | kubectl apply -f - apiVersion: eraser.sh/v1 kind: ImageList metadata: name: imagelist spec: images: - docker.io/library/alpine:3.7.3 EOF
Úprava existujícího ImageListu
Upravte existující imagelist pomocí kubectl edit příkazu.
kubectl edit ImageList imagelist
# Add a new image to the list
apiVersion: eraser.sh/v1
kind: ImageList
metadata:
name: imagelist
spec:
images:
docker.io/library/python:alpine3.18
Při použití ručního režimu se eraser-aks-xxxxx pod odstraní do 10 minut po dokončení práce.
Seznam vyloučení obrázků
Image zadané v seznamu vyloučení se z clusteru neodeberou. Image Cleaner podporuje seznamy vyloučení definované systémem a uživatelem. Není podporováno úpravu seznamu vyloučení systému.
Kontrola seznamu vyloučení systému
Pomocí následujícího kubectl get příkazu zkontrolujte seznam vyloučení systému.
kubectl get -n kube-system configmap eraser-system-exclusion -o yaml
Vytvoření seznamu vyloučení definovaných uživatelem
Vytvořte ukázkový soubor JSON, který bude obsahovat vyloučené obrázky.
cat > sample.json <<EOF {"excluded": ["excluded-image-name"]} EOFVytvořte
configmappomocí ukázkového souboru JSON s použitím následujících příkazůkubectl createakubectl label.kubectl create configmap excluded --from-file=sample.json --namespace=kube-system kubectl label configmap excluded eraser.sh/exclude.list=true -n kube-system
Zakázání nástroje Image Cleaner na standardu AKS
Zakažte Image Cleaner v clusteru AKS Standard pomocí příkazu az aks update s parametrem --disable-image-cleaner.
az aks update \
--resource-group myResourceGroup \
--name myManagedCluster \
--disable-image-cleaner
Nejčastější dotazy
Je funkce Image Cleaner ve výchozím nastavení povolená automaticky v AKS?
Yes. Nástroj Image Cleaner je předkonfigurovaný v automatických clusterech AKS.
Musím v AKS Automatic spouštět příkazy k povolení funkce Image Cleaner?
Ne. Použijte příkazy enable pro AKS Standard.
Jak zjistím, jakou verzi Image Cleaner používá?
kubectl describe configmap -n kube-system eraser-manager-config | grep tag -C 3
Podporuje Image Cleaner jiné nástroje pro skenování zranitelností než trivy-scanner?
Ne.
Můžu určit úrovně zranitelnosti pro vyčištění obrazů?
Ne. Mezi výchozí nastavení úrovní ohrožení zabezpečení patří:
-
LOW, -
MEDIUM, -
HIGH, a CRITICAL
Výchozí nastavení nemůžete přizpůsobit.
Jak zkontrolovat obrázky, které byly vyčištěny pomocí nástroje Image Cleaner?
Protokoly obrázků jsou uloženy v pracovním podu eraser-aks-xxxxx. Pokud eraser-aks-xxxxx je aktivní, můžete spuštěním následujících příkazů zobrazit protokoly odstranění:
kubectl logs -n kube-system <worker-pod-name> -c collector
kubectl logs -n kube-system <worker-pod-name> -c trivy-scanner
kubectl logs -n kube-system <worker-pod-name> -c remover
Pod eraser-aks-xxxxx se odstraní do 10 minut po dokončení práce. Tímto postupem povolíte doplněk Azure Monitor a použijete tabulku protokolů podů Container Insights. Potom se uloží historické protokoly a můžete je zkontrolovat, i když je eraser-aks-xxxxx odstraněno.
Ujistěte se, že je ve vašem clusteru povolená Azure Monitor. Podrobný postup najdete v tématu Povolení služby Container Insights v clusterech AKS.
Ve výchozím nastavení se neshromažďují protokoly událostí u kontejnerů spuštěných v oboru názvů
kube-system. Odeberte obor názvůkube-systemzexclude_namespacesv config mapě a poté config mapu použijte k povolení shromažďování těchto logů. Podrobnosti najdete v tématu Konfigurace shromažďování dat Container Insights .Pomocí příkazu
az aks showzískejte ID prostředku Log Analytics.az aks show --resource-group myResourceGroup --name myManagedClusterPo několika minutách příkaz vrátí informace o řešení ve formátu JSON, včetně ID prostředku pracovního prostoru:
"addonProfiles": { "omsagent": { "config": { "logAnalyticsWorkspaceResourceID": "/subscriptions/<WorkspaceSubscription>/resourceGroups/<DefaultWorkspaceRG>/providers/Microsoft.OperationalInsights/workspaces/<defaultWorkspaceName>" }, "enabled": true } }Na portálu Azure vyhledejte ID prostředku pracovního prostoru a pak vyberte Protokoly.
Zkopírujte jeden z následujících dotazů a vložte ho do okna dotazu.
Pokud váš cluster používá schéma ContainerLogV2, použijte následující dotaz. Pokud stále používáte
ContainerLog, upgradujte na ContainerLogV2.ContainerLogV2 | where PodName startswith "eraser-aks-" and PodNamespace == "kube-system" | project TimeGenerated, PodName, LogMessage, LogSourcePokud chcete pokračovat v používání
ContainerLog, použijte místo toho následující dotaz:let startTimestamp = ago(1h); KubePodInventory | where TimeGenerated > startTimestamp | project ContainerID, PodName=Name, Namespace | where PodName startswith "eraser-aks-" and Namespace == "kube-system" | distinct ContainerID, PodName | join ( ContainerLog | where TimeGenerated > startTimestamp ) on ContainerID // at this point before the next pipe, columns from both tables are available to be "projected". Due to both // tables having a "Name" column, we assign an alias as PodName to one column which we actually want | project TimeGenerated, PodName, LogEntry, LogEntrySource | summarize by TimeGenerated, LogEntry | order by TimeGenerated desc ```
Vyberte Spustit. Všechny odstraněné protokoly obrázků se zobrazí v oblasti Výsledky .
Související obsah
- Další informace o službě AKS Automatic najdete v článku Co je služba Azure Kubernetes Service (AKS) Automatic?
- Vytvořte cluster AKS Automatic připravený pro produkční nasazení pomocí článku Vytvoření clusteru Azure Kubernetes Service (AKS) Automatic.