k8s学习-CKA真题-sidecar代理

Posted lady_killer9

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s学习-CKA真题-sidecar代理相关的知识,希望对你有一定的参考价值。

目录


题目

分析

添加一个名为busybox且镜像为busybox的sidecar到一个已经存在的名为legacy-app的Pod上,这个sidecar的启动命令为

/bin/sh, -c, 'tail -n+1 -f /var/log/legacy-app.log'

并且这个sidecar和原有的镜像挂载一个名为logs的volume,挂载的目录为/var/log/

命令

环境搭建

legacy-app.yaml

apiVersion: v1
kind: Pod
metadata:
  name: legacy-app
spec:
  containers:
  - name: count
    image: busybox
    args:
    - /bin/sh
    - -c
    - >
      i=0;
      mkdir -p /var/log && touch /var/log/legacy-app.log;
      while true;
      do
        echo "$(date) INFO $i" >> /var/log/legacy-app.log;
        i=$((i+1));
        sleep 1;
      done
kubectl create -f legacy-app.yaml

解题

添加sidecar和volumes
sidecar.yaml

apiVersion: v1
kind: Pod
metadata:
  name: legacy-app
spec:
  containers:
  - name: count
    image: busybox
    args:
    - /bin/sh
    - -c
    - >
      i=0;
      mkdir -p /var/log && touch /var/log/legacy-app.log;
      while true;
      do
        echo "$(date) INFO $i" >> /var/log/legacy-ap.log;
        i=$((i+1));
        sleep 1;
      done      
    volumeMounts:
    - name: logs
      mountPath: /var/log
  - name: busybox
    image: busybox
    args: [/bin/sh, -c, 'tail -n+1 -f /var/log/legacy-app.log']
    volumeMounts:
    - name: logs
      mountPath: /var/log
  volumes:
  - name: logs
    emptyDir: 

命令

kubectl  delete po legacy-app
kubectl create -f sidecar.yaml

结果校验

kubectl logs legacy-app busybox

结果


总结:通过sidecar的方式,在Pod中起了一个容器busybox,在不影响legacy-app容器的情况下,读出了日志文件的内容,输出到标准输出。

参考

日志架构

以上是关于k8s学习-CKA真题-sidecar代理的主要内容,如果未能解决你的问题,请参考以下文章

k8s学习-CKA真题-七层负载均衡Ingress

k8s学习-CKA真题-Deployment扩缩容

k8s学习-CKA真题-Deployment扩缩容

k8s学习-CKA真题-k8s升级(kubeadmkubeletkubectl等)

k8s学习-CKA真题-k8s升级(kubeadmkubeletkubectl等)

k8s学习-CKA真题-网络策略NetworkPolicy