赞
踩
- apiVersion: v1
- kind: Pod
- metadata:
- name: javaweb-2
- spec:
- initContainers:
- - image: geektime/sample:v2
- name: war
- command: ["cp", "/sample.war", "/app"]
- volumeMounts:
- - mountPath: /app
- name: app-volume
- containers:
- - image: geektime/tomcat:7.0
- name: tomcat
- command: ["sh","-c","/root/apache-tomcat-7.0.42-v2/bin/start.sh"]
- volumeMounts:
- - mountPath: /root/apache-tomcat-7.0.42-v2/webapps
- name: app-volume
- ports:
- - containerPort: 8080
- hostPort: 8001
- volumes:
- - name: app-volume
- emptyDir: {}

- apiVersion: v1
- kind: Pod
- ...
- spec:
- nodeSelector:
- disktype: ssd
- apiVersion: v1
- kind: Pod
- ...
- spec:
- hostAliases:
- - ip: "10.1.2.3"
- hostnames:
- - "foo.remote"
- - "bar.remote"
- ...
- apiVersion: v1
- kind: Pod
- metadata:
- name: nginx
- spec:
- shareProcessNamespace: true
- containers:
- - name: nginx
- image: nginx
- - name: shell
- image: busybox
- stdin: true
- tty: true
- apiVersion: v1
- kind: Pod
- metadata:
- name: nginx
- spec:
- hostNetwork: true
- hostIPC: true
- hostPID: true
- containers:
- - name: nginx
- image: nginx
- - name: shell
- image: busybox
- stdin: true
- tty: true
- apiVersion: v1
- kind: Pod
- metadata:
- name: lifecycle-demo
- spec:
- containers:
- - name: lifecycle-demo-container
- image: nginx
- lifecycle:
- postStart:
- exec:
- command: ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]
- preStop:
- exec:
- command: ["/usr/sbin/nginx","-s","quit"]
- apiVersion: v1
- kind: Pod
- metadata:
- name: test-projected-volume
- spec:
- containers:
- - name: test-secret-volume
- image: busybox
- args:
- - sleep
- - "86400"
- volumeMounts:
- - name: mysql-cred
- mountPath: "/projected-volume"
- readOnly: true
- volumes:
- - name: mysql-cred
- projected:
- sources:
- - secret:
- name: user
- - secret:
- name: pass

- $ cat ./username.txt
-
- admin
- $ cat ./password.txt
- c1oudc0w!
- $ kubectl create secret generic user --from-file=./username.txt
- $ kubectl create secret generic pass --from-file=./password.txt
$ kubectl get secrets
- apiVersion: v1
- kind: Secret
- metadata:
- name: mysecret
- type: Opaque
- data:
- user: YWRtaW4=
- pass: MWYyZDFlMmU2N2Rm
- $ echo -n 'admin' | base64
- YWRtaW4=
- $ echo -n '1f2d1e2e67df' | base64
- MWYyZDFlMmU2N2Rm
-
- #解码输出
- echo -n "str" | base64 -d
$ kubectl create -f test-projected-volume.yaml
- $ kubectl exec -it test-projected-volume -- /bin/sh
- $ ls /projected-volume/
- user
- pass
- $ cat /projected-volume/user
- root
- $ cat /projected-volume/pass
- 1f2d1e2e67df
- $ cat example/ui.properties
- color.good=purple
- color.bad=yellow
- allow.textmode=true
- how.nice.to.look=fairlyNice
- # 从.properties文件创建ConfigMap
- $ kubectl create configmap ui-config --from-file=example/ui.properties
- # 查看这个ConfigMap里保存的信息(data)
- $ kubectl get configmaps ui-config -o yaml
- apiVersion: v1
- data:
- ui.properties: |
- color.good=purple
- color.bad=yellow
- allow.textmode=true
- how.nice.to.look=fairlyNice
- kind: ConfigMap
- metadata:
- name: ui-config
- ...

- apiVersion: v1
- kind: Pod
- metadata:
- name: test-downwardapi-volume
- labels:
- zone: us-est-coast
- cluster: test-cluster1
- rack: rack-22
- spec:
- containers:
- - name: client-container
- image: k8s.gcr.io/busybox
- command: ["sh", "-c"]
- args:
- - while true; do
- if [[ -e /etc/podinfo/labels ]]; then
- echo -en '\n\n'; cat /etc/podinfo/labels; fi;
- sleep 5;
- done;
- volumeMounts:
- - name: podinfo
- mountPath: /etc/podinfo
- readOnly: false
- volumes:
- - name: podinfo
- projected:
- sources:
- - downwardAPI:
- items:
- - path: "labels"
- fieldRef:
- fieldPath: metadata.labels

- $ kubectl create -f dapi-volume.yaml
- $ kubectl logs test-downwardapi-volume
- cluster="test-cluster1"
- rack="rack-22"
- zone="us-est-coast"
- apiVersion: v1
- kind: Pod
- metadata:
- labels:
- test: liveness
- name: test-liveness-exec
- spec:
- containers:
- - name: liveness
- image: busybox
- args:
- - /bin/sh
- - -c
- - touch /tmp/healthy; sleep 30; rm -rf /tmp/healthy; sleep 600
- livenessProbe:
- exec:
- command:
- - cat
- - /tmp/healthy
- initialDelaySeconds: 5
- periodSeconds: 5

- ...
- livenessProbe:
- httpGet:
- path: /healthz
- port: 8080
- httpHeaders:
- - name: X-Custom-Header
- value: Awesome
- initialDelaySeconds: 3
- periodSeconds: 3
- ...
- livenessProbe:
- tcpSocket:
- port: 8080
- initialDelaySeconds: 15
- periodSeconds: 20

- cat preset.yaml
- apiVersion: settings.k8s.io/v1alpha1
- kind: PodPreset
- metadata:
- name: allow-database
- spec:
- selector:
- matchLabels:
- role: frontend
- env:
- - name: DB_PORT
- value: "6379"
- volumeMounts:
- - mountPath: /cache
- name: cache-volume
- volumes:
- - name: cache-volume
- emptyDir: {}

- $ kubectl create -f preset.yaml
- $ kubectl create -f pod.yaml
- $ kubectl get pod website -o yaml
- apiVersion: v1
- kind: Pod
- metadata:
- name: website
- labels:
- app: website
- role: frontend
- annotations:
- podpreset.admission.kubernetes.io/podpreset-allow-database: "resource version"
- spec:
- containers:
- - name: website
- image: nginx
- volumeMounts:
- - mountPath: /cache
- name: cache-volume
- ports:
- - containerPort: 80
- env:
- - name: DB_PORT
- value: "6379"
- volumes:
- - name: cache-volume
- emptyDir: {}
-

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。