CKA题库
1. 创建一个pod名称为nginx,并将其调度到节点为 disk=stat上
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
env: test
spec:
containers:
- name: nginx
image: nginx
imagePullPolicy: IfNotPresent
nodeSelector:
disktype: ssd
2. 创建一个Pod名称为nginx-app,镜像为nginx,并根据pod创建名为nginx-app的Service,type为NodePort
kubectl run nginx-app --image=nginx
之后创建service
apiVersion: v1
kind: Service
metadata:
name: nginx-app
spec:
selector:
run: nginx-app
ports:
- name: http
protocol: TCP
port: 80
targetPort: 9376
- name: https
protocol: TCP
port: 443
targetPort: 9377
type: NodePort
3. 将deployment为nginx-app的副本数从1变成4。
#方法1
kubectl scale --replicas=4 deployment nginx-app
#方法2,使用edit命令将replicas改成4
kubectl edit deploy nginx-app
4. 监控 Pod bar 的日志,并提取与错误 file-not-found 相对应的日志行,将这些日志行写入 /opt/dir/bar
kubectl logs <podname> | grep Error > /opt/
考点:Monitor, Log, and Debug
5. 按 capacity 排序列出所有 persistent volumes, 将完整的 kubectl 输出保存到
/
opt/dir/volume_list
kubectl get pv --sort-by='{spec.capacity.storage}'
考点:kubectl 命令熟悉程度
6. 列出环境内所有的 pv 并以 name 字段排序(使用 kubectl 自带排序功能)
kubectl get pv --sort-by=.metadata.name
考点:kubectl 命令熟悉程度
7. 按如下要求创建一个 Pod:
名称:jenkins
使用 image: jenkins
在名为 website-frontend 的新 kubernetes namespace 中
# 方法一: 通过命令创建
kubectl run jenkins --image=jenkins --namespace=website-frontend --replicas=1 --generator=run-pod/v1 --labels=app=jenkins --dry-run -o yaml
# 方法二: 编写yaml
apiVersion: v1
kind: Pod
nameSpace: website-frontend
metadata:
name: jenkins
spec:
containers:
- name: jenkins
image: jenkins
8. 按如下要求创建一个 Pod:
redis doc名称:non-persistent-redis
Container image: redis
Persistent volume name: cache-control
Mount Path: /data/redis
应在 staging namespace 中发布,且该 volume 必须不能是永久的。
apiVersion: v1
kind: Pod
metadata:
name: non-persistent-redis
namespace: staging
spec:
containers:
- name: non-persistent-redis
image: redis
volumeMounts:
- name: cache-control
mountPath: /data/redis
volumes:
- name: cache-control
emptyDir: {}
考点:Volume、emptdir
9. 确保在 Kubernetes cluster 的每个 node 上都运行 pod nginx 的一个实例,此处,nginx 也表示必须使用的 image 名称。切勿覆盖当前存在的任何 taint。
使用 DaemonSet 完成此任务,并使用 ds-kubesc12345 作为 DaemonSet 名称。apiVersion: apps/v1
kind: DaemonSet
metadata:
name: ds-kubesc12345
annotations:
wocao: wuqing
labels:
app: ds-kubesc12345
spec:
selector:
matchLabels:
name: ds-kubesc12345
template:
metadata:
labels:
name: ds-kubesc12345
spec:
containers:
- name: ds-kubesc12345
image: busybox
command:
-
sh
tolerations:
- key: node-role.kubernetes.io/master
effect: NoSchedule
另外:建议直接先创建一个 deployment 然后修改 yaml 使其成为 daemonset 编排(注意删除 replicas 和其他不必要字段字段)
kubectl run ds-kubesc12345 --image nginx --image-pull-policy IfNotPresent --dry-run -o yaml
考点:DaemonSet
10. 按如下要求创建一个 Deployment:
Name: nginx-app
Image: nginx
ImageTag: 1.10.2-alpine
Replicas: 3
然后,执行滚动更新,使用新版本 1.11.13-alpine 部署应用并记录此更新。
最后,将此更新回滚至之前版本 1.10.2-alpine
kubectl run nginx-app --image=nginx:1.10.2-alpine
kubectl set image deployment nginx-app nginx-app=nginx:1.11.13-alpine --record
# 直接回滚到上一个版本
kubectl rollout undo deployment nginx-app
kubectl rollout status -w deployment nginx-app
# 通过查看历史记录回滚到指定版本
kubectl rollout history deploy/nginx
kubectl rollout undo deploy/nginx --to-revision=2
考点:资源的更新
11. 创建一个 Deployment 的 spec 文件:
Image: nginx
Replicas: 4
Label: app_env_stage=prod
Name: kual12345
将此 spec 文件的副本保存至 /opt/dir/deployment_spec.yaml (或 .json)。
完成后,清理(删除)执行此任务时生成的任何新 Kubernetes API 对象。
kubectl run kual12345 --image nginx --replicas 4 --labels app_env_stage=prod --dry-run -o yaml
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论