kubernetes創建資源對象yaml文件例子--rc

apiVersion: v1 #指定api版本,此值必須在kubectl apiversion中
kind: ReplicationController #指定創建資源的角色/類型
metadata: #資源的元數據/屬性
  name: test-rc #資源的名字,在同一個namespace中必須唯一
  labels: #設定資源的標籤,詳情請見http://blog.csdn.net/liyingke112/article/details/77482384
  k8s-app: apache  
    software: apache
    project: test
    app: test-rc
    version: v1
  annotations:            #自定義註解列表
    - name: String        #自定義註解名字
spec:
  replicas: 2 #副本數量2 
  selector: #RC通過spec.selector來篩選要控制的Pod 
    software: apache
    project: test
    app: test-rc
    version: v1
    name: test-rc
  template: #這裏Pod的定義
    metadata:
      labels: #Pod的label,可以看到這個label與spec.selector相同
        software: apache
        project: test
        app: test-rc
        version: v1
        name: test-rc
    spec:#specification of the resource content 指定該資源的內容  
      restartPolicy: Always #表明該容器一直運行,默認k8s的策略,在此容器退出後,會立即創建一個相同的容器  
      nodeSelector:     #節點選擇,先給主機打標籤kubectl label nodes kube-node1 zone=node1  
        zone: node1  
      containers:  
      - name: web04-pod #容器的名字  
        image: web:apache #容器使用的鏡像地址  
        imagePullPolicy: Never #三個選擇Always、Never、IfNotPresent,每次啓動時檢查和更新(從registery)images的策略,
                               # Always,每次都檢查
                               # Never,每次都不檢查(不管本地是否有)
                               # IfNotPresent,如果本地有就不檢查,如果沒有就拉取
        command: ['sh'] #啓動容器的運行命令,將覆蓋容器中的Entrypoint,對應Dockefile中的ENTRYPOINT  
        args: ["$(str)"] #啓動容器的命令參數,對應Dockerfile中CMD參數  
        env: #指定容器中的環境變量  
        - name: str #變量的名字  
          value: "/etc/run.sh" #變量的值  
        resources: #資源管理,請求請見http://blog.csdn.net/liyingke112/article/details/77452630
          requests: #容器運行時,最低資源需求,也就是說最少需要多少資源容器才能正常運行  
            cpu: 0.1 #CPU資源(核數),兩種方式,浮點數或者是整數+m,0.1=100m,最少值爲0.001核(1m)
            memory: 32Mi #內存使用量  
          limits: #資源限制  
            cpu: 0.5  
            memory: 32Mi  
        ports:  
        - containerPort: 80 #容器開發對外的端口
          name: httpd  #名稱
          protocol: TCP  
        livenessProbe: #pod內容器健康檢查的設置,詳情請見http://blog.csdn.net/liyingke112/article/details/77531584
          httpGet: #通過httpget檢查健康,返回200-399之間,則認爲容器正常  
            path: / #URI地址  
            port: 80  
            #host: 127.0.0.1 #主機地址  
            scheme: HTTP  
          initialDelaySeconds: 180 #表明第一次檢測在容器啓動後多長時間後開始  
          timeoutSeconds: 5 #檢測的超時時間  
          periodSeconds: 15  #檢查間隔時間  
          #也可以用這種方法  
          #exec: 執行命令的方法進行監測,如果其退出碼不爲0,則認爲容器正常  
          #  command:  
          #    - cat  
          #    - /tmp/health  
          #也可以用這種方法  
          #tcpSocket: //通過tcpSocket檢查健康   
          #  port: number   
        lifecycle: #生命週期管理  
          postStart: #容器運行之前運行的任務  
            exec:  
              command:  
                - 'sh'  
                - 'yum upgrade -y'  
          preStop:#容器關閉之前運行的任務  
            exec:  
              command: ['service httpd stop']  
        volumeMounts:  #詳情請見http://blog.csdn.net/liyingke112/article/details/76577520
        - name: volume #掛載設備的名字,與volumes[*].name 需要對應    
          mountPath: /data #掛載到容器的某個路徑下  
          readOnly: True  
  volumes: #定義一組掛載設備  
  - name: volume #定義一個掛載設備的名字  
    #meptyDir: {}  
    hostPath:  
      path: /opt #掛載設備類型爲hostPath,路徑爲宿主機下的/opt,這裏設備類型支持很多種  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章