CSI-drivrutiner (Container Storage Interface) i Azure Kubernetes Service (AKS)
Container Storage Interface (CSI) är en standard för att exponera godtyckliga block- och fillagringssystem för containerbaserade arbetsbelastningar på Kubernetes. Genom att implementera och använda CSI kan Azure Kubernetes Service (AKS) skriva, distribuera och iterera plugin-program för att exponera nya eller förbättra befintliga lagringssystem i Kubernetes utan att behöva röra kubernetes-kärnkoden och vänta på dess lanseringscykler.
Med stöd för CSI-lagringsdrivrutinen i AKS kan du använda:
- Azure Disks kan användas för att skapa en Kubernetes DataDisk-resurs . Diskar kan använda Azure Premium Storage, som backas upp av högpresterande SSD:er eller Azure Standard Storage, som backas upp av vanliga hårddiskar eller standard-SSD:er. För de flesta produktions- och utvecklingsarbetsbelastningar använder du Premium Storage. Azure-diskar monteras som ReadWriteOnce och är endast tillgängliga för en nod i AKS. För lagringsvolymer som kan nås av flera noder samtidigt använder du Azure Files.
- Azure Files kan användas för att montera en SMB 3.0/3.1-resurs som backas upp av ett Azure-lagringskonto till poddar. Med Azure Files kan du dela data över flera noder och poddar. Azure Files kan använda Azure Standard Storage som backas upp av vanliga hårddiskar eller Azure Premium-lagring som backas upp av högpresterande SSD:er.
- Azure Blob Storage kan användas för att montera Blob Storage (eller objektlagring) som ett filsystem i en container eller podd. Med Blob Storage kan klustret stödja program som fungerar med stora ostrukturerade datamängder som loggfilsdata, bilder eller dokument, HPC och andra. Om du matar in data i Azure Data Lake Storage kan du dessutom montera och använda dem direkt i AKS utan att konfigurera ett annat interimfilsystem.
Viktigt!
Från och med Kubernetes version 1.26 är beständiga volymtyper i träd kubernetes.io/azure-disk och kubernetes.io/azure-file inaktuella och stöds inte längre. Det är inte planerat att ta bort dessa drivrutiner efter utfasningen, men du bör migrera till motsvarande CSI-drivrutiner disk.csi.azure.com och file.csi.azure.com. Information om hur du granskar migreringsalternativen för dina lagringsklasser och uppgraderar klustret för att använda Azure Disks- och Azure Files CSI-drivrutiner finns i Migrera från träd till CSI-drivrutiner.
Drivrutiner i träd refererar till de lagringsdrivrutiner som ingår i kubernetes-kärnkoden i stället för CSI-drivrutinerna, som är plugin-program.
Kommentar
Vi rekommenderar att du tar bort motsvarande PersistentVolumeClaim-objekt i stället för PersistentVolume-objektet när du tar bort en CSI-volym. Den externa etableraren i CSI-drivrutinen reagerar på borttagningen av PersistentVolumeClaim och baserat på dess återtagningsprincip utfärdar den DeleteVolume-anropet mot CSI-volymdrivrutinskommandona för att ta bort volymen. Objektet PersistentVolume tas sedan bort.
Förutsättningar
- Du behöver Azure CLI version 2.42 eller senare installerad och konfigurerad. Kör
az --version
för att hitta versionen. Om du behöver installera eller uppgradera kan du läsa Installera Azure CLI. - Om CSI-lagringsdrivrutinen med öppen källkod är installerad i klustret avinstallerar du den innan du aktiverar CSI-drivrutinen för Azure Storage.
- För att framtvinga Azure Policy for AKS-principdefinitionen måste Kubernetes-kluster använda CSI-drivrutinen StorageClass (Container Storage Interface) och Azure Policy-tillägget måste vara aktiverat på nya och befintliga kluster. För ett befintligt kluster läser du Learn Azure Policy for Kubernetes för att aktivera det.
Scenarier som stöds av diskkryptering
CSI-lagringsdrivrutiner stöder följande scenarier:
- Krypterade hanterade diskar med kundhanterade nycklar med hjälp av Azure Key Vaults som lagras i en annan Microsoft Entra-klientorganisation.
- Kryptera dina Azure Storage-diskar som är värdar för AKS OS och programdata med kundhanterade nycklar.
Aktivera CSI-lagringsdrivrutiner i ett befintligt kluster
Om du vill aktivera CSI-lagringsdrivrutiner i ett nytt kluster inkluderar du någon av följande parametrar beroende på lagringssystemet:
--enable-disk-driver
gör att du kan aktivera CSI-drivrutinen för Azure Disks.--enable-file-driver
gör att du kan aktivera Azure Files CSI-drivrutinen.--enable-blob-driver
gör att du kan aktivera CSI-drivrutinen för Azure Blob Storage.--enable-snapshot-controller
gör att du kan aktivera ögonblicksbildskontrollanten.
az aks update --name myAKSCluster --resource-group myResourceGroup --enable-disk-driver --enable-file-driver --enable-blob-driver --enable-snapshot-controller
Det kan ta flera minuter att slutföra den här åtgärden. När den är klar bör du i utdata se statusen för att aktivera drivrutinen i klustret. Följande exempel liknar avsnittet som anger resultatet när du aktiverar CSI-drivrutinen för Blob Storage:
"storageProfile": {
"blobCsiDriver": {
"enabled": true
},
Inaktivera CSI-lagringsdrivrutiner i ett nytt eller befintligt kluster
Om du vill inaktivera CSI-lagringsdrivrutiner i ett nytt kluster tar du med någon av följande parametrar beroende på lagringssystemet:
--disable-disk-driver
gör att du kan inaktivera CSI-drivrutinen för Azure Disks.--disable-file-driver
gör att du kan inaktivera CSI-drivrutinen för Azure Files.--disable-blob-driver
gör att du kan inaktivera CSI-drivrutinen för Azure Blob Storage.--disable-snapshot-controller
gör att du kan inaktivera ögonblicksbildskontrollanten.
az aks create \
--name myAKSCluster \
--resource-group myResourceGroup \
--disable-disk-driver \
--disable-file-driver \
--disable-blob-driver \
--disable-snapshot-controller \
--generate-ssh-keys
Om du vill inaktivera CSI-lagringsdrivrutiner i ett befintligt kluster använder du någon av parametrarna som angavs tidigare beroende på lagringssystemet:
az aks update \
--name myAKSCluster \
--resource-group myResourceGroup \
--disable-disk-driver \
--disable-file-driver \
--disable-blob-driver \
--disable-snapshot-controller
Migrera anpassade lagringsklasser i träd till CSI
Om du har skapat lagringsklasser för drivrutinsdrivrutiner i träd fortsätter dessa lagringsklasser att fungera eftersom CSI-migreringen är aktiverad efter uppgradering av klustret till 1.21.x. Om du vill använda CSI-funktioner måste du utföra migreringen.
Information om hur du granskar migreringsalternativen för dina lagringsklasser och uppgraderar klustret för att använda Azure Disks- och Azure Files CSI-drivrutiner finns i Migrera från träd till CSI-drivrutiner.
Nästa steg
- Information om hur du använder CSI-drivrutinen för Azure Disks finns i Använda Azure Disks med CSI-drivrutiner.
- Information om hur du använder CSI-drivrutinen för Azure Files finns i Använda Azure Files med CSI-drivrutiner.
- Information om hur du använder CSI-drivrutinen för Azure Blob Storage finns i Använda Azure Blob Storage med CSI-drivrutiner
- Mer information om metodtips för lagring finns i Metodtips för lagring och säkerhetskopior i Azure Kubernetes Service.
- Mer information om CSI-migrering finns i Kubernetes in-tree to CSI Volume Migration (Kubernetes in-tree to CSI Volume Migration).
Azure Kubernetes Service