- #列出环境内所有的pv 并以 name字段排序(使用kubectl自带排序功能)
kubectl get pv --sort-by=.metadata.name
考点:kubectl命令熟悉程度
- 列出指定pod的日志中状态为Error的行,并记录在指定的文件上
kubectl logs <podname> | grep bash > /opt/KUCC000xxx/KUCC000xxx.txt
考点:Monitor, Log, and Debug
- 列出k8s可用的节点,不包含不可调度的 和 NoReachable的节点,并把数字写入到文件里
#笨方法,人工数
kubectl get nodes
#CheatSheet方法,应该还能优化JSONPATH
JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}' \ && kubectl get nodes -o jsonpath="$JSONPATH" | grep "Ready=True"
考点:kubectl命令熟悉程度
参考:kubectl cheatsheet
- 创建一个pod名称为nginx,并将其调度到节点为 disk=stat上
#我的操作,实际上从文档复制更快
kubectl run nginx --image=nginx --restart=Never --dry-run > 4.yaml
#增加对应参数
vi 4.yaml
kubectl apply -f 4.yaml
apiVersion: v1 kind: Pod metadata: name: nginx labels: env: test spec: containers: - name: nginx image: nginx imagePullPolicy: IfNotPresent nodeSelector: disktype: ssd
考点:pod的调度。
参考:assign-pod-node
- 提供一个pod的yaml,要求添加Init Container,Init Container的作用是创建一个空文件,pod的Containers判断文件是否存在,不存在则退出
apiVersion: v1 kind: Pod metadata: name: nginx spec: containers: - name: apline image: nginx command: ['sh', '-c', 'if [目录下有work文件];then sleep 3600; else exit; fi;'] ###增加init Container#### initContainers: - name: init image: busybox command: ['sh', '-c', 'touch /目录/work;']
考点:init Container。一开始审题不仔细,以为要用到livenessProbes
参考:init-containers
- 指定在命名空间内创建一个pod名称为test,内含四个指定的镜像nginx、redis、memcached、busybox
kubectl run test --image=nginx --image=redis --image=memcached --image=buxybox --restart=Never -n <namespace>