我们以解压k8s二进制源码文件为例,只解压出第三层级目录下的 kube-apiserver、kube-controller-manager 、kubectl 、kubelet 、kube-proxy 、kube-scheduler这几个文件。
k8s源码文件目录结构,目录实在太多了,我删除了大部分,不在这里显示
[root@k8s-master01 tmp]# tree kubernetes
kubernetes
├── addons
├── kubernetes-src.tar.gz
├── LICENSES
│ ├── LICENSE
│ ├── OWNERS
│ │ ├── Azure
│ │ │ ├── azure-sdk-for-go
│ │ │ │ └── LICENSE
│ │ │ ├── go-ansiterm
│ │ │ │ └── LICENSE
│ │ │ └── go-autorest
│ │ │ ├── autorest
│ │ │ │ ├── adal
│ │ │ │ │ └── LICENSE
│ │ │ │ ├── date
│ │ │ │ │ └── LICENSE
│ │ │ │ ├── LICENSE
│ │ │ │ ├── mocks
│ │ │ │ │ └── LICENSE
│ │ │ │ ├── to
│ │ │ │ │ └── LICENSE
│ │ │ │ └── validation
│ │ │ │ └── LICENSE
│ │ ├── multierr
│ │ │ └── LICENSE
│ │ └── zap
│ │ └── LICENSE
│ └── sigs.k8s.io
│ ├── apiserver-network-proxy
│ │ └── konnectivity-client
│ │ └── LICENSE
│ ├── kustomize
│ │ ├── api
│ │ │ └── LICENSE
│ │ ├── kustomize
│ │ │ └── v4
│ │ │ └── LICENSE
│ │ └── kyaml
│ │ ├── internal
│ │ │ └── forked
│ │ │ └── github.com
│ │ │ ├── go-yaml
│ │ │ │ └── yaml
│ │ │ │ ├── LICENSE
│ │ │ │ └── NOTICE
│ │ │ └── qri-io
│ │ │ └── starlib
│ │ │ └── util
│ │ │ └── LICENSE
│ │ └── LICENSE
│ ├── structured-merge-diff
│ │ └── v4
│ │ └── LICENSE
│ └── yaml
│ └── LICENSE
└── server
└── bin
├── apiextensions-apiserver
├── kubeadm
├── kube-aggregator
├── kube-apiserver
├── kube-apiserver.docker_tag
├── kube-apiserver.tar
├── kube-controller-manager
├── kube-controller-manager.docker_tag
├── kube-controller-manager.tar
├── kubectl
├── kubectl-convert
├── kubelet
├── kube-proxy
├── kube-proxy.docker_tag
├── kube-proxy.tar
├── kube-scheduler
├── kube-scheduler.docker_tag
├── kube-scheduler.tar
└── mounter
解压参数--strip-components=3,只解压三层目录下的文件
tar -xf
kubernetes-server-linux-amd64.tar.gz --strip-components=3 -C /tmp/bin/
kubernetes/server/bin/kube{let,ctl,-apiserver,-controller-manager,-scheduler,-proxy}