pod管理
Pod
拉取镜像
docker load -i nginx-latest.tar.gz
docker load -i busybox-latest.tar.gz
vim test.yml
vim test.yml
查看所有命名空间里的pod
[root@master ~]# kubectl get pods -A
查看所有pod的详细信息
[root@master ~]# kubectl get pods -A -o wide
如何直接运行:run的方式
apiVersion: v1
kind: Pod
metadata:labels:run: timingleename: ziyuan
spec:containers:- image: myapp:v1name: myappresources:limits:cpu: 500mmemory: 100Mrequests:cpu: 500mmemory: 100M
Pod 高级配置:调度、网络与初始化
节点调度控制使用
apiVersion: v1
kind: Pod
metadata:labels:run: timingleename: test1
spec:nodeSelector:kubernetes.io/hostname: k8s-node1restartPolicy: Alwayscontainers:- image: myapp:v1name: myapp
网络模式配置
apiVersion: v1
kind: Pod
metadata:labels:run: timingleename: test1
spec:hostNetwork: truerestartPolicy: Alwayscontainers:- image: busybox:latestname: busyboxcommand: ["/bin/sh", "-c", "sleep 100000"]
验证网络
初始化容器配置 initContainers
:
apiVersion: v1
kind: Pod
metadata:labels:run: init-examplename: init-example
spec:containers:- image: reg.timinglee.org/library/myapp:v1name: init-exampleinitContainers:- name: init-myserviceimage: busyboxcommand: ["sh", "-c", "until test -e /testfile; do echo waiting for myservice; sleep 2; done"]
手动触发初始化完成:
kubectl exec init-example -c init-myservice -- touch /testfile
Pod 健康检查:存活与就绪探针
存活探针示例
apiVersion: v1
kind: Pod
metadata:labels:run: livenessname: liveness
spec:containers:- image: myapp:v1name: myapplivenessProbe:tcpSocket:port: 8080initialDelaySeconds: 3periodSeconds: 1timeoutSeconds: 1
就绪探针示例
apiVersion: v1
kind: Pod
metadata:labels:run: readinessname: readiness
spec:containers:- image: myapp:v1name: myappreadinessProbe:httpGet:path: /test.htmlport: 80initialDelaySeconds: 1periodSeconds: 3timeoutSeconds: 1
[root@master ~]# kubectl describe services
#没有暴漏端口,就绪探针探测不满足暴漏条件
[root@master ~]# kubectl exec pods/readiness -c myapp -- /bin/sh -c "echo test > /usr/share/nginx/html/test.html"
[root@master ~]# kubectl describe services