Azure Lei Zhang的博客

weibo: LeiZhang的微博/QQ: 185165016/QQ群:319036205/邮箱:leizhang1984@outlook.com/TeL:139-161-22926

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

  《Windows Azure Platform 系列文章目录

 

  本文介绍的是静态创建存储账户,即用户需要提前创建好存储账户

 

  1.我们首先创建Azure AKS集群,步骤略。我们的AKS集群名称为:aks1-27-9

 

  2.Azure AKS 通过NFS File Share挂载的时候,NFS 4.1只支持高级性能层的Azure存储账户。

  我们首先创建1个新的存储账户,如下图:

  注意:Performance必须选择Premium

  

 

  3.存储账户创建完毕后,点击File Share,创建1个File Share名称为nfs

  请注意创建的协议为NFS,另外我这里创建的容量最小为100GB

  

 

 

 

  4.上面的存储账户创建完毕后,选择Access Control,点击Add Role Assignment

  

 

  5.Role选择Storage Account Contributor,Members选择Managed Identity

  

 

  6.在Managed Identity里,选择Kubernetes Service,然后勾选我们之前创建的AKS服务实例

  

 

  7.分配完Managed Identiy之后,把Azure Storage Account的安全传输关闭。我们点击Configuration,然后在Secure transfer required选择Disabled

  

 

  8.在Azure Storage Account的Networking里,选择Enabled from select virtual network and IP Address,然后允许AKS所在的子网访问

  

 

 

  9.在创建Azure存储账户的时候,获得他的访问秘钥

 

  10.执行下面的命令,登录Azure

az login
az aks get-credentials -g 资源组名字 -n aks集群名字

 

  12.执行下面的脚本,创建PV

apiVersion: v1
kind: PersistentVolume
metadata:
  annotations:
    pv.kubernetes.io/provisioned-by: file.csi.azure.com
  name: azurefile
spec:
  capacity:
    storage: 100Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Retain
  storageClassName: azurefile-csi-premium
  csi:
    driver: file.csi.azure.com
    volumeHandle: "leistoragepremium01"  # make sure this volumeid is unique for every identical share in the cluster
    volumeAttributes:
      protocol: nfs
      storageAccount: leistoragepremium01
      resourceGroup: aks-rg  # optional, only set this when storage account is not in the same resource group as node
      shareName: nfs
  mountOptions:
  - nconnect=4
  - noresvport
  - actimeo=30

 

  13.执行下面的脚本,创建PVC

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: azurefile
spec:
  accessModes:
    - ReadWriteMany
  storageClassName: azurefile-csi-premium
  volumeName: azurefile
  resources:
    requests:
      storage: 100Gi

 

  14.执行下面的脚本,创建pod

kind: Pod
apiVersion: v1
metadata:
  name: mypod
spec:
  containers:
    - name: mypod
      image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
      resources:
        requests:
          cpu: 100m
          memory: 128Mi
        limits:
          cpu: 250m
          memory: 256Mi
      volumeMounts:
        - mountPath: /mnt/azure
          name: azure
          readOnly: false
  volumes:
   - name: azure
     persistentVolumeClaim:
       claimName: azurefile

 

  15.创建完毕后,pod应该会创建成功

root@Leilaptop6:/mnt/d/work/github/k8s/1.27.9/2.premiumnfs-static# kubectl get pod
NAME    READY   STATUS    RESTARTS   AGE
mypod   1/1     Running   0          5s

  

  16.然后我们进入到pod里面

kubectl exec -it pod/mypod -- /bin/sh

  

  17.创建1个新的文件

root@Leilaptop6:/mnt/d/work/github/k8s/1.27.9/2.premiumnfs-static# kubectl exec -it pod/mypod -- /bin/sh
/ # cd /mnt/azure
/mnt/azure # ll
/bin/sh: ll: not found
/mnt/azure # ls
/mnt/azure # touch 1.txt
/mnt/azure # exit

 

  18.把pod删除后,重建pod,然后再次exec进入pod,会发现上次创建的1.txt还会继续保留

 

 

  

 

  

posted on 2024-08-21 17:42  Lei Zhang的博客  阅读(26)  评论(0编辑  收藏  举报