2022新春采购节腾讯云活动汇聚了腾讯云最新的促销打折、优惠折扣等信息,你在这里可以找到云服务器、域名、数据库、小程序等等多种不同产品的促销活动,还有各种产品的免费试用哦。https://curl.qcloud.com/anlfno9K

1、创建一个名为deployment-clusterrole的clusterrole,该clusterrole只允许创建Deployment、Daemonset、Statefulset的create操作
在名字为app-team1的namespace下创建一个名为cicd-token的serviceAccount,并且将上一步创建clusterrole的权限绑定到该serviceAccount

#创建clusterrole
kubectl create clusterrole  deployment-clusterrole --verb=create --resource=deployments,daemonsets,statefulsets

#创建命名空间app-team1
kubectl create ns app-team1

#创建serviceaccount
kubectl create  serviceaccount cicd-token  -n app-team1

#将deployment-clusterrole 绑定 cicd-token
kubectl create rolebinding deployment-rolebinding --clusterrole=deployment-clusterrole --serviceaccount=app-team1:cicd-token --namespace=app-team1

可参考:https://kubernetes.io/zh/docs/reference/access-authn-authz/rbac/
https://kubernetes.io/zh/docs/reference/access-authn-authz/rbac/#kubectl-create-clusterrole

2、将ek8s-node-1节点设置为不可用,然后重新调度该节点上的所有Pod

kubectl config use-context ek8s
kubectl cordon ek8s-node-1    #设置节点是不可调度状态
kubectl drain ek8s-node-1 --delete-emptydir-data --ignore-daemonsets  --force

可参考:https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#drain

3、现有的 Kubernetes 集群正在运行的版本是 1.21.0,仅将主节点上的所有 kubernetes 控制面板和组件升级到版本 1.22.0 另外,在主节点上升级 kubelet 和 kubectl

kubectl cordon k8s-master
kubectl drain k8s-master --delete-emptydir-data --ignore-daemonsets –force

yum install -y kubeadm-1.21.0
kubeadm upgrade plan
kubeadm upgrade apply v1.21.0

yum install -y kubelet-1.21.0 kubectl-1.21.0
systemctl  daemon-reload
systemctl  restart kubelet
systemctl  status kubelet

可参考:https://kubernetes.io/zh/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/
4、针对etcd实例https://127.0.0.1:2379创建一个快照,保存到/srv/data/etcd-snapshot.db。在创建快照的过程中,如果卡住了,就键入ctrl+c终止,然后重试。
然后恢复一个已经存在的快照: /var/lib/backup/etcd-snapshot-previous.db
执行etcdctl命令的证书存放在:
ca证书:/opt/KUIN00601/ca.crt
客户端证书:/opt/KUIN00601/etcd-client.crt
客户端密钥:/opt/KUIN00601/etcd-client.key

注意:需要自己安装etcdctl命令
#备份
ETCDCTL_API=3  etcdctl --cacert=/etc/kubernetes/pki/etcd/ca.crt  --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key --endpoints=https://127.0.0.1:2379  snapshot save /srv/data/etcd-snapshot.db

#还原
mkdir /opt/backup/ -p
cd /etc/kubernetes/manifests && mv kube-* /opt/backup  #备份k8s配置文件
ETCDCTL_API=3  etcdctl --cacert=/etc/kubernetes/pki/etcd/ca.crt  --cert=/etc/kubernetes/pki/etcd/server.crt --key=/etc/kubernetes/pki/etcd/server.key --endpoints=https://127.0.0.1:2379  snapshot  restore /var/lib/backup/etcd-snapshot.db  --data-dir=/var/lib/etcd

vim etcd.yaml
# 将volume配置的path: /var/lib/etcd改成/var/lib/etcd-restore
  volumes:
  - hostPath:
      path: /etc/kubernetes/pki/etcd
      type: DirectoryOrCreate
    name: etcd-certs
  - hostPath:
      path: /var/lib/etcd-restore
 
# 还原k8s组件

