怎么在pod里 挂载1个busybox的边车诊断问题

举报
tscswcn 发表于 2020/11/05 14:48:57 2020/11/05
【摘要】 怎么在pod里 挂载1个busybox的边车诊断问题

详细问题可以参见 

https://kubesphere.com.cn/forum/d/2555-k8s/5


cornds的pod里 访问不了别的宿主机,老是报 

[ERROR] plugin/errors: 2 . NS: read udp 10.233.64.70:58402->10.10.10.2:53: i/o timeout

[ERROR] plugin/errors: 2 . NS: read udp 10.233.64.70:48861->10.10.10.2:53: i/o timeout

[ERROR] plugin/errors: 2 . NS: read udp 10.233.64.70:33260->10.10.10.2:53: i/o timeout

[ERROR] plugin/errors: 2 . NS: read udp 10.233.64.70:53321->10.10.10.2:53: i/o timeout

[ERROR] plugin/errors: 2 . NS: read udp 10.233.64.70:56475->10.10.10.2:53: i/o timeout

[ERROR] plugin/errors: 2 . NS: read udp 10.233.64.70:57477->10.10.10.2:53: i/o timeout

[ERROR] plugin/errors: 2 . NS: read udp 10.233.64.70:45194->10.10.10.2:53: i/o timeout

[ERROR] plugin/errors: 2 . NS: read udp 10.233.64.70:50980->10.10.10.2:53: i/o timeout

[ERROR] plugin/errors: 2 . NS: read udp 10.233.64.70:41519->10.10.10.2:53: i/o timeout

[ERROR] plugin/errors: 2 . NS: read udp 10.233.64.70:46032->10.10.10.2:53: i/o timeout

[ERROR] plugin/errors: 2 . NS: read udp 10.233.64.70:53543->10.10.10.2:53: i/o timeout

[ERROR] plugin/errors: 2 . NS: read udp 10.233.64.70:50189->10.10.10.2:53: i/o timeout

[ERROR] plugin/errors: 2 . NS: read udp 10.233.64.70:49052->10.10.10.2:53: i/o timeout

[ERROR] plugin/errors: 2 . NS: read udp 10.233.64.70:40430->10.10.10.2:53: i/o timeout

[ERROR] plugin/errors: 2 . NS: read udp 10.233.64.70:40941->10.10.10.2:53: i/o timeout

[ERROR] plugin/errors: 2 . NS: read udp 10.233.64.70:34961->10.10.10.2:53: i/o timeout

[ERROR] plugin/errors: 2 . NS: read udp 10.233.64.70:33067->10.10.10.2:53: i/o timeout

[ERROR] plugin/errors: 2 . NS: read udp 10.233.64.70:57059->10.10.10.2:53: i/o timeout

[ERROR] plugin/errors: 2 . NS: read udp 10.233.64.70:54908->10.10.10.2:53: i/o timeout


kubectl exec -it   coredns-56d9596b8f-6lvqd   -n kube-system -- sh     

又不能进入


2, 想办法在corndns 的pod 挂个边车,

kubectl get configmap coredns -n kube-system -o yaml >coredns.yaml

coredns.yaml




apiVersion: apps/v1

kind: Deployment

