diff --git a/sos/report/plugins/kubernetes.py b/sos/report/plugins/kubernetes.py index 30afa1bd0..132ee8f9e 100644 --- a/sos/report/plugins/kubernetes.py +++ b/sos/report/plugins/kubernetes.py @@ -46,6 +46,18 @@ class Kubernetes(Plugin): config_files = [ "/etc/kubernetes", "/run/flannel", + "/var/lib/kubelet/config.yaml", + "/var/lib/kubelet/kubeadm-flags.env", + "/var/lib/kubelet/*_manager_state", + ] + forbidden_paths = [ + "/etc/kubernetes/pki", + ] + kube_system_logs = [ + "/var/log/pods/kube-system_etcd-*", + "/var/log/pods/kube-system_kube-apiserver-*", + "/var/log/pods/kube-system_kube-controller-manager-*", + "/var/log/pods/kube-system_kube-scheduler-*", ] resources = [ 'events', @@ -82,8 +94,10 @@ class Kubernetes(Plugin): desc='collect all namespace output separately'), PluginOpt('describe', default=False, desc='collect describe output of all resources'), + PluginOpt('kubelogs', default=False, + desc='copy some kube-system pod logs without using the API'), PluginOpt('podlogs', default=False, - desc='capture stdout/stderr logs from pods'), + desc='capture stdout/stderr logs from pods using the API'), PluginOpt('podlogs-filter', default='', val_type=str, desc='only collect logs from pods matching this pattern') ] @@ -105,7 +119,10 @@ def check_is_master(self): def setup(self): self.add_copy_spec(self.config_files) - self.add_forbidden_path("/etc/kubernetes/pki") + self.add_forbidden_path(self.forbidden_paths) + + if self.get_option('kubelogs'): + self.add_copy_spec(self.kube_system_logs) self.add_env_var([ 'KUBECONFIG',