k8s-cka考试题库

本次测试的所有问题都必须在指定的cluster配置环境中完成。为尽量减少切换,系统已对问题进行分组,同一cluster内的所有问题将连续显示。

file

开启TAB补全

做题前先配置k8s自动补齐功能,否则无法TAB补全命令:

登陆管理节点

kubectl --help | grep bash,此步是为了找关键词completion

sudo vim /etc/profile

添加source <(kubectl completion bash)

file


5.保存退出,source /etc/profile

1.4% k8s - 设置配置环境 kubectl config use-context k8s Context - 为部署管道创建一个新的 ClusterRole 并将其绑定到范围为特定 namespace 的特定 ServiceAccount

创建一个名字为 deployment-clusterrole 且仅允许创建以下资源类型的新ClusterRole:

Deployment

StatefulSet

DaemonSet

在现有的 namespace app-team1 中创建有个名为 cicd-token 的新 ServiceAccount

限 于 namespace app-team1 , 将 新 的 ClusterRole deployment-clusterrole 绑 定 到 新 的 ServiceAccount cicd-token。

解答: 1.kubectl create clusterrole deployment-clusterrole --verb=create --resource=Deployment,StatefulSet,DaemonSet 2.kubectl create serviceaccount cicd-token -n app-team1 3.kubectl create rolebinding xxx(随便起名字) --clusterrole=deployment-clusterrole --serviceaccount=cicd-token:app-team1 -n app-team1 2.4% ek8s - 设置配置环境 kubectl config use-context ek8s - 将名为 ek8s-node-0 (vms25)的 node 设置为不可用,并重新调度该 node 上所有运行的 pods 解答:

kubectl drain vms25.rhce.cc --ignore-daemonsets

file

3.7% mk8s - 设置配置环境 kubectl config use-context mk8s - 现有的 kubernetes 集群正在运行的版本是 1.21.0。仅将主节点上的所有 kubernetes 控制平面 和节点组件升级到版本 1.21.1。 - 另外,在主节点上升级 kubelet 和 kubectl。 [start-plane type="4"]确保在升级前 drain 主节点,并在升级后 uncordon 主节点。请不要升级工作节点,etcd,container管理器,CNI 插件,DNS服务或任何其他插件。[/start-plane]--etcd-upgrade=false kubeadm upgrade apply 1.21.1 --etcd-upgrade=false 解答:

1.登陆官网k8s.io,可以右上角更换语言,点击Learn Kubernetes Basics
2.搜索upgrade

file


3.开始升级,步骤官方文档中都有步骤,步骤如下:

kubectl config use-context mk8s kubectl get nodes ssh vms28(28为mk8s的控制平面节点) sudo su - (需用root用户执行下方命令)

apt-get update && \ apt-get install -y --allow-change-held-packages kubeadm=1.21.1-00 (安装kubeadm包)

kubeadm upgrade apply v1.21.1 –etcd-upgrade=false(题中提示etcd不被升级,所以加后面的参数) kubectl drain vms28.rhce.cc --ignore-daemonsets (升级kubelet和kubectl前腾空节点,官方文档中流程都有,看着修改就好)

apt-get update && \ apt-get install -y --allow-change-held-packages kubelet=1.21.1-00 kubectl=1.21.1-00(安装kubelet和kubectl包)

systemctl daemon-reload systemctl restart kubelet kubectl uncordon vms28.rhce.cc 4.7%

此项目无需更改配置环境

首 先 为 运 行 在 https://127.0.0.1:2379 上 的 现 有 etcd 实 例 创 建 快 照 并 将 快 照 保 存 到 /srv/data/etcd-snapshot.db。

为给定实例创建快照预计能在几秒钟内完成。如果该操作似乎挂起,则命令可能有问题。用 ctrl+c 来取消操作,然后重试。

然后还原位于/srv/data/etcd-snapshot-previous.db 的现有先前快照.

提供了一下 TLS 证书和密钥,以通过 etcdctl 连接到服务器。 CA 证书:/opt/KUIN00601/ca.crt 客户端证书: /opt/KUIN00601/etcd-client.crt 客户端密钥:/opt/KUIN00601/etcd-client.key

解答: 使用root账户操作

etcdctl –help 查看是否有snapshot命令,有是版本3无为版本2

若是2.则手动导入3

export ETCDCTL_API=3
不知道命令怎么写可以etcdctl snapshot save --help
主要三个参数为:-–cacert,--cert,--key

1.保存etcd实例快照:

考试环境:

#etcdctl snapshot save -–cacert=”/opt/KUIN00601/ca.crt” --cert=” /opt/KUIN00601/etcd-client.crt” --key=”/opt/KUIN00601/etcd-client.key” -- /srv/data/etcd-snapshot.db

练习环境:

#etcdctl snapshot save /srv/data/etcd-snapshot.db 2.还原快照

考试环境:

#etcdctl snapshot restore –cacert=”/opt/KUIN00601/ca.crt” --cert=” /opt/KUIN00601/etcd-client.crt” --key=”/opt/KUIN00601/etcd-client.key” /srv/data/etcd-snapshot.db

练习环境:

#etcdctl snapshot restore /srv/data/etcd-snapshot.db 5.7% k8s

设置配置环境 kubectl config use-context k8s

在 internal 命名空间创建一个名为 allow-port-from-namespace 的确保新的 NetworkPolicy 允 许 namespace internal 中的 Pods 来连接到 namespace big-corp 中的端口 9200。

确保新的 NetworkPolicy:

不允许对没有在监听端口 9200 的 pods 访问

不允许不来自 namespace internal 的 pods 的访问

解答:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zzwzdd.html