metadata:

  annotations:

    deployment.kubernetes.io/revision: "1"

  creationTimestamp: "2020-10-14T06:34:42Z"

  generation: 1

  labels:

    k8s-app: kube-dns

  managedFields:

  - apiVersion: apps/v1

    fieldsType: FieldsV1

    fieldsV1:

      f:metadata:

        f:labels:

          .: {}

          f:k8s-app: {}

      f:spec:

        f:progressDeadlineSeconds: {}

        f:replicas: {}

        f:revisionHistoryLimit: {}

        f:selector:

          f:matchLabels:

            .: {}

            f:k8s-app: {}

        f:strategy:

          f:rollingUpdate:

            .: {}

            f:maxSurge: {}

            f:maxUnavailable: {}

          f:type: {}

        f:template:

          f:metadata:

            f:labels:

              .: {}

              f:k8s-app: {}

          f:spec:

            f:containers:

              k:{"name":"coredns"}:

                .: {}

                f:args: {}

                f:image: {}

                f:imagePullPolicy: {}

                f:livenessProbe:

                  .: {}

                  f:failureThreshold: {}

                  f:httpGet:

                    .: {}

                    f:path: {}

                    f:port: {}

                    f:scheme: {}

                  f:initialDelaySeconds: {}

                  f:periodSeconds: {}

                  f:successThreshold: {}

                  f:timeoutSeconds: {}

                f:name: {}

                f:ports:

                  .: {}

                  k:{"containerPort":53,"protocol":"TCP"}:

                    .: {}

                    f:containerPort: {}

                    f:name: {}

                    f:protocol: {}

                  k:{"containerPort":53,"protocol":"UDP"}:

                    .: {}

                    f:containerPort: {}

                    f:name: {}

                    f:protocol: {}

                  k:{"containerPort":9153,"protocol":"TCP"}:

                    .: {}

                    f:containerPort: {}

                    f:name: {}

                    f:protocol: {}

                f:readinessProbe:

                  .: {}

                  f:failureThreshold: {}

                  f:httpGet:

                    .: {}

                    f:path: {}

                    f:port: {}

                    f:scheme: {}

                  f:periodSeconds: {}

                  f:successThreshold: {}

                  f:timeoutSeconds: {}

                f:resources:

                  .: {}

                  f:limits:

                    .: {}

                    f:memory: {}

                  f:requests:

                    .: {}

                    f:cpu: {}

                    f:memory: {}

                f:securityContext:

                  .: {}

                  f:allowPrivilegeEscalation: {}

                  f:capabilities:

                    .: {}

                    f:add: {}

                    f:drop: {}

                  f:readOnlyRootFilesystem: {}

                f:terminationMessagePath: {}

                f:terminationMessagePolicy: {}

                f:volumeMounts:

                  .: {}

                  k:{"mountPath":"/etc/coredns"}:

                    .: {}

                    f:mountPath: {}

                    f:name: {}

                    f:readOnly: {}

            f:dnsPolicy: {}

            f:nodeSelector:

              .: {}

              f:kubernetes.io/os: {}

            f:priorityClassName: {}

            f:restartPolicy: {}

            f:schedulerName: {}

            f:securityContext: {}

            f:serviceAccount: {}

            f:serviceAccountName: {}

            f:terminationGracePeriodSeconds: {}

            f:tolerations: {}

            f:volumes:

              .: {}

              k:{"name":"config-volume"}:

                .: {}

                f:configMap:

                  .: {}

                  f:defaultMode: {}

                  f:items: {}

                  f:name: {}

                f:name: {}

    manager: kubeadm

    operation: Update

    time: "2020-10-14T06:34:42Z"

  - apiVersion: apps/v1

    fieldsType: FieldsV1

    fieldsV1:

      f:metadata:

        f:annotations:

          .: {}

          f:deployment.kubernetes.io/revision: {}

      f:status:

        f:availableReplicas: {}

        f:conditions:

          .: {}

          k:{"type":"Available"}:

            .: {}

            f:lastTransitionTime: {}

            f:lastUpdateTime: {}

            f:message: {}

            f:reason: {}

            f:status: {}

            f:type: {}

          k:{"type":"Progressing"}:

            .: {}

            f:lastTransitionTime: {}

            f:lastUpdateTime: {}

            f:message: {}

            f:reason: {}

            f:status: {}

            f:type: {}

        f:observedGeneration: {}

        f:readyReplicas: {}

        f:replicas: {}

        f:updatedReplicas: {}

    manager: kube-controller-manager

    operation: Update

    time: "2020-10-29T07:37:45Z"

  name: coredns

  namespace: kube-system

  resourceVersion: "3238148"

  selfLink: /apis/apps/v1/namespaces/kube-system/deployments/coredns

  uid: 770a1816-23e0-4657-8907-8838892df3dd

