2020年11⽉最新的CKA原题及考点分析(中⽂)
相对9⽉之前的题最⼤的差别就是题量和考试时间都缩⽔了,每个题⽬的分值提⾼了,最⾼⼀个题13分(不过还算容易),时间2个⼩时,题量17个题⽬。话不多说看看庐⼭真⾯⽬吧(我选的是中⽂考试,感觉有些中翻译过的题⼲反倒看得有点别扭)。
考试环境中⼀共有⼀下的context,考试做题的时候务必别忘了切换每个题⽬的context
1、Context k8s
为部署管道创建⼀个新的ClusterRole并将其绑定到范围为特定的 namespace 的特定ServiceAccount。
Task
创建⼀个名为deployment-clusterrole且仅允许创建以下资源类型的新ClusterRole:
Deployment
StatefulSet
DaemonSet
nodeselector在现有的 namespace app-team1中创建⼀个名为cicd-token的新 ServiceAccount。限于 namespace app-team1,将新的ClusterRole deployment-clusterrole绑定到新的 ServiceAccount cicd-token
考点:RABC授权模型的理解。
kubectl create clusterrole deployment-clusterrole --verb=create --resource=deployments,statefulsets,daemonsets
kubectl create serviceaccount cicd-token --namespace=default
kubectl create rolebinding deployment-clusterrole --clusterrole=deployment-clusterrole --serviceaccount=default:cicd-token --namespace=default
2、将名为 ek8s-node-1 的 node 设置为不可⽤,并重新调度该 node 上所有运⾏的 pods
考点:cordon和drain 命令的使⽤
$ kubectl cordon ek8s-node-1
$ kubectl drain ek8s-node-1 --force
3、现有的Kubernetes 集正在运⾏版本1.18.8。仅将主节点上的所有 Kubernetes控制平⾯和节点组件升级到版本1.19.0。
另外,在主节点上升级kubelet和kubectl。
确保在升级之前 drain 主节点,并在升级后 uncordon 主节点。 请不要升级⼯作节点,etcd,container 管理器,CNI插件, DNS服务或任何其他插件。
考点:如何离线主机,并升级控制⾯板和升级节点
kubectl drain <cp-node-name> --ignore-daemonsets
sudo kubeadm upgrade apply v1.19.0
yum install -y kubelet-1.19.0 kubectl-1.19.0 --disableexcludes=kubernetes
sudo systemctl daemon-reload
sudo systemctl restart kubelet
kubectl uncordon <cp-node-name>
--升级节点
sudo kubeadm upgrade node
yum install -y kubelet-1.19.0 kubectl-1.19.0 --disableexcludes=kubernetes
sudo systemctl daemon-reload
sudo systemctl restart kubelet
4、此项⽬⽆需更改配置环境。问题权重: 7%
Task
为给定实例创建快照预计能在⼏秒钟内完成。 如果该操作似乎挂起,则命令可能有问题。⽤ + 来取消操作,然后重试。
然后还原位于/data/backup/etcd-snapshot-previous.db的现有先前快照。
提供了以下TLS证书和密钥,以通过etcdctl连接到服务器。
CA 证书: /opt/
客户端证书: /opt/
客户端密钥: /opt/KUIN00601/etcd-client.key
考点:etcd的备份和还原命令
ETCDCTL_API=3 etcdctl --endpoints $ENDPOINT snapshot save/restore snapshotdb --cert=/opt/ --key=/opt/KUIN00601/etcd-client.key --cacert=/opt/
5、设置配置环境:问题权重: 7%
kubectl config use-context hk8s
Task
创建⼀个名为allow-port-from-namespace的新NetworkPolicy,以允许现有 namespace corp-net中的 Pods 连接到同⼀ namespace 中其他 Pods 的端⼝ 9200。
确保新的NetworkPolicy:
不允许对没有在监听端⼝9200的Pods的访问
不允许不来⾃ namespacecorp-net的Pods的访问
考点:NetworkPolicy 的创建
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: all-port-from-namespace
namespace: internal
spec:
podSelector:
matchLabels: {}
ingress:
- from:
- namespaceSelector:
matchLabels:
name: namespacecorp-net
- podSelector: {}
ports:
- port: 9000
6、设置配置环境:问题权重: 7%
kubectl config use-context k8s
Task请重新配置现有的部署front-end以及添加名为http的端⼝规范来公开现有容器 nginx 的端⼝80/tcp。
创建⼀个名为front-end-svc的新服务,以公开容器端⼝http。
配置此服务,以 通过在排定的节点上的 NodePort 来公开各个 Pods
考点:将现有的deploy暴露成nodeport的service。
$ kubectl expose deployment front-end --name=front-end-svc --port=80 --tarport=80 --type=NodePort 7、问题权重: 7%设置配置环境:
kubectl config use-context k8s
Task
如下创建⼀个新的nginx Ingress资源:
名称: ping
Namespace: ing-internal
使⽤服务端⼝ 5678在路径 /hello 上公开服务 hello
可以使⽤以下命令检查服务 hello的可⽤性,该命令应返回 hello:
curl -kL <INTERNAL_IP>/hello
考点:Ingress的创建
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ping
namespace: ing-internal
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
-
http:
paths:
- path: /hello
pathType: Prefix
backend:
service:
name: hello
port:
number: 5678
8、设置配置环境:问题权重: 4%
kubectl config use-context k8s
Task
将 deployment 从 presentation 扩展⾄ 6 pods
考点:kubectl scale 命令
$ kubectl scale --replicas=6 deployment/loadbalancer 9、设置配置环境:问题权重: 4%
kubectl config use-context k8s
Task
按如下要求调度⼀个 pod:
名称:nginx-kusc00401
Image:nginx
Node selector:disk=spinnin
考点:nodeSelect属性的使⽤
apiVersion: v1
kind: Pod
metadata:
name: nginx-kusc00401
labels:
role: nginx-kusc00401
spec:
nodeSelector:
disk: spinnin
containers:
- name: nginx
image: nginx
10、设置配置环境:问题权重: 4%
kubectl config use-context k8s
Task
检查有多少 worker nodes 已准备就绪(不包括被打上 Taint:NoSchedule 的节点), 并将数量写⼊
/opt/
考点:检查节点⾓⾊标签,状态属性,污点属性的使⽤
$ kubectl describe nodes <nodeName> | grep -i taints | grep -i noSchedule
11、设置配置环境:问题权重: 4%
kubectl config use-context k8s
Task
创建⼀个名为 kucc8 的 pod,在 pod ⾥⾯分别为以下每个 images 单独运⾏⼀个 app container(可能会有 1-4 个 images):nginx + redis + memcached + consul
考点:pod概念
apiVersion: v1
kind: Pod
metadata:
name: kucc1
spec:
containers:
- image: nginx
name: nginx
- image: redis
name: redis
- image: memchached
name: memcached
- image: consul
name: consul
12、设置配置环境:问题权重: 4%
kubectl config use-context hk8s
Task
创建名为 app-config 的 persistent volume,容量为 1Gi,访问模式为 ReadWriteMany。 volume 类型为 hostPath,位于 /srv/app-config
考点:hostPath类型的pv
apiVersion: v1
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论