有人可以让我知道挂载包含文件的 Azure 文件共享需要遵循哪些步骤,并且需要将其挂载到 Kubernetes 中的 pod 上。
1 回答
正如我在文档中看到的,Azure 使用 SMB 协议访问数据:
可以通过 SMB 2.1 和 SMB 3.0 装载 Azure 文件。对于来自本地客户端或其他 Azure 区域的连接,Azure 文件将拒绝 SMB 2.1(或未加密的 SMB 3.0)。如果为存储帐户启用了需要安全传输,Azure 文件将只允许使用 SMB 3.0 加密的连接。
Kubernetes 不直接支持 SMB,但支持特殊类型的卷 - AzureFile
,它将自动为您提供 SMB 配置。
接下来,要挂载存储,您需要:
将软件包安装到您的节点:
yum -y install cifs-utils
. 如果您使用 Ubuntu 等类似 Debian 的发行版,请检查如何在您的操作系统中安装该软件包(可能它们具有相同的名称)。不,您需要:
获取 Microsoft Azure 存储帐户并创建一个包含 base64 编码的 Azure 存储帐户名称和密钥的机密。在密钥文件中,base64 编码 Azure 存储帐户名称并将其与名称 azurestorageaccountname 配对,并将 Azure 存储访问密钥进行 base64 编码并将其与名称 azurestorageaccountkey 配对。
之后,您可以使用该文件创建 Kubernetes 机密:
apiVersion: v1
kind: Secret
metadata:
name: azure-secret
type: Opaque
data:
azurestorageaccountname: azhzdGVzdA==
azurestorageaccountkey: eElGMXpKYm5ub2pGTE1Ta0JwNTBteDAyckhzTUsyc2pVN21GdDRMMTNob0I3ZHJBYUo4akQ2K0E0NDNqSm9nVjd5MkZVT2hRQ1dQbU02WWFOSHk3cWc9PQ==
- 现在您可以将共享挂载到您的 pod 中:
apiVersion: v1
kind: Pod
metadata:
name: azure
spec:
containers:
- image: kubernetes/pause
name: azure
volumeMounts:
- name: azure
mountPath: /mnt/azure
volumes:
- name: azure
azureFile:
secretName: azure-secret
shareName: k8stest
readOnly: false