spec:

  progressDeadlineSeconds: 600

  replicas: 2

  revisionHistoryLimit: 10

  selector:

    matchLabels:

      k8s-app: kube-dns

  strategy:

    rollingUpdate:

      maxSurge: 25%

      maxUnavailable: 1

    type: RollingUpdate

  template:

    metadata:

      creationTimestamp: null

      labels:

        k8s-app: kube-dns

    spec:

      containers:

      - args:

        - -conf

        - /etc/coredns/Corefile

        image: coredns/coredns:1.6.9

        imagePullPolicy: IfNotPresent

        livenessProbe:

          failureThreshold: 5

          httpGet:

            path: /health

            port: 8080

            scheme: HTTP

          initialDelaySeconds: 60

          periodSeconds: 10

          successThreshold: 1

          timeoutSeconds: 5

        name: coredns

        ports:

        - containerPort: 53

          name: dns

          protocol: UDP

        - containerPort: 53

          name: dns-tcp

          protocol: TCP

        - containerPort: 9153

          name: metrics

          protocol: TCP

        readinessProbe:

          failureThreshold: 3

          httpGet:

            path: /ready

            port: 8181

            scheme: HTTP

          periodSeconds: 10

          successThreshold: 1

          timeoutSeconds: 1

        resources:

          limits:

            memory: 170Mi

          requests:

            cpu: 100m

            memory: 70Mi

        securityContext:

          allowPrivilegeEscalation: false

          capabilities:

            add:

            - NET_BIND_SERVICE

            drop:

            - all

          readOnlyRootFilesystem: true

        terminationMessagePath: /dev/termination-log

        terminationMessagePolicy: File

        volumeMounts:

        - mountPath: /etc/coredns

          name: config-volume

          readOnly: true

      dnsPolicy: Default

      nodeSelector:

        kubernetes.io/os: linux

      priorityClassName: system-cluster-critical

      restartPolicy: Always

      schedulerName: default-scheduler

      securityContext: {}

      serviceAccount: coredns

      serviceAccountName: coredns

      terminationGracePeriodSeconds: 30

      tolerations:

      - key: CriticalAddonsOnly

        operator: Exists

      - effect: NoSchedule

        key: node-role.kubernetes.io/master

      volumes:

      - configMap:

          defaultMode: 420

          items:

          - key: Corefile

            path: Corefile

          name: coredns

        name: config-volume

status:

  availableReplicas: 2

  conditions:

  - lastTransitionTime: "2020-10-14T15:35:38Z"

    lastUpdateTime: "2020-10-14T15:35:54Z"

    message: ReplicaSet "coredns-6b55b6764d" has successfully progressed.

    reason: NewReplicaSetAvailable

    status: "True"

    type: Progressing

  - lastTransitionTime: "2020-10-29T07:37:33Z"

    lastUpdateTime: "2020-10-29T07:37:33Z"

    message: Deployment has minimum availability.

    reason: MinimumReplicasAvailable

    status: "True"

    type: Available

  observedGeneration: 1

  readyReplicas: 2

  replicas: 2

  updatedReplicas: 2



修改后:

apiVersion: apps/v1

kind: Deployment

