在Azure上部署Kubernetes集群并配置数据存储

在云计算和容器化的世界中,数据存储资源的配置和管理是至关重要的。本文将介绍如何使用KubeSpray项目在Azure上部署一个生产就绪的Kubernetes集群,并进一步配置数据存储资源。

在任何项目中,数据存储设施的使用都是不可或缺的。当涉及到云服务和容器时,不再有像本地硬盘那样的直接访问方式。相反,需要考虑持久卷和基于云的存储解决方案。使用Kubernetes,可以设置一个数据卷,它对于容器资源来说就像一个大的远程硬盘。这是将不同技术以协调的方式整合在一起的关键部分。

Azure上设置Kubernetes数据卷

首先,在控制面板中选择“新建”操作,然后选择“通用存储资源”:

为资源指定一个唯一的名称(小写),并使用与主Kubernetes集群相同的资源组:

新资源将在资源组中可用 - 选择它进行编辑:

在详细信息页面中,选择“文件”共享部分:

在文件共享页面,点击“添加新”,为共享指定一个唯一的名称,并指定所需的文件存储大小(以GB为单位):

保存后,应该可以看到新创建的共享可供使用。

获取安全密钥

接下来,需要从存储账户获取一些安全密钥。返回到存储账户所在的主要资源组列表,并选择它。

进入存储账户后,需要导航到“访问密钥”部分,并复制出第一个密钥和资源名称。

不能直接在Kubernetes中使用这些密钥,需要使用Base64进行转换。在这个例子中,使用在线资源www.base64encode.org进行编码。

将信息传递给Kubernetes

现在需要将这些信息以Yaml文件的形式提供给Kubernetes。SSH到主Kubernetes管理机器,并执行以下命令:

sudo su - apt-get update apt-get install -y cifs-utils

现在使用nano创建一个新的yaml文件:

nano azure-secret.yaml

在该文件中添加以下内容,替换accountname和accountkey的值为每个的base64编码值(注意yaml文件中的缩进/空格):

apiVersion: v1 kind: Secret metadata: name: azure-secret type: Opaque data: azurestorageaccountname: <your encoded account name> azurestorageaccountkey: <your encoded key>

修改完成后,使用CTRL + O 保存文件,然后使用CTRL + X退出:

设置主指令文件

这已经设置了“密钥秘密”文件,现在需要设置主指令文件。在这种情况下,它被称为“azure.yaml”,但可以赋予任何名称。

该文件的内容如下:

apiVersion: v1 kind: Pod metadata: name: shareddatastore spec: containers: - image: kubernetes/pause name: azure volumeMounts: - name: azure mountPath: /mnt/azure volumes: - name: azure azureFile: secretName: azure-secret shareName: kubedatashare readOnly: false

需要更改的重要部分包括:

volumeMounts - 给定名称为'azure'和内部虚拟挂载路径。名称应与卷的名称(下一步/文件条目)匹配。 volumesname → 这已设置为默认名称'azure'。下一个条目是'azureFile'(定义了Kubernetes的存储卷类型)。'secretName'引用了之前创建的'azure-secret.yaml'文件中的数据,'shareName'是在第(5)步中创建的文件共享的名称。设置'readOnly'为'false'使卷可读/写。

将密钥传递给Kubernetes并设置卷运行

在命令行中,输入以下命令:

kubectl create -f azure-secret.yaml

完成后,密钥已设置,因此可以发送命令来设置卷本身。

kubectl create -f azure.yaml

完成后,可以通过检查可用的pods来测试一切是否设置正确:

kubectl get po

这将显示如下输出:

检查卷的实现

最后,可以检查卷的实现以确认它符合规定:

kubectl describe po azure

查看'describe'的输出,可以看到重要信息,例如容器托管的节点(VM),它是'基于秘密'的卷,并且它连接到了Azure文件服务。

现在,任何容器都可以直接访问该卷...将在以后的文章中详细介绍如何做到这一点。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485