mv /opt/backup/* /etc/kubernetes/manifests
systemctl restart kubelet

可参考:https://kubernetes.io/zh/docs/tasks/administer-cluster/configure-upgrade-etcd/

5、创建一个名字为all-port-from-namespace的NetworkPolicy,这个NetworkPolicy允许internal命名空间下的Pod访问该命名空间下的9000端口。
并且不允许不是internal命令空间的下的Pod访问
不允许访问没有监听9000端口的Pod。

kubectl create -f  nwp.yaml

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: all-port-from-namespace
  namespace: internal
spec:
  ingress:
  - from:
    - podSelector: {}
    ports:
    - port: 9000
      protocol: TCP
  podSelector: {}
  policyTypes:
  - Ingress

可参考:https://kubernetes.io/zh/docs/concepts/services-networking/network-policies/

6、重新配置一个已经存在的deployment front-end,在名字为nginx的容器里面添加一个端口配置,名字为http,暴露端口号为80,然后创建一个service,
名字为front-end-svc,暴露该deployment的http端口,并且service的类型为NodePort。

$ kubectl edit deploy front-end
# 添加如下配置,主要是在name为nginx的容器下

添加service:
kubectl expose deploy front-end --name=front-end-svc  --port=80 --target-port=http --type=NodePort

扩展:在sharenfs命名空间中
kubectl expose deployment kubepi -n sharenfs --name=front-end-svc --port=80 --target-port=http --type=NodePort

可参考:https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/

7、在ing-internal 命名空间下创建一个ingress,名字为pong,代理的service hi,端口为5678,配置路径/hi。
验证:访问curl -kL <INTERNAL_IP>/hi会返回hi

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: pong
  namespace: ing-internal
spec:
  rules:
    http:
      paths:
      - path: /hi
        pathType: Prefix
        backend:
          service:
            name: hi
            port:
              number: 5678
可参考:https://kubernetes.io/zh/docs/concepts/services-networking/ingress/

8、扩容名字为loadbalancer的deployment的副本数为6

kubectl config use-context k8s
kubectl scale --replicas=6 deployment loadbalancer

或者用$ kubectl edit deployment loadbalancer 直接在线扩容也可以

9、创建一个Pod,名字为nginx-kusc00401,镜像地址是nginx,调度到具有disk=spinning标签的节点上,
kubectl run nginx --image=nginx --dry-run=client -o yaml

apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: nginx
  name: nginx-kusc00401
spec:
  containers:
  nodeSelector:
    disk: spinning
  - image: nginx
    name: nginx
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}
-----------------------------------
$ vim pod-ns.yaml
apiVersion: v1
kind: Pod
metadata:
  name: nginx-kusc00401
  labels:
    role: nginx-kusc00401
spec:
  nodeSelector:
    disk: spinning
  containers:
    - name: nginx
      image: nginx
$ kubectl create -f pod-ns.yaml

可参考:https://kubernetes.io/zh/docs/tasks/configure-pod-container/assign-pods-nodes/

10、检查集群中有多少节点为Ready状态,并且去除包含NoSchedule污点的节点。之后将数字写到/opt/KUSC00402/kusc00402.txt

$ kubectl config use-context k8s
$ kubectl get node | grep -i ready   # 记录总数为A
$ kubectl  describe node | grep Taint | grep NoSchedule  # 记录总数为B
# 将A减B的值x导入到/opt/KUSC00402/kusc00402.txt
$ echo x >> /opt/KUSC00402/kusc00402.txt
grep -i: 忽略字符大小写的差别。

11、创建一个Pod,名字为kucc1,这个Pod可能包含1-4容器,该题为四个:nginx+redis+memcached+consul
kubectl run kucc1 --image=nginx  --dry-run -o yaml   ##获取yaml格式,在编辑

apiVersion: v1
kind: Pod
metadata:
  creationTimestamp: null
  labels:
    run: kucc1
  name: kucc1
spec:
  containers:
  - image: nginx
    name: nginx
  - image: redis
    name: redis
  - image: consul
    name: consul
  - image: memcached
    name: memcached
    resources: {}
  dnsPolicy: ClusterFirst
  restartPolicy: Always
status: {}

12、创建一个pv,名字为app-config,大小为2Gi,访问权限为ReadWriteMany。Volume的类型为hostPath,路径为/srv/app-config

apiVersion: v1
kind: PersistentVolume
metadata:
  name: app-config
  labels:
    type: local
spec:
  storageClassName: manual
  capacity:
    storage: 2Gi
  accessModes:
    - ReadWriteMany
  hostPath:
    path: "/srv/app-config"

可参考:https://kubernetes.io/zh/docs/tasks/configure-pod-container/configure-persistent-volume-storage/

13、创建一个名字为pv-volume的pvc,指定storageClass为csi-hostpath-sc,大小为10Mi;
然后创建一个Pod,名字为web-server,镜像为nginx,并且挂载该PVC至/usr/share/nginx/html,挂载的权限为ReadWriteOnce。
之后通过kubectl edit或者kubectl path将pvc改成70Mi,并且记录修改记录。

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pv-volume
spec:
  storageClassName: csi-hostpath-sc
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Mi

apiVersion: v1
kind: Pod
metadata:
  name: web-server
spec:
  volumes:
    - name: task-pv-storage
      persistentVolumeClaim:
        claimName: pv-volume
  containers:
    - name: web-server
      image: nginx
      volumeMounts:
        - mountPath: "/usr/share/nginx/html"
          name: task-pv-storage

apiVersion: v1
kind: Pod
metadata:
  name: web-server
spec:
  containers:
    - name: nginx
      image: nginx
      volumeMounts:
      - mountPath: "/usr/share/nginx/html"
        name: pv-volume
  volumes:
    - name: pv-volume
      persistentVolumeClaim:
        claimName: pv-volume    
        
扩容:
    方式一Patch命令:
        kubectl patch pvc pv-volume  -p '{"spec":{"resources":{"requests":{"storage": "70Mi"}}}}' --record
 
        方式二edit:
kubectl  edit pvc pv-volume

可参考: https://kubernetes.io/docs/tasks/configure-pod-container/configure-persistent-volume-storage/
14、监控名为foobar的Pod的日志,并过滤出具有unable-access-website 信息的行,然后将写入到 /opt/KUTR00101/foobar
$ kubectl config use-context k8s
$ kubectl logs foobar | grep unable-access-website > /opt/KUTR00101/foobar

15、添加一个名为busybox且镜像为busybox的sidecar到一个已经存在的名为legacy-app的Pod上,这个sidecar的启动命令为/bin/sh, -c, 'tail -n+1 -f /var/log/legacy-app.log'。
并且这个sidecar和原有的镜像挂载一个名为logs的volume,挂载的目录为/var/log/

可参考:https://kubernetes.io/zh/docs/concepts/cluster-administration/logging/

16、找出具有name=cpu-user的Pod,并过滤出使用CPU最高的Pod,然后把它的名字写在已经存在的/opt/KUTR00401/KUTR00401.txt
文件里(注意他没有说指定namespace。所以需要使用-A指定所以namespace)

$ kubectl config use-context k8s
$ kubectl  top po -A -l name=cpu-user
NAMESPACE     NAME                       CPU(cores)   MEMORY(bytes)   
kube-system   coredns-54d67798b7-hl8xc   7m           8Mi             
kube-system   coredns-54d67798b7-m4m2q   6m           8Mi
# 注意这里的pod名字以实际名字为准,按照CPU那一列进行选择一个最大的Pod,另外如果CPU的数值是1 2 3这样的。是大于带m这样的,因为1颗CPU等于1000m,注意要用>>而不是>
 
$ echo "coredns-54d67798b7-hl8xc" >> /opt/KUTR00401/KUTR00401.txt

17、一个名为wk8s-node-0的节点状态为NotReady,让其他恢复至正常状态,并确认所有的更改开机自动完成

$ ssh wk8s-node-0
$ sudo -i
# systemctl status kubelet 
# systemctl start kubelet
# systemctl enable kubelet

CKA考试题梳理---加油,骚年 记得点赞收藏相关推荐

  1. 这期内容看到最后记得点赞收藏!想做自媒体?不知道怎么开始?

    今天这期内容帮你解决新手小伙伴们在玩自媒体时遇到的所有问题. 我们直接上干货! 一.不会写文案? 在做自媒体创作时会写剧本.脚本.标题,文案是系统判定是否给流量的一个关键因素,没有创作灵感时可以用下面 ...

  2. 安卓终端神器Termux (后面还有Termux常用的快捷键,妥妥干货分享,记得点赞收藏哦!)

    最近在网上找到一款安卓平台的linux终端模拟器,使用pkg(apt)进行软件包管理,最终要的是,他无需root权限,因此市面上大部分安卓平台手机都可以运行.也就是说以后小编不但可以坐着敲代码,还可以 ...

  3. ucos 消息队列代码详解_用python实现 多进程队的列数据处理详解,零基础记得都收藏哦

    今天就为大家分享一篇python 多进程队列数据处理详解,具有很好的参考价值,希望对大家有所帮助.喜欢的话记得点赞转发关注不迷路哦!!! 总之了写到多进程队列数据处理问题,也就不多废话了,直接来上代码 ...

  4. 呕心沥血 JavaScript知识点梳理大全,超详细 建议收藏!!!

    呕心沥血 JavaScript知识点梳理大全,超详细 建议收藏!!! ✴️大家好,我是王同学,爆肝三天三夜王同学把JavaScript 知识点梳理了一遍,文章没有一点套路,只有满满的干货 ✴️如果对你 ...

  5. 【点赞收藏】36个顶级数据分析方法与模型!

    来源:数据分析不是个事儿 好的数据分析师不仅熟练地掌握了分析工具,还掌握了大量的数据分析方法和模型. 这样得出的结论不仅具备条理性和逻辑性,而且还更具备结构化和体系化,并保证分析结果的有效性和准确性. ...

  6. 在打开文章时,判断用户是否点赞或者收藏,切换显示点赞收藏图标;

    在做到某项目的文章显示时,考虑到用户的操作体验,添加了用户的点赞,评论,收藏行为; 首先去阿里图标矢量库;找几个关于点赞收藏评论的图标; 下载下来; 找到的这几张图标还不错; 大概写个样式,试试效果 ...

  7. 打分五角星html制作,css简单实现五角星评分、点赞收藏、展示评分(半颗星、1/3颗星)...

    css简单实现五角星评分.点赞收藏.展示评分(半颗星.1/3颗星) 1. 前言 之前做的好几个项目中,都会遇到打分,评分,点赞这样的需求,写了很多次,每次需要再写的时候,就会翻出之前写过的代码,然后 ...

  8. 小红书点赞收藏有什么用_小红书买赞有用吗 小红书有偿点赞收藏

    小红书买赞有用吗,有些小伙伴们看到自己的作品无人问津确实很难受吧.小编注意到最近出现了小红书有偿点赞收藏这种方式. 小红书买赞有用吗,这取决于小红书的内置算法.小红书中的算法机制是什么?首先,他会将您 ...

  9. 小红书点赞收藏有什么用_小红书点赞收藏平台 小红书粉丝快刷社区

    小红书点赞收藏平台哪个最好呢,相信很多在做小红书推广的小伙伴们也有这方面的需求吧.大家有没有听过小红书粉丝快刷社区呢? 小红书点赞收藏平台介绍:很多的营销人员想要在小红书上来增买赞来做推广,因而导致了 ...

最新文章

  1. [吴恩达机器学习笔记]12支持向量机2 SVM的正则化参数和决策间距
  2. 为freetextbox1.6.5上传图片加上水印
  3. AppsFlyer将API网关服务从Clojure迁移到Golang
  4. docker运行redis:windows环境运行挂载目录的正确写法、-v挂载data目录、-v挂载redis.conf配置文件以及设置访问密码
  5. Marvell 88E1111 linux driver
  6. YBTOJ洛谷P3209:平面图判定(2-SAT)
  7. uni开发中可以用table标签么_「uni-app 组件」t-table 表格
  8. Effective C++ 条款03:尽可能使用const
  9. python tkinter button颜色变不了_tkinter多按钮颜色变化
  10. Tips--Docker常用命令
  11. 苹果第三代iPhone SE或将于12月份开始投产 明年春季发布
  12. 简单制作vbs 对话框表白
  13. 一天一个产品分析之美拍_米米米米粒口红_新浪博客
  14. 计算机配置动态硬盘,【转】基本磁盘动态磁盘GTP磁盘MBR磁盘RAID阵列磁盘的区别(一)...
  15. 一文搞懂如何使用STM32驱动直流电机(普通PWM输出和L298N、高级定时器输出带死区双通道互补PWM和IR2110S及自举电路、H桥电路和电机正反转)
  16. GHOSTXP_SP3 09 绿茶纯净装机版V12.2 【雪豹】
  17. Vivado 除法器IP核 小数模式(Fractional)下结果的修正
  18. 软件项目验收需要的文档
  19. linux-C 重定向句柄操作(dup,duo2,dup3)详解及demo
  20. 最好用的六款虚拟机软件,赶紧收藏

热门文章

  1. C#扩展(2):Random的扩展
  2. 云服务ECS/RDS:搭建云服务器ECS管理linux,搭建云数据库管理创建RDS MySQL;
  3. 问题解决:[/usr/lib/systemd/system/etcd.service:6] Missing ‘=‘.
  4. iOS Wow体验 - 第四章 - 为应用的上下文环境而设计
  5. WML信息查询与后端信息发布系统实现-java -(报告+源码)
  6. 【安全预警】WINRAR,7ZIP,WINZIP等存在严重漏洞
  7. proe 5.0 m060安装
  8. 痞子衡嵌入式:聊聊i.MXRT1170上串行NOR Flash双程序可交替启动设计
  9. INE深圳硅谷双线发布演讲实录 | CEOCTO羽睿-去中心化的最后一块版图
  10. java多线程过桥问题_(java)农夫过桥问题