metadata:

  annotations:

    deployment.kubernetes.io/revision: "1"

  creationTimestamp: "2020-10-14T06:34:42Z"

  generation: 1

  labels:

    k8s-app: kube-dns

  managedFields:

  - apiVersion: apps/v1

    fieldsType: FieldsV1

    fieldsV1:

      f:metadata:

        f:labels:

          .: {}

          f:k8s-app: {}

      f:spec:

        f:progressDeadlineSeconds: {}

        f:replicas: {}

        f:revisionHistoryLimit: {}

        f:selector:

          f:matchLabels:

            .: {}

            f:k8s-app: {}

        f:strategy:

          f:rollingUpdate:

            .: {}

            f:maxSurge: {}

            f:maxUnavailable: {}

          f:type: {}

        f:template:

          f:metadata:

            f:labels:

              .: {}

              f:k8s-app: {}

          f:spec:

            f:containers:

              k:{"name":"coredns"}:

                .: {}

                f:args: {}

                f:image: {}

                f:imagePullPolicy: {}

                f:livenessProbe:

                  .: {}

                  f:failureThreshold: {}

                  f:httpGet:

                    .: {}

                    f:path: {}

                    f:port: {}

                    f:scheme: {}

                  f:initialDelaySeconds: {}

                  f:periodSeconds: {}

                  f:successThreshold: {}

                  f:timeoutSeconds: {}

                f:name: {}

                f:ports:

                  .: {}

                  k:{"containerPort":53,"protocol":"TCP"}:

                    .: {}

                    f:containerPort: {}

                    f:name: {}

                    f:protocol: {}

                  k:{"containerPort":53,"protocol":"UDP"}:

                    .: {}

                    f:containerPort: {}

                    f:name: {}

                    f:protocol: {}

                  k:{"containerPort":9153,"protocol":"TCP"}:

                    .: {}

                    f:containerPort: {}

                    f:name: {}

                    f:protocol: {}

                f:readinessProbe:

                  .: {}

                  f:failureThreshold: {}

                  f:httpGet:

                    .: {}

                    f:path: {}

                    f:port: {}

                    f:scheme: {}

                  f:periodSeconds: {}

                  f:successThreshold: {}

                  f:timeoutSeconds: {}

                f:resources:

                  .: {}

                  f:limits:

                    .: {}

                    f:memory: {}

                  f:requests:

                    .: {}

                    f:cpu: {}

                    f:memory: {}

                f:securityContext:

                  .: {}

                  f:allowPrivilegeEscalation: {}

                  f:capabilities:

                    .: {}

                    f:add: {}

                    f:drop: {}

                  f:readOnlyRootFilesystem: {}

                f:terminationMessagePath: {}

                f:terminationMessagePolicy: {}

                f:volumeMounts:

                  .: {}

                  k:{"mountPath":"/etc/coredns"}:

                    .: {}

                    f:mountPath: {}

                    f:name: {}

                    f:readOnly: {}

            f:dnsPolicy: {}

            f:nodeSelector:

              .: {}

              f:kubernetes.io/os: {}

            f:priorityClassName: {}

            f:restartPolicy: {}

            f:schedulerName: {}

            f:securityContext: {}

            f:serviceAccount: {}

            f:serviceAccountName: {}

            f:terminationGracePeriodSeconds: {}

            f:tolerations: {}

            f:volumes:

              .: {}

              k:{"name":"config-volume"}:

                .: {}

                f:configMap:

                  .: {}

                  f:defaultMode: {}

                  f:items: {}

                  f:name: {}

                f:name: {}

    manager: kubeadm

    operation: Update

    time: "2020-10-14T06:34:42Z"

  - apiVersion: apps/v1

    fieldsType: FieldsV1

    fieldsV1:

      f:metadata:

        f:annotations:

          .: {}

          f:deployment.kubernetes.io/revision: {}

      f:status:

        f:availableReplicas: {}

        f:conditions:

          .: {}

          k:{"type":"Available"}:

            .: {}

            f:lastTransitionTime: {}

            f:lastUpdateTime: {}

            f:message: {}

            f:reason: {}

            f:status: {}

            f:type: {}

          k:{"type":"Progressing"}:

            .: {}

            f:lastTransitionTime: {}

            f:lastUpdateTime: {}

            f:message: {}

            f:reason: {}

            f:status: {}

            f:type: {}

        f:observedGeneration: {}

        f:readyReplicas: {}

        f:replicas: {}

        f:updatedReplicas: {}

    manager: kube-controller-manager

    operation: Update

    time: "2020-10-29T07:37:45Z"

  name: coredns

  namespace: kube-system

  resourceVersion: "3238148"

  selfLink: /apis/apps/v1/namespaces/kube-system/deployments/coredns

  uid: 770a1816-23e0-4657-8907-8838892df3dd

