创想云教育2021年最新CKA题库1.20版本
2021 最新考试集群为 1.20 版本,只有第三题和第十题发生了变化
第一题:RBAC
kubectl create clusterrole deployment-clusterrole --verb=create --resource=deployments,statefulsets,daemonsets
淘宝店名:国际认证大师 网址:https://imaws.taobao.com 微信:ANYPASS
kubectl create namespace app-team1
kubectl -n app-team1 create serviceaccount cicd-token
kubectl -n app-team1 create rolebinding cicd-token-binding --clusterrole=deployment-clusterrole --serviceaccount=app-team1:cicd-token
kubectl -n app-team1 describe rolebindings.rbac.authorization.k8s.io cicd-token-binding
第二题:指定 node 设置为不可用
将名为 ek8s-node-1 的 node 设置为不可用,并且重新调度该 node 上所有允许的 pods
$ kubectl cordon ek8s-node-1
$ kubectl drain ek8s-node-1 --delete-local-data --ignore-daemonsets --force
淘宝店名:国际认证大师 网址:https://imaws.taobao.com 微信:ANYPASS
淘宝店名:国际认证大师 网址:https://imaws.taobao.com 微信:ANYPASS
第三题:升级 kubernetes 节点
ps: 1.20 版本要求从 1.20.0 升级到 1.20.1
现有的 Kubernetes 集权正在运行的版本是 1.18.8,仅将主节点上的所有 kubernetes 控制面板和组件
升级到版本 1.19.0
另外,在主节点上升级 kubelet 和 kubectl
$ kubectl config use-context mk8s
$ kubectl get node
$ kubectl cordon mk8s-master-1
$ kubectl drain mk8s-master-1 --delete-local-data --ignore-daemonsets --force
$ ssh mk8s-master-1
$ sudo -i
# apt-get install -y kubeadm=1.20.1-00
# kubeadm version
# kubeadm upgrade plan
# kubeadm upgrade apply v1.20.1 --etcd-upgrade=false
淘宝店名:国际认证大师 网址:https://imaws.taobao.com 微信:ANYPASS
淘宝店名:国际认证大师 网址:https://imaws.taobao.com 微信:ANYPASS
# apt-get install kubelet=1.20.0-00 kubectl=1.20.1-00
# kubelet version
# kubelet version
# systemctl status kubelete
# systemctl daemon-reload
# exit
$ exit
$ kubectl get node (确认只升级了 master 节点到 1.20.1 版本)
第四题:etcd 备份还原(1.20 版本需要把端口号从 2739 改成 2830)
如果环境中没有 etcdctl 这个命令,需要先执行如下指令:
$ sudo apt install etcd-client
淘宝店名:国际认证大师 网址:https://imaws.taobao.com 微信:ANYPASS
淘宝店名:国际认证大师 网址:https://imaws.taobao.com 微信:ANYPASS
#备份:要求备份到指定路径及指定文件名
$ ETCDCTL_API=3 etcdctl --endpoints 127.0.0.1:2379 --cacert=/opt/KUIN00601/ca.crt
--cert=/opt/KUIN00601/etcd-client.crt --key=/opt/KUIN00601/etcd-client.key snapshot save
/srv/data/etcd-snapshot.db
#还原:要求使用指定文件进行还原
$
--cert=/opt/KUIN00601/etcd-client.crt
/var/lib/backup/etcd-snapshot-previous.db
--key=/opt/KUIN00601/etcd-client.key
ETCDCTL_API=3
127.0.0.1:2379
etcdctl
--endpoints
--cacert=/opt/KUIN00601/ca.crt
restore
snapshot
第五题:创建 NetworkPolicy
5-1. 同一个 namespace
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-port-from-namespace
namespace: internal
spec:
podSelector: {}
policyTypes:
- Ingress
ingress:
- from:
- podSelector: {}
淘宝店名:国际认证大师 网址:https://imaws.taobao.com 微信:ANYPASS
淘宝店名:国际认证大师 网址:https://imaws.taobao.com 微信:ANYPASS
ports:
- protocol: TCP
port: 9000
5-2. 非同一个 namespace
$ kubectl describe ns corp-bar
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-port-from-namespace
namespace: internal
spec:
podSelector: {}
policyTypes:
- Ingress
ingress:
- from:
- namespaceSelector:
matchLabels:
project: corp-bar
ports:
- protocol: TCP
port: 5679
$ kubectl config use-context hk8s
$ vi netwokpolicy.yaml
# 将上面的 yaml 内容粘贴进来
$ kubectl apply -f netwokpolicy.yaml
官方文档直接复制,修改个别参数
https://kubernetes.io/zh/docs/concepts/services-networking/network-policies/#networkpolicy-resource
淘宝店名:国际认证大师 网址:https://imaws.taobao.com 微信:ANYPASS
淘宝店名:国际认证大师 网址:https://imaws.taobao.com 微信:ANYPASS
第六题:创建 svc
$ kubectl config use-context k8s
$ kubectl expose deployment front-end --port=80 --target-port=80 --protocol=TCP --type=NodePort
--name=front-end-svc
淘宝店名:国际认证大师 网址:https://imaws.taobao.com 微信:ANYPASS
淘宝店名:国际认证大师 网址:https://imaws.taobao.com 微信:ANYPASS
第七题:创建 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: /hi
pathType: Prefix
backend:
service:
name: hi
port:
number: 5678
$ kubectl config use-context k8s
$ vi ping-ingress.yaml
淘宝店名:国际认证大师 网址:https://imaws.taobao.com 微信:ANYPASS