CKAD模拟题:26-SecurityContext 安全上下文
题目要求在 test 命名空间,有一个名为 secnginx 的 pod,修改此 pod,为容器添加CAP_NET_ADMIN 和 CAP_SYS_TIME 权能
参考https://kubernetes.io/zh-cn/docs/tasks/configure-pod-container/security-context/#set-capabilities-for-a-container
123456789101112# 参考apiVersion: v1kind: Podmetadata: name: security-context-demo-4spec: containers: - name: sec-ctx-4 image: gcr.io/google-samples/node-hello:1.0 securityContext: capabilities: add: ["NET_ADMIN", "SYS_TIME"]
解答12345678910111213141516171819202122 ...
CKAD模拟题:25-资源配额Quota
题目要求在 qutt 命名空间,创建一个名为 myquota 的 Quota,该资源 Quota 具有 1 个CPU, 1G 内存和 2个 pod的硬限制。
参考https://kubernetes.io/zh-cn/docs/concepts/policy/resource-quotas/#viewing-and-setting-quotas
解答1234567891011121314151617181920212223242526272829# 创建一个nskubectl create ns qutt# 创建一个容器podkubectl create quota myquota --hard=count/pods=2 --namespace=qutt --dry-run=client -o yaml > 25-resource-quota.yaml# 修改配置vim 25-resource-quota.yamlapiVersion: v1kind: ResourceQuotametadata: creationTimestamp: null name: myquota ...
CKAD模拟题:24-sidecar 边车容器
题目要求
在 default 命名空间创建一个 deployment 名为 deploymenb-web
包含一个主容器 lfccncf/busybox:1 ,名称 logger-123
包含一个边车容器 lfccncf/fluentd:v0.12 ,名称 adaptor-dev
在两个容器上挂载一个共享卷 /ckad/log ,当 pod 删除 ,这个卷 不会持久 。
在 logger-123 容器运行以下命令:
123while true; doecho "i luv cncf" >> /ckad/log/input.log; sleep 10;done
结果会文本输出到 /ckad/log/input.log ,格式示例如下:
i luv cncf
i luv cncf
i luv cncf
adaptor-dev 容器读取 /ckad/log/input.log ,并将数据输出到 /ckad/log/output 格式为 Fluentd JSON
请注意 :完成此任务不需要了解 Fluentd , 完成此任务所需要的知识 .从/c ...
CKAD模拟题:23-PV/PVC的使用
题目要求
在 node02 节点上创建一个文件 /opt/KDSP00101/data/index.html ,内容为 WEPKEY=7789
使用 hostPath 创建一个名为 task-pv-volume 的 PersistentVolume ,并分配 2Gi 容量,指定该卷位于集群节点上的 /opt/KDSP00101/data ,访问模式 ReadWriteOnce 。它应该为 PersistentVolume 定义 StorageClass 名称为 keys ,它将被用来绑定 PersistentVolumeClaim 请求到这个 PersistenetVolume 。
创建一个名为 task-pv-claim 的 PersistentVolumeClaim ,请求容量 200Mi ,并指定访问模式 ReadWriteOnce
创建一个 pod,使用 PersistentVolmeClaim 作为一个卷,带有一个标签 app:my-storage-app ,将卷挂载到 pod 内的 /usr/share/nginx/html
参考https://kubernetes. ...
CKAD模拟题:22-Deployment 修改镜像
题目要求在 namespace default中的一个 Deployment 由于指定了错误的容器镜像而失败。找出此 Deployment 并修复问题
参考1kubectl --help
解答12345678# 查看default namespace空间下的所有资源信息,找到失败的deploymentkubectl -n default get all# 发现 deploy-nk8s 出现了错误,描述看下pod拉取镜像的错误kubectl -n default describe pod deploy-nk8s-58b86cdc9c-9vzp9# 修改deployment,将错误的image修改正确kubectl -n default edit deployments.apps deploy-nk8s# 这里只要修改为nginx即可
CKAD模拟题:21-Service , Configmap , Sidecar
题目要求
更新在 namespace default 中的 Service nginxsvc 来暴露端口 9090 。
在 namespace default 中创建一个名为 haproxy-config 并存储着的**/ckad/ambassador/haproxy.cfg** 的内容的 ConfigMap。
更新在 namespace default 中名为 poller 的 Pod:
首先,添加一个使用 haproxy:lts 镜像、暴露端口 80 并名为 ambassador-container 的 ambassador 容器(sidecar模式)。
最后,ConfigMap haproxy-config 要挂载到 ambassador 容器 ambassador-container 的**/usr/local/etc/haproxy/**目录。
参考https://kubernetes.io/zh-cn/docs/concepts/configuration/configmap/
https://kubernetes.io/docs/reference/kubectl ...
CKAD模拟题:20-Ingress-2
题目要求在namespace ingress-kk下有一个 ingress ,但是它貌似不能被正常访问请排除出原因,并修复。
参考https://kubernetes.io/zh-cn/docs/concepts/services-networking/service/
https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#expose
1234567891011121314# 参考官方示例apiVersion: v1kind: Servicemetadata: name: my-servicespec: selector: app.kubernetes.io/name: MyApp ports: - protocol: TCP port: 80 targetPort: 9376# 或者kubectl expose -h
解答123456789101112131415161718192021222324252627# 查看 **ingress-kk nam ...
CKAD模拟题:19-Ingress排错 - 1
题目要求在namespace ingress-ckad 下,有 deployment service ingress 三个资源已经部署好了, 但是他们的配置有问题,导致的ingress 网络不通。
3个资源的配置清单在目录 /ckad/CKAD202206 中 ,请将其修改为正确的,并重新创建。
参考https://kubernetes.io/zh-cn/docs/concepts/services-networking/ingress/
解答123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263# 查看配置,进行修改vim /ckad/CKAD202206/ingress.yamlapiVersion: apps/v1kind: Deploymentmetadata: name: nginx-dm namespace: ingress-ckadspec: replicas: 2 selector: ...
CKAD模拟题:18-NetworkPolicy 网络策略
题目要求更新在namespace ckad00018 中的 Pod ckad00018-newpod
使其使用一个只允许此 Pod 与 Pod front 和 db 之间收发流量的 Networkpolicy 。
参考https://kubernetes.io/zh-cn/docs/concepts/services-networking/network-policies/
解答1234567891011# 查看pod 和networkpolicykubectl -n ckad00018 get pod --show-labelskubectl -n ckad00018 get networkpolicies --show-labels# 查看networkpolicy 的 podselectorkubectl -n ckad00018 get networkpolicies access-db -oyaml | grep -i -A3 podselectorkubectl -n ckad00018 get networkpolicies access-front -oyaml | g ...
CKAD模拟题:17-更新 Deployment 并暴露 Service
题目要求
首先 更新在 namespace ckad00017 中的 Deployment ckad00017-deployment :
以使其运行 5 个 Pod 的副本
将以下标签添加到 Pod tier: dmz
然后 在 namespace ckad00017 中创建一个名为 rover 的 NodePort Service 以在 TCP 端口 81 上公开 Deployment ckad00017-deployment
参考https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#expose
解答1234567891011121314151617181920212223# 1.1 扩容副本数到5kubectl -n **ckad00017 scale deployment ckad00017-deployment --replicas=5# 1.2 添加标签kubectl -n ckad00017 get deployments.apps -oyaml > 17.yamlkub ...