spec:

  progressDeadlineSeconds: 600

  replicas: 2

  revisionHistoryLimit: 10

  selector:

    matchLabels:

      k8s-app: kube-dns

  strategy:

    rollingUpdate:

      maxSurge: 25%

      maxUnavailable: 1

    type: RollingUpdate

  template:

    metadata:

      creationTimestamp: null

      labels:

        k8s-app: kube-dns

    spec:

      containers:

      - name: busybox

        image: busybox:1.28         

        args:

        - /bin/sh

        - -c

        - sleep 10; touch /tmp/healthy; sleep 30000

        readinessProbe:            

          exec:

            command:

            - cat

            - /tmp/healthy

          initialDelaySeconds: 10          

          periodSeconds: 5  

      - args:

        - -conf

        - /etc/coredns/Corefile

        image: coredns/coredns:1.6.9

        imagePullPolicy: IfNotPresent

        livenessProbe:

          failureThreshold: 5

          httpGet:

            path: /health

            port: 8080

            scheme: HTTP

          initialDelaySeconds: 60

          periodSeconds: 10

          successThreshold: 1

          timeoutSeconds: 5

        

        name: coredns

        ports:

        - containerPort: 53

          name: dns

          protocol: UDP

        - containerPort: 53

          name: dns-tcp

          protocol: TCP

        - containerPort: 9153

          name: metrics

          protocol: TCP

        readinessProbe:

          failureThreshold: 3

          httpGet:

            path: /ready

            port: 8181

            scheme: HTTP

          periodSeconds: 10

          successThreshold: 1

          timeoutSeconds: 1

        resources:

          limits:

            memory: 170Mi

          requests:

            cpu: 100m

            memory: 70Mi

        securityContext:

          allowPrivilegeEscalation: false

          capabilities:

            add:

            - NET_BIND_SERVICE

            drop:

            - all

          readOnlyRootFilesystem: true

        terminationMessagePath: /dev/termination-log

        terminationMessagePolicy: File

        volumeMounts:

        - mountPath: /etc/coredns

          name: config-volume

          readOnly: true

      dnsPolicy: Default

      nodeSelector:

        kubernetes.io/os: linux

      priorityClassName: system-cluster-critical

      restartPolicy: Always

      schedulerName: default-scheduler

      securityContext: {}

      serviceAccount: coredns

      serviceAccountName: coredns

      terminationGracePeriodSeconds: 30

      tolerations:

      - key: CriticalAddonsOnly

        operator: Exists

      - effect: NoSchedule

        key: node-role.kubernetes.io/master

      volumes:

      - configMap:

          defaultMode: 420

          items:

          - key: Corefile

            path: Corefile

          name: coredns

        name: config-volume

status:

  availableReplicas: 2

  conditions:

  - lastTransitionTime: "2020-10-14T15:35:38Z"

    lastUpdateTime: "2020-10-14T15:35:54Z"

    message: ReplicaSet "coredns-6b55b6764d" has successfully progressed.

    reason: NewReplicaSetAvailable

    status: "True"

    type: Progressing

  - lastTransitionTime: "2020-10-29T07:37:33Z"

    lastUpdateTime: "2020-10-29T07:37:33Z"

    message: Deployment has minimum availability.

    reason: MinimumReplicasAvailable

    status: "True"

    type: Available

  observedGeneration: 1

  readyReplicas: 2

  replicas: 2

  updatedReplicas: 2


kubectl apply -f coredns.yaml 后更新新后,可以 attach 到 busebox 容器上 诊断问题了

e ~]# kubectl exec -it   coredns-56d9596b8f-6lvqd   -n kube-system -- sh

Defaulting container name to app.

Use 'kubectl describe pod/coredns-56d9596b8f-6lvqd -n kube-system' to see all of the containers in this pod.

/ #                                     



note:

 关键

containers:      - name: app        image: busybox        #内置的linux大多数命令,多用于测试        args:        - /bin/sh        - -c        - sleep 10; touch /tmp/healthy; sleep 30000        readinessProbe:           #就绪探针          exec:            command:            - cat            - /tmp/healthy          initialDelaySeconds: 10         #10s之后开始第一次探测          periodSeconds: 5  

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。