Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Chu Peng 楚鹏
minikube
提交
d403da45
M
minikube
项目概览
Chu Peng 楚鹏
/
minikube
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
minikube
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
d403da45
编写于
3月 04, 2020
作者:
P
priyawadhwa
提交者:
GitHub
3月 04, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #6870 from priyawadhwa/transfer-binaries
Add k8s binaries to preloaded tarball
上级
41235a7f
a03c239c
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
43 addition
and
1 deletion
+43
-1
hack/preload-images/preload_images.go
hack/preload-images/preload_images.go
+12
-0
pkg/minikube/bootstrapper/bsutil/binaries.go
pkg/minikube/bootstrapper/bsutil/binaries.go
+31
-1
未找到文件。
hack/preload-images/preload_images.go
浏览文件 @
d403da45
...
@@ -27,7 +27,10 @@ import (
...
@@ -27,7 +27,10 @@ import (
"github.com/pkg/errors"
"github.com/pkg/errors"
"k8s.io/minikube/pkg/drivers/kic"
"k8s.io/minikube/pkg/drivers/kic"
"k8s.io/minikube/pkg/drivers/kic/oci"
"k8s.io/minikube/pkg/drivers/kic/oci"
"k8s.io/minikube/pkg/minikube/bootstrapper/bsutil"
"k8s.io/minikube/pkg/minikube/bootstrapper/images"
"k8s.io/minikube/pkg/minikube/bootstrapper/images"
"k8s.io/minikube/pkg/minikube/command"
"k8s.io/minikube/pkg/minikube/config"
"k8s.io/minikube/pkg/minikube/driver"
"k8s.io/minikube/pkg/minikube/driver"
"k8s.io/minikube/pkg/minikube/localpath"
"k8s.io/minikube/pkg/minikube/localpath"
)
)
...
@@ -110,6 +113,14 @@ func executePreloadImages() error {
...
@@ -110,6 +113,14 @@ func executePreloadImages() error {
}
}
}
}
// Transfer in k8s binaries
kcfg
:=
config
.
KubernetesConfig
{
KubernetesVersion
:
kubernetesVersion
,
}
runner
:=
command
.
NewKICRunner
(
profile
,
driver
.
OCIBinary
)
if
err
:=
bsutil
.
TransferBinaries
(
kcfg
,
runner
);
err
!=
nil
{
return
errors
.
Wrap
(
err
,
"transferring k8s binaries"
)
}
// Create image tarball
// Create image tarball
if
err
:=
createImageTarball
();
err
!=
nil
{
if
err
:=
createImageTarball
();
err
!=
nil
{
return
err
return
err
...
@@ -121,6 +132,7 @@ func createImageTarball() error {
...
@@ -121,6 +132,7 @@ func createImageTarball() error {
dirs
:=
[]
string
{
dirs
:=
[]
string
{
fmt
.
Sprintf
(
"./lib/docker/%s"
,
dockerStorageDriver
),
fmt
.
Sprintf
(
"./lib/docker/%s"
,
dockerStorageDriver
),
"./lib/docker/image"
,
"./lib/docker/image"
,
"./lib/minikube/binaries"
,
}
}
args
:=
[]
string
{
"exec"
,
profile
,
"sudo"
,
"tar"
,
"-I"
,
"lz4"
,
"-C"
,
"/var"
,
"-cvf"
,
tarballFilename
}
args
:=
[]
string
{
"exec"
,
profile
,
"sudo"
,
"tar"
,
"-I"
,
"lz4"
,
"-C"
,
"/var"
,
"-cvf"
,
tarballFilename
}
args
=
append
(
args
,
dirs
...
)
args
=
append
(
args
,
dirs
...
)
...
...
pkg/minikube/bootstrapper/bsutil/binaries.go
浏览文件 @
d403da45
...
@@ -18,10 +18,13 @@ limitations under the License.
...
@@ -18,10 +18,13 @@ limitations under the License.
package
bsutil
package
bsutil
import
(
import
(
"fmt"
"os/exec"
"os/exec"
"path"
"path"
"runtime"
"runtime"
"strings"
"github.com/golang/glog"
"github.com/pkg/errors"
"github.com/pkg/errors"
"golang.org/x/sync/errgroup"
"golang.org/x/sync/errgroup"
"k8s.io/minikube/pkg/minikube/command"
"k8s.io/minikube/pkg/minikube/command"
...
@@ -33,8 +36,15 @@ import (
...
@@ -33,8 +36,15 @@ import (
// TransferBinaries transfers all required Kubernetes binaries
// TransferBinaries transfers all required Kubernetes binaries
func
TransferBinaries
(
cfg
config
.
KubernetesConfig
,
c
command
.
Runner
)
error
{
func
TransferBinaries
(
cfg
config
.
KubernetesConfig
,
c
command
.
Runner
)
error
{
ok
,
err
:=
binariesExist
(
cfg
,
c
)
if
err
==
nil
&&
ok
{
glog
.
Info
(
"Found k8s binaries, skipping transfer"
)
return
nil
}
glog
.
Infof
(
"Didn't find k8s binaries: %v
\n
Initiating transfer..."
,
err
)
dir
:=
binRoot
(
cfg
.
KubernetesVersion
)
dir
:=
binRoot
(
cfg
.
KubernetesVersion
)
_
,
err
:
=
c
.
RunCmd
(
exec
.
Command
(
"sudo"
,
"mkdir"
,
"-p"
,
dir
))
_
,
err
=
c
.
RunCmd
(
exec
.
Command
(
"sudo"
,
"mkdir"
,
"-p"
,
dir
))
if
err
!=
nil
{
if
err
!=
nil
{
return
err
return
err
}
}
...
@@ -58,6 +68,26 @@ func TransferBinaries(cfg config.KubernetesConfig, c command.Runner) error {
...
@@ -58,6 +68,26 @@ func TransferBinaries(cfg config.KubernetesConfig, c command.Runner) error {
return
g
.
Wait
()
return
g
.
Wait
()
}
}
// binariesExist returns true if the binaries already exist
func
binariesExist
(
cfg
config
.
KubernetesConfig
,
c
command
.
Runner
)
(
bool
,
error
)
{
dir
:=
binRoot
(
cfg
.
KubernetesVersion
)
rr
,
err
:=
c
.
RunCmd
(
exec
.
Command
(
"sudo"
,
"ls"
,
dir
))
stdout
:=
rr
.
Stdout
.
String
()
if
err
!=
nil
{
return
false
,
err
}
foundBinaries
:=
map
[
string
]
struct
{}{}
for
_
,
binary
:=
range
strings
.
Split
(
stdout
,
"
\n
"
)
{
foundBinaries
[
binary
]
=
struct
{}{}
}
for
_
,
name
:=
range
constants
.
KubernetesReleaseBinaries
{
if
_
,
ok
:=
foundBinaries
[
name
];
!
ok
{
return
false
,
fmt
.
Errorf
(
"didn't find preexisting %s"
,
name
)
}
}
return
true
,
nil
}
// binRoot returns the persistent path binaries are stored in
// binRoot returns the persistent path binaries are stored in
func
binRoot
(
version
string
)
string
{
func
binRoot
(
version
string
)
string
{
return
path
.
Join
(
vmpath
.
GuestPersistentDir
,
"binaries"
,
version
)
return
path
.
Join
(
vmpath
.
GuestPersistentDir
,
"binaries"
,
version
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录