当前位置: 首页 > 软件库 > 云计算 > 云原生 >

stern

授权协议 Apache-2.0 License
开发语言 Google Go
所属分类 云计算、 云原生
软件类型 开源软件
地区 不详
投 递 者 郭元明
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

stern

Stern allows you to tail multiple pods on Kubernetes and multiple containerswithin the pod. Each result is color coded for quicker debugging.

The query is a regular expression so the pod name can easily be filtered andyou don't need to specify the exact id (for instance omitting the deploymentid). If a pod is deleted it gets removed from tail and if a new pod is added itautomatically gets tailed.

When a pod contains multiple containers Stern can tail all of them too withouthaving to do this manually for each one. Simply specify the container flag tolimit what containers to show. By default all containers are listened to.

Installation

If you don't want to build from source go grab a binary release

Govendor is required to install vendored dependencies.

mkdir -p $GOPATH/src/github.com/wercker
cd $GOPATH/src/github.com/wercker
git clone https://github.com/wercker/stern.git && cd stern
govendor sync
go install

Homebrew

On macOS, you can also install Stern using Homebrew:

brew install stern

Usage

stern pod-query [flags]

The pod query is a regular expression so you could provide "web-\w" to tailweb-backend and web-frontend pods but not web-123.

cli flags

flag default purpose
--container .* Container name when multiple containers in pod (regular expression)
--exclude-container Container name to exclude when multiple containers in pod (regular expression)
--container-state running Tail containers with status in running, waiting or terminated. Default to running.
--timestamps Print timestamps
--since Return logs newer than a relative duration like 52, 2m, or 3h. Displays all if omitted
--context Kubernetes context to use. Default to kubectl config current-context
--exclude Log lines to exclude; specify multiple with additional --exclude; (regular expression)
--namespace Kubernetes namespace to use. Default to namespace configured in Kubernetes context
--kubeconfig ~/.kube/config Path to kubeconfig file to use
--all-namespaces If present, tail across all namespaces. A specific namespace is ignored even if specified with --namespace.
--selector Selector (label query) to filter on. If present, default to .* for the pod-query.
--tail -1 The number of lines from the end of the logs to show. Defaults to -1, showing all logs.
--color auto Force set color output. auto: colorize if tty attached, always: always colorize, never: never colorize
--output default Specify predefined template. Currently support: [default, raw, json] See templates section
template Template to use for log lines, leave empty to use --output flag

See stern --help for details

Stern will use the $KUBECONFIG environment variable if set. If both theenvironment variable and --kubeconfig flag are passed the cli flag will beused.

templates

stern supports outputting custom log messages. There are a few predefinedtemplates which you can use by specifying the --output flag:

output description
default Displays the namespace, pod and container, and decorates it with color depending on --color
raw Only outputs the log message itself, useful when your logs are json and you want to pipe them to jq
json Marshals the log struct to json. Useful for programmatic purposes

It accepts a custom template through the --template flag, which will becompiled to a Go template and then used for every log message. This Go templatewill receive the following struct:

property type description
Message string The log message itself
Namespace string The namespace of the pod
PodName string The name of the pod
ContainerName string The name of the container

The following functions are available within the template (besides the builtinfunctions):

func arguments description
json object Marshal the object and output it as a json text
color color.Color, string Wrap the text in color (.ContainerColor and .PodColor provided)

Examples:

Tail the gateway container running inside of the envvars pod on staging

stern envvars --context staging --container gateway

Tail the staging namespace excluding logs from istio-proxy container

stern -n staging --exclude-container istio-proxy .

Show auth activity from 15min ago with timestamps

stern auth -t --since 15m

Follow the development of some-new-feature in minikube

stern some-new-feature --context minikube

View pods from another namespace

stern kubernetes-dashboard --namespace kube-system

Tail the pods filtered by run=nginx label selector across all namespaces

stern --all-namespaces -l run=nginx

Follow the frontend pods in canary release

stern frontend --selector release=canary

Pipe the log message to jq:

stern backend -o json | jq .

Only output the log message itself:

stern backend -o raw

Output using a custom template:

stern --template '{{.Message}} ({{.Namespace}}/{{.PodName}}/{{.ContainerName}})' backend

Output using a custom template with stern-provided colors:

stern --template '{{.Message}} ({{.Namespace}}/{{color .PodColor .PodName}}/{{color .ContainerColor .ContainerName}})' backend

Completion

Stern supports command-line auto completion for bash or zsh. stern --completion=(bash|zsh) outputs the shell completion code which work by beingevaluated in .bashrc, etc for the specified shell. In addition, Sternsupports dynamic completion for --namespace and --context. In order to usethat, kubectl must be installed on your environment.

If you use bash, stern bash completion code depends on thebash-completion. On the macOS, youcan install it with homebrew as follows:

$ brew install bash-completion

Note that bash-completion must be sourced before sourcing the stern bashcompletion code in .bashrc.

source <(brew --prefix)/etc/bash-completion
source <(stern --completion=bash)

If you use zsh, just source the stern zsh completion code in .zshrc.

source <(stern --completion=zsh)

Contributing to this repository

Oracle welcomes contributions to this repository from anyone. Please seeCONTRIBUTING for details.

  • 一、Kubernetes/k8s基本概念 不了解k8s的pod、svc等概念的可以阅读一下k8s的官方文档,目前已有中文版:https://kubernetes.io/zh/docs/home/. CKA证书: 有兴趣的开发或运维同学可以考一下CKA证书 CKA考试报名,目前支持中文:https://training.linuxfoundation.cn/. Kubernetes官方文档:http

  • 题面 记忆犹新 题解 f f f 函数值给得非常明显,一看就给人一种熟悉感——这不是连分数吗? 众所周知,连分数有个递推公式,即 p i = a i p i − 1 + p i − 2 q i = a i q i − 1 + q i − 2 p_i=a_ip_{i-1}+p_{i-2}\\ q_i=a_iq_{i-1}+q_{i-2} pi​=ai​pi−1​+pi−2​qi​=ai​qi−1​+

相关阅读

相关文章

相关问答

相关文档