Kubernetes资源创建yml语法
生活随笔
收集整理的這篇文章主要介紹了
Kubernetes资源创建yml语法
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
在是用kubernetes中,我們對資源的創建大部分都是通過
| 1 | kubelet create -f RESOURCE.yaml |
?
剛開看的時候不免有一些迷茫,看不懂語法,不知道怎么寫;今天本文就介紹一下kubernetes construct語法。
Construct語法其實就是由kubelet格式化成API的post data,提交給apiserver,因此這里支持yaml,json兩種數據結構的文件。
Pod資源
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | apiVersion: v1 指定api版本,此值必須在kubectl apiversion中 kind: Pod 指定創建資源的角色/類型 metadata: 資源的元數據/屬性 name: test 資源的名字,在同一個namespace中必須唯一 labels: 設定資源的標簽 sex: boy 標簽以key/value的結構存在 age: 18 spec: #specification of the resource content 指定該資源的內容 restartPolicy: Never 表明改容器僅僅運行一次,默認k8s的策略,在此容器退出后,會立即創建一個相同的容器 volumes: 定義一組掛載設備 - name: volume 定義一個掛載設備的名字 hostPath: /data/www/html 掛載設備類型為hostPath,路徑為宿主機下的/data/www/html,這里設備類型支持很多種 containers: 指定資源中的容器 - name: container1 容器的名字 image: “docker.coocla.org/ubuntu:last” 容器使用的鏡像地址 volumeMounts: - mountPath: /mnt 掛載到容器的某個路徑下 name: volume 掛載設備的名字,與volumes[*].name 需要對應 livenessProbe: 容器健康監測 httpGet: http形式監測,返回200-399之間,則認為容器正常 path: /health port: 8080 initialDelaySeconds: 15 表明第一次檢測在容器啟動后多長時間后開始 timeoutSeconds: 1 檢測的超時時間 env: 指定容器中的環境變量 - name: str 變量的名字 value: "hello world” 變量的值 command: ["/bin/bash", "-c"] 覆蓋容器中的Entrypoint,對應Dockefile中的ENTRYPOINT args: ["/bin/echo", "$(str)"] 對應Dockerfile中CMD參數 |
健康監測還支持另外一種方法:
| 1 2 3 4 5 6 | exec: 執行命令的方法進行監測,如果其退出碼不為0,則認為容器正常 command: - cat - /tmp/health initialDelaySeconds: 15 timeoutSeconds: 1 |
?
ReplicationController的語法參數
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | apiVersion: v1 kind: ReplicationController metadata: name: nginx spec: replicas: 2 指定rc中pod的個數 template: 指定rc中pod的模板,rc中的pod都是按照這個模板來創建的 metadata: 指定rc中pod的元數據,注意這里不需要在指定pod的名字,它由rc復制生成 labels: app: nginx spec: container: - name: nginx image: nginx |
Service
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | apiVersion: v1 kind: Service metadata: name: nginxsvc labels: app: nginx spec: 指定Service中的內容 ports: 映射列表 - port: 80 service的端口 porotocal: TCP 映射的協議類型,支持TCP/UDP targetPort: 80 映射到pod的端口 name: www.baidu.com 該映射的名字 selector: 匹配器 port: 80 app: nginx 匹配label中app為nginx,port為80的pod |
Secret
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | apiVersion: v1 kind: Secret metadata: name: mysecret type: 0paque 定義secret的類型,這里支持三種類型 password: xxx|base64 以key/value的形式定義,value需要經過base64編碼才可以,在secret被掛載到container中后,會以key作為文件名,value的值經過base64解碼作為內容,以文件的形式存在于container中 username: xxx|base64 --- type: kubernetes.io/service-account-token 第二種secret類型,用作創建服務賬號的token,用作進程間通信的認證 --- type: kubernetes.io/dockercfg 第三種secret類型,用作在創建container,對docker registry的認證 data: .dockercfg: `cat ~/.dockercfg | base64` |
以上為部分資源參數,當然還有更多的參數可以指定,及更多的資源可以通過定義construct來創建。
轉載于:https://www.cnblogs.com/davygeek/p/6432154.html
總結
以上是生活随笔為你收集整理的Kubernetes资源创建yml语法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓后台进程限制标准是多少?
- 下一篇: 安卓版本高低有什么明显的区别?