资讯专栏INFORMATION COLUMN

initContainer 使用案例

MRZYD / 1909人阅读

摘要:将存储同时挂载到和的指定目录上,如在中拉取资源放到,也就推到了分布式存储上,如这样当业务容器启动后,就可以在指定目录下看到拉取到的资源在中,最好增加一部检测指定资源是否存在,以防重复拉取,如

将glusterfs存储同时挂载到initContainer和container的指定目录上,如:/var/data/

在initContainer中拉取资源放到/var/data/,也就推到了分布式存储glusterfs上,如:

wget -P /var/data/ http://127.0.0.1:8081/repository/k8s/kubectl/kubectl-v1.10.0-linux-amd64.tar.gz

这样当业务容器启动后,就可以在指定目录/var/data下看到initContainer拉取到的资源

在initContainer中,最好增加一部检测指定资源是否存在,以防重复拉取,如:

if [ ! -f "/var/data/kubectl-v1.10.0-linux-amd64.tar.gz" ]; then wget -P /var/data/ http://127.0.0.1:8081/repository/k8s/kubectl/kubectl-v1.10.0-linux-amd64.tar.gz; fi

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mysql
spec:
  replicas: 1
  selector:
    matchLabels:
      name: mysql
  template:
    metadata:
      labels:
        name: mysql
    spec:
      initContainers:
      - name: getresource
        image: busybox:v0.1.0
        command: ["sh", "-c", "wget -P /var/data/ http://127.0.0.1:8081/repository/k8s/kubectl/kubectl-v1.10.0-linux-amd64.tar.gz "]
        volumeMounts:
        - name: mysql-pvc
          mountPath: /var/data
      containers:
      - name: mysql
        image: percona:5.7.22
        imagePullPolicy: Always
        ports:
        - containerPort: 3306
        resources:
          limits:
            memory: "500Mi"
            cpu: "500m"
          requests:
            memory: "500Mi"
            cpu: "250m"
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "mysql"
        volumeMounts:
        - name: mysql-pvc
          mountPath: /var/data
      volumes:
       - name: mysql-pvc
         persistentVolumeClaim:
           claimName: mysql
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mysql
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: "5Gi"
  volumeName: 
  storageClassName: glusterfs
---
kind: Service
apiVersion: v1
metadata:
  name: mysql
spec:
  type: ClusterIP
  ports:
  - name: mysql
    port: 3306
    targetPort: 3306
    protocol: TCP
  selector:
    name: mysql

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/27739.html

相关文章

  • initContainer 使用案例

    摘要:将存储同时挂载到和的指定目录上,如在中拉取资源放到,也就推到了分布式存储上,如这样当业务容器启动后,就可以在指定目录下看到拉取到的资源在中,最好增加一部检测指定资源是否存在,以防重复拉取,如 将glusterfs存储同时挂载到initContainer和container的指定目录上,如:/var/data/ 在initContainer中拉取资源放到/var/data/,也就推到...

    Airy 评论0 收藏0
  • kubernetes Admission Controller 原理介绍

    摘要:介绍干的最重要的三个事就是认证看是否是合法用户授权看用户具备哪些权限一个调用链,对请求进行控制或修改,比如是否允许这个请求。把这个服务起一个这样就可以自动发现它。是基于开发平台的利器更多精彩 Admission Controller介绍 Apiserver干的最重要的三个事就是: 认证 : 看是否是合法用户 授权 : 看用户具备哪些权限 admission controller : ...

    Leo_chen 评论0 收藏0
  • kubernetes Admission Controller 原理介绍

    摘要:介绍干的最重要的三个事就是认证看是否是合法用户授权看用户具备哪些权限一个调用链,对请求进行控制或修改,比如是否允许这个请求。把这个服务起一个这样就可以自动发现它。是基于开发平台的利器更多精彩 Admission Controller介绍 Apiserver干的最重要的三个事就是: 认证 : 看是否是合法用户 授权 : 看用户具备哪些权限 admission controller : ...

    AlphaWatch 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<