CKA认证真题(3)-- 绝对干货!

目录

前言

15. sidecar边车容器

16. 升级集群

17.备份还原etcd


前言

17道真题难度等级

一级 rbac cpu 扩容 pod指定节点 pv pod日志 排障 查看可用节点 多容器pod 节点维护

二级 networkpolicy service  ingress  pvc

三级 sidecar 升级集群 备份还原etcd

本系列有三篇博客,本博客为第三篇,即三级难度篇

CKA注意事项:CKA考试注意事项--考前必看!_luo_guibin的博客-CSDN博客

第一篇:CKA认证真题(1)-- 必考_luo_guibin的博客-CSDN博客

第二篇:CKA考试真题(2)_luo_guibin的博客-CSDN博客

第三篇:CKA认证真题(3)-- 绝对干货!_luo_guibin的博客-CSDN博客

15. sidecar边车容器

CKA认证真题(3)-- 绝对干货!_第1张图片


Context

将一个现有的 Pod 集成到 Kubernetes 的内置日志记录体系结构中(例如 kubectl logs)。

添加 streaming sidecar 容器是实现此要求的一种好方法。

Task

使用 busybox Image 来将名为 sidecar 的 sidecar 容器添加到现有的 Pod big-crop-app 中。

新的 sidecar 容器必须运行以下命令:

/bin/sh -c tail -n+1 -f /var/log/big-crop-app.log

使用挂载在/var/log 的 Volume,使日志文件 big-crop-app.log 可用于 sidecar 容器。

除了添加所需要的 volume mount 以外,请勿更改现有容器的规格。


参考文档:日志架构 | Kubernetes

CKA认证真题(3)-- 绝对干货!_第2张图片

#总共新增10行 

#答案

kubectl get pod big-factor-app -o yaml > varlog.yam
cp varlog.yaml varlog-bak.yaml
vi varlog.yaml

 volumeMounts: #在原配置文件,灰色的这段后面添加
 - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
 name: default-token-4l6w8
 readOnly: true
 - name: varlog #新加内容
 mountPath: /var/log #新加内容
 - name: sidecar #新加内容,注意 name 别写错了
 image: busybox #新加内容
 args: [/bin/sh, -c, 'tail -n+1 -f /var/log/big-crop-app.log'] #新加内容,注意 文件名 别写错了。另外是用逗号分隔的,而题目里是空格。
 volumeMounts: #新加内容
 - name: varlog #新加内容
 mountPath: /var/log #新加内容
 dnsPolicy: ClusterFirst

......

  - name: varlog #新加内容
    emptyDir: {}  #新加内容

kubectl delete pod big-factor-app
kubectl apply -f varlog.yaml

#检查
kubectl logs 11-factor-app sidecar
kubectl exec 11-factor-app -c sidecar -- tail -f /var/log/big-factor-app.log
kubectl exec 11-factor-app -c count -- tail -f /var/log/big-factor-app.log
#varlog.yaml更改细节位置

    image: busybox
    imagePullPolicy: IfNotPresent
    name: count
    resources: {}
    terminationMessagePath: /dev/termination-log
    terminationMessagePolicy: File
    volumeMounts:
    - mountPath: /var/run/secrets/kubernetes.io/serviceaccount
      name: kube-api-access-xhzsg
      readOnly: true
    - name: varlog
      mountPath: /var/log
  - name: count-log-1
    image: busybox:1.28
    args: [/bin/sh, -c, 'tail -n+1 -F /var/log/1.log']
    volumeMounts:
    - name: varlog
      mountPath: /var/log
  dnsPolicy: ClusterFirst
  enableServiceLinks: true
  nodeName: node01

......

  volumes:
  - name: kube-api-access-xhzsg
    projected:
      defaultMode: 420
      sources:
      - serviceAccountToken:
          expirationSeconds: 3607
          path: token
      - configMap:
          items:
          - key: ca.crt
            path: ca.crt
          name: kube-root-ca.crt
      - downwardAPI:
          items:
          - fieldRef:
              apiVersion: v1
              fieldPath: metadata.namespace
            path: namespace
  - name: varlog
    emptyDir: {}

CKA认证真题(3)-- 绝对干货!_第3张图片

CKA认证真题(3)-- 绝对干货!_第4张图片

16. 升级集群

CKA认证真题(3)-- 绝对干货!_第5张图片


Task

现有的 Kubernetes 集群正在运行版本 1.27.1仅将 master 节点上的所有 Kubernetes 控制平面和节点组件升级到版本 1.27.2

确保在升级之前 drain master 节点,并在升级后 uncordon ssh mk8s-master-0 节点。

可以使用以下命令,通过 ssh 连接到 master 节点:

ssh mk8s-master-0

可以使用以下命令,在该 master 节点上获取更高权限:

sudo -i

另外,在主节点上升级 kubelet kubectl

请不要升级工作节点,etcd,container 管理器,CNI 插件, DNS 服务或任何其他插件。


 升级顺序:调度节点--kubeadm--plan--集群--kubelet--kubectl

#答案

kubectl get nodes

kubectl cordon ssh mk8s-master-0
kubectl drain ssh mk8s-master-0 --ignore-daemonsets

ssh ssh mk8s-master-0
sudo -i

apt-get update
apt-cache show kubeadm|grep 1.27.2
apt-get install kubeadm=1.27.2-00
kubeadm version

kubeadm upgrade plan
kubeadm upgrade apply v1.27.2 --etcd-upgrade=false

apt-get install kubelet=1.27.2-00
kubelet --version

apt-get install kubectl=1.27.2-00
kubectl version

exit
exit

kubectl get nodes

17.备份还原etcd

CKA认证真题(3)-- 绝对干货!_第6张图片


Task

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

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

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

提供了以下 TLS 证书和密钥,以通过 etcdctl 连接到服务器。

CA 证书: /opt/KUIN00601/ca.crt

客户端证书: /opt/KUIN00601/etcd-client.crt

客户端密钥: /opt/KUIN00601/etcd-client.key


#答案

#加载环境
export ETCDCTL_API=3

#备份
etcdctl --endpoints=https://11.0.1.111:2379 --cacert="/opt/KUIN00601/ca.crt" --cert="/opt/KUIN00601/etcd-client.crt" --key="/opt/KUIN00601/etcd-client.key" 
snapshot save /var/lib/backup/etcd-snapshot.db

#检查,会出现一个db详情表
etcdctl snapshot status /var/lib/backup/etcd-snapshot.db -wtable

#还原,需要用sudo
sudo etcdctl --endpoints=https://11.0.1.111:2379 --cacert="/opt/KUIN00601/ca.crt" --cert="/opt/KUIN00601/etcd-client.crt" --
key="/opt/KUIN00601/etcd-client.key" snapshot restore /data/backup/etcd-snapshot-previous.db

你可能感兴趣的:(cka认证,k8s,cka认证,cka考试)