代码之家  ›  专栏  ›  技术社区  ›  Chris Stryczynski

如何在kubectl中查看当前上下文的配置详细信息?

  •  1
  • Chris Stryczynski  · 技术社区  · 6 年前

    我想查看如下命令所示的“config”详细信息:

    kubectl config view
    

    但是,这将显示所有上下文的整个配置详细信息,我如何筛选它(或者可能有其他命令),以查看当前上下文的配置详细信息?

    4 回复  |  直到 6 年前
        1
  •  3
  •   Jordan Liggitt    6 年前

    kubectl config view --minify 仅显示当前上下文

        2
  •  1
  •   andrewdotn    6 年前

    实现这一点的云本地方法是使用命令的JSON输出,然后用 jq 以下内容:

    kubectl config view -o json | jq '. as $o
        | ."current-context" as $current_context_name
        | $o.contexts[] | select(.name == $current_context_name) as $context
        | $o.clusters[] | select(.name == $context.context.cluster) as $cluster
        | $o.users[] | select(.name == $context.context.user) as $user
        | {"current-context-name": $current_context_name, context: $context, cluster: $cluster, user: $user}'
    
    {
      "current-context-name": "docker-for-desktop",
      "context": {
        "name": "docker-for-desktop",
        "context": {
          "cluster": "docker-for-desktop-cluster",
          "user": "docker-for-desktop"
        }
      },
      "cluster": {
        "name": "docker-for-desktop-cluster",
        "cluster": {
          "server": "https://localhost:6443",
          "insecure-skip-tls-verify": true
        }
      },
      "user": {
        "name": "docker-for-desktop",
        "user": {
          "client-certificate-data": "REDACTED",
          "client-key-data": "REDACTED"
        }
      }
    }
    

    This answer 帮助我找出一些JQ位。

        3
  •  1
  •   Rico    6 年前

    bash/kubectl加上一点jq,用于任何上下文等效:

    exec >/tmp/output &&
    CONTEXT_NAME=kubernetes-admin@kubernetes \
    CONTEXT_CLUSTER=$(kubectl config view -o=jsonpath="{.contexts[?(@.name==\"${CONTEXT_NAME}\")].context.cluster}") \
    CONTEXT_USER=$(kubectl config view -o=jsonpath="{.contexts[?(@.name==\"${CONTEXT_NAME}\")].context.user}") && \
    echo "[" && \
    kubectl config view -o=json | jq  -j --arg CONTEXT_NAME "$CONTEXT_NAME" '.contexts[] | select(.name==$CONTEXT_NAME)' && \
    echo "," && \
    kubectl config view -o=json | jq  -j --arg CONTEXT_CLUSTER "$CONTEXT_CLUSTER" '.clusters[] | select(.name==$CONTEXT_CLUSTER)' && \
    echo "," && \
    kubectl config view -o=json | jq  -j --arg CONTEXT_USER "$CONTEXT_USER" '.users[] | select(.name==$CONTEXT_USER)' && \
    echo -e "\n]\n" && \
    exec >/dev/tty && \
    cat /tmp/output | jq && \
    rm -rf /tmp/output
    
        4
  •  1
  •   marvelTracker    6 年前

    您可以使用命令 kubectl config view --minify 只获取当前上下文。

    使用起来很方便——有助于获得可以为Kubectl操作提供的选项。

    kubectl config view --help
    
    推荐文章