76 lines
18 KiB
HTML
76 lines
18 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en-US">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<title>制作标准机镜像 | Kuboard</title>
|
||
<meta name="description" content="A cool Kubernetes Dashboard">
|
||
<meta name="keywords" content="Kubernetes, Docker, Dashboard, Kuboard, Linux, K8S, cluster, 分布式, 集群, 容器, 高可用">
|
||
<meta property="article:modified_time" content="Thu Jul 25 2019 06:22:52 GMT+0800 (GMT+08:00)"><meta property="og:site_name" content="Kuboard"><meta property="og:title" content="制作标准机镜像"><meta property="og:type" content="website"><meta property="og:url" content="/install/install-common-vm.html"><meta name="twitter:title" content="制作标准机镜像"><meta name="twitter:url" content="/install/install-common-vm.html"><meta name="twitter:card" content="summary_large_image">
|
||
<link rel="preload" href="/assets/css/0.styles.a88308ce.css" as="style"><link rel="preload" href="/assets/js/app.b49a6aca.js" as="script"><link rel="preload" href="/assets/js/11.42d7fd85.js" as="script"><link rel="preload" href="/assets/js/2.e1436c28.js" as="script"><link rel="preload" href="/assets/js/26.fd2ceefd.js" as="script"><link rel="prefetch" href="/assets/js/10.6e5cfa80.js"><link rel="prefetch" href="/assets/js/12.c2300662.js"><link rel="prefetch" href="/assets/js/13.b168d9e1.js"><link rel="prefetch" href="/assets/js/14.a39ad74c.js"><link rel="prefetch" href="/assets/js/15.6b271638.js"><link rel="prefetch" href="/assets/js/16.260235f6.js"><link rel="prefetch" href="/assets/js/17.6f1a899c.js"><link rel="prefetch" href="/assets/js/18.0a1c6c47.js"><link rel="prefetch" href="/assets/js/19.b5b3f0cd.js"><link rel="prefetch" href="/assets/js/20.7d69131f.js"><link rel="prefetch" href="/assets/js/21.c7e0ae47.js"><link rel="prefetch" href="/assets/js/22.64094046.js"><link rel="prefetch" href="/assets/js/23.2e227f24.js"><link rel="prefetch" href="/assets/js/24.a4157a61.js"><link rel="prefetch" href="/assets/js/25.5be30684.js"><link rel="prefetch" href="/assets/js/27.bd1065a5.js"><link rel="prefetch" href="/assets/js/28.7af5748a.js"><link rel="prefetch" href="/assets/js/29.be522832.js"><link rel="prefetch" href="/assets/js/3.b1841a1e.js"><link rel="prefetch" href="/assets/js/30.43922425.js"><link rel="prefetch" href="/assets/js/31.bccaa107.js"><link rel="prefetch" href="/assets/js/32.8ced6c07.js"><link rel="prefetch" href="/assets/js/33.e55aadef.js"><link rel="prefetch" href="/assets/js/34.3b10d5bb.js"><link rel="prefetch" href="/assets/js/35.1ac88b63.js"><link rel="prefetch" href="/assets/js/36.ef7200f8.js"><link rel="prefetch" href="/assets/js/37.854d1062.js"><link rel="prefetch" href="/assets/js/38.4c345435.js"><link rel="prefetch" href="/assets/js/39.17a44c18.js"><link rel="prefetch" href="/assets/js/4.f8d362a5.js"><link rel="prefetch" href="/assets/js/40.ce489113.js"><link rel="prefetch" href="/assets/js/41.d8b05b79.js"><link rel="prefetch" href="/assets/js/42.b63f5407.js"><link rel="prefetch" href="/assets/js/43.aae640f3.js"><link rel="prefetch" href="/assets/js/44.06b497f8.js"><link rel="prefetch" href="/assets/js/45.e2dd4006.js"><link rel="prefetch" href="/assets/js/46.36adf3ab.js"><link rel="prefetch" href="/assets/js/47.42aa7d35.js"><link rel="prefetch" href="/assets/js/5.23287995.js"><link rel="prefetch" href="/assets/js/6.509a0793.js"><link rel="prefetch" href="/assets/js/7.0d44a01e.js"><link rel="prefetch" href="/assets/js/8.9c3c2e00.js"><link rel="prefetch" href="/assets/js/9.43112bea.js">
|
||
<link rel="stylesheet" href="/assets/css/0.styles.a88308ce.css">
|
||
</head>
|
||
<body>
|
||
<div id="app" data-server-rendered="true"><div class="theme-container" data-v-61e379b0><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><!----> <span class="site-name">Kuboard</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/overview/" class="nav-link">简介</a></div><div class="nav-item"><a href="/install/install-dashboard.html" class="nav-link">安装</a></div><div class="nav-item"><a href="/guide/" class="nav-link">使用</a></div><div class="nav-item"><a href="/micro-service/spring-cloud/" class="nav-link">微服务</a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><div data-v-61e379b0><div style="text-align:center;margin-top:20px;" data-v-61e379b0><div class="side-nav-item" style="margin-left:0;" data-v-61e379b0><a href="/overview/" class="nav-link" data-v-61e379b0>简介</a></div> <div class="side-nav-item" style="border-bottom:2px solid #0b85ff;" data-v-61e379b0><a href="/install/install-dashboard" class="nav-link router-link-exact-active router-link-active" data-v-61e379b0>安装</a></div> <div class="side-nav-item" data-v-61e379b0><a href="/guide/" class="nav-link" data-v-61e379b0>使用</a></div> <div class="side-nav-item" data-v-61e379b0><a href="/micro-service/spring-cloud/" class="nav-link" data-v-61e379b0>微服务</a></div></div></div> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>安装 Kubernetes</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/install/install-k8s.html" class="sidebar-link">安装 Kubernetes 单Master节点</a></li><li><a href="/install/install-kubernetes.html" class="sidebar-link">安装 Kubernetes 高可用</a></li><li><a href="/install/install-kubectl.html" class="sidebar-link">从客户端电脑远程管理 Kubernetes</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>安装 Kuboard</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/install/install-dashboard.html" class="sidebar-link">安装 Kuboard</a></li><li><a href="/install/install-dashboard-upgrade.html" class="sidebar-link">升级 Kuboard</a></li></ul></section></li></ul> <div style="text-align: center; margin-top: 5vh;"><strong>在线体验</strong> <div><a target="_blank" href="http://demo.eip.work/#/login?isReadOnly=true&token=eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJvYXJkLXZpZXdlci10b2tlbi1mdGw0diIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJvYXJkLXZpZXdlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImE1YWFiMmQxLTQxMjYtNDU5Yi1hZmNhLTkyYzMwZDk0NTQzNSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlLXN5c3RlbTprdWJvYXJkLXZpZXdlciJ9.eYqN3FLIT6xs0-lm8AidZtaiuHeX70QTn9FhJglhEyh5dlyMU5lo8UtR-h1OY8sTSeYdYKJAS83-9SUObKQhp6XNmRgOYAfZblKUy4mvbGVQ3dn_qnzxYxt6zdGCwIY7E34eNNd9IjMF7G_Y4eJLWE7NvkSB1O8zbdn8En9rQXv_xJ9-ugCyr4CYB1lDGuZl3CIXgQ1FWcQdUBrxTT95tzcNTB0l6OUOGhRxOfw-RyIOST83GV5U0iVzxnD4sjgSaJefvCU-BmwXgpxAwRVhFyHEziXXa0CuZfBfJbmnQW308B4wocr4QDm6Nvmli1P3B6Yo9-HNF__d2hCwZEr7eg"><p><img src="/assets/img/image-20190723104717575.f44900d3.png" style="width: 226px; height: 127px;"></p></a></div> <p><strong><a href="https://github.com/shaohq/kuboard-issues/issues" target="_blank">提交 BUG</a></strong></p> <strong>在线提问</strong> <p><img src="/assets/img/kuboard_qq.45e78dbf.png"></p></div></aside> <main class="page"> <div class="theme-default-content content__default"><h2 id="制作标准机镜像"><a href="#制作标准机镜像" aria-hidden="true" class="header-anchor">#</a> 制作标准机镜像</h2> <p>通过使用标准机镜像,可以</p> <ul><li><strong>避免重复执行对测试机安装必要软件的过程</strong></li> <li><strong>以一种相对标准化的过程管理测试机的维护</strong></li></ul> <p>标准机镜像中预装了如下内容:</p> <ul><li>docker</li> <li>gitlab-runner</li> <li>kubernetes images</li></ul> <p>本文档描述的安装过程已基于 centos 7.6 验证</p> <p>标准机镜像的制作过程描述如下:</p> <h3 id="安装docker"><a href="#安装docker" aria-hidden="true" class="header-anchor">#</a> 安装docker</h3> <p><strong>卸载旧版本</strong></p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token function">sudo</span> yum remove docker <span class="token punctuation">\</span>
|
||
docker-client <span class="token punctuation">\</span>
|
||
docker-client-latest <span class="token punctuation">\</span>
|
||
docker-common <span class="token punctuation">\</span>
|
||
docker-latest <span class="token punctuation">\</span>
|
||
docker-latest-logrotate <span class="token punctuation">\</span>
|
||
docker-logrotate <span class="token punctuation">\</span>
|
||
docker-selinux <span class="token punctuation">\</span>
|
||
docker-engine-selinux <span class="token punctuation">\</span>
|
||
docker-engine
|
||
</code></pre></div><p><strong>下载依赖包及安装包</strong></p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token function">wget</span> https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
|
||
|
||
<span class="token function">wget</span> https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-18.09.7-3.el7.x86_64.rpm
|
||
|
||
<span class="token function">wget</span> https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.09.7-3.el7.x86_64.rpm
|
||
</code></pre></div><p><strong>安装</strong></p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token function">sudo</span> yum <span class="token function">install</span> -y containerd.io-1.2.6-3.3.el7.x86_64.rpm
|
||
<span class="token function">sudo</span> yum <span class="token function">install</span> -y docker-ce-cli-18.09.7-3.el7.x86_64.rpm
|
||
<span class="token function">sudo</span> yum <span class="token function">install</span> -y docker-ce-18.09.7-3.el7.x86_64.rpm
|
||
<span class="token function">sudo</span> systemctl <span class="token builtin class-name">enable</span> docker
|
||
</code></pre></div><p><strong>启动 docker 服务</strong></p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token function">sudo</span> systemctl start docker
|
||
</code></pre></div><p><strong>检查 docker 版本</strong></p> <div class="language-bash extra-class"><pre class="language-bash"><code>docker version
|
||
</code></pre></div><p><strong>参考文档</strong></p> <p>https://docs.docker.com/install/linux/docker-ce/centos/</p> <p>https://docs.docker.com/install/linux/linux-postinstall/</p> <h3 id="安装-nfs-utils"><a href="#安装-nfs-utils" aria-hidden="true" class="header-anchor">#</a> 安装 nfs-utils</h3> <p><strong>执行安装命令</strong></p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token function">sudo</span> yum <span class="token function">install</span> nfs-utils
|
||
</code></pre></div><p>必须先安装 nfs-utils 才能挂载 nfs 网络存储</p> <h3 id="k8s基本配置"><a href="#k8s基本配置" aria-hidden="true" class="header-anchor">#</a> K8S基本配置</h3> <p><strong>配置K8S的yum源</strong></p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token function">cat</span> <span class="token operator"><<</span>EOF <span class="token operator">></span> /etc/yum.repos.d/kubernetes.repo
|
||
<span class="token punctuation">[</span>kubernetes<span class="token punctuation">]</span>
|
||
<span class="token assign-left variable">name</span><span class="token operator">=</span>Kubernetes
|
||
<span class="token assign-left variable">baseurl</span><span class="token operator">=</span>http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
|
||
<span class="token assign-left variable">enabled</span><span class="token operator">=</span><span class="token number">1</span>
|
||
<span class="token assign-left variable">gpgcheck</span><span class="token operator">=</span><span class="token number">0</span>
|
||
<span class="token assign-left variable">repo_gpgcheck</span><span class="token operator">=</span><span class="token number">0</span>
|
||
<span class="token assign-left variable">gpgkey</span><span class="token operator">=</span>http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
|
||
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
|
||
EOF
|
||
</code></pre></div><p><strong>关闭swap、防火墙</strong></p> <div class="language-bash extra-class"><pre class="language-bash"><code>swapoff -a
|
||
</code></pre></div><p><strong>关闭SeLinux</strong></p> <div class="language-bash extra-class"><pre class="language-bash"><code>setenforce <span class="token number">0</span>
|
||
</code></pre></div><p><strong>修改 /etc/sysctl.conf</strong></p> <p><code>vim /etc/sysctl.conf</code></p> <p>向其中添加</p> <div class="language- extra-class"><pre class="language-text"><code>net.ipv4.ip_forward = 1
|
||
net.bridge.bridge-nf-call-ip6tables = 1
|
||
net.bridge.bridge-nf-call-iptables = 1
|
||
</code></pre></div><p>如下图所示</p> <p><img src="/assets/img/image-20190715085036593.55559549.png" alt="image-20190715085036593" title=":size=600x445"></p> <p><strong>安装kubelet、kubeadm、kubectl</strong></p> <div class="language-bash extra-class"><pre class="language-bash"><code>yum <span class="token function">install</span> -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0
|
||
</code></pre></div><p><strong>修改docker Cgroup Driver为systemd</strong></p> <p><code>vim /usr/lib/systemd/system/docker.service</code></p> <p>向其中他添加</p> <p><code>--exec-opt native.cgroupdriver=systemd</code></p> <p>如下图所示</p> <p><img src="/assets/img/image2019-07-15_09.01.21.0e0d34f2.png" alt="屏幕快照 2019-07-15 09.01.21" title=":size=1000x326"></p> <p>重启 docker</p> <div class="language- extra-class"><pre class="language-text"><code>systemctl daemon-reload
|
||
systemctl restart docker
|
||
</code></pre></div><p><strong>启动kubelet</strong></p> <div class="language-bash extra-class"><pre class="language-bash"><code>systemctl <span class="token builtin class-name">enable</span> kubelet <span class="token operator">&&</span> systemctl start kubelet
|
||
</code></pre></div><p><strong>加载 kubernetes 镜像</strong></p> <p>由于k8s服务相关镜像在国外镜像源,国内无法访问</p> <p>执行以下命令添加docker k8s国内镜像源</p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token function">curl</span> -sSL https://get.daocloud.io/daotools/set_mirror.sh <span class="token operator">|</span> <span class="token function">sh</span> -s http://f1361db2.m.daocloud.io
|
||
|
||
systemctl restart docker
|
||
</code></pre></div><p><strong>拉取k8s相关镜像</strong></p> <div class="language-bash extra-class"><pre class="language-bash"><code>docker pull mirrorgooglecontainers/kube-apiserver:v1.15.0
|
||
docker pull mirrorgooglecontainers/kube-controller-manager:v1.15.0
|
||
docker pull mirrorgooglecontainers/kube-scheduler:v1.15.0
|
||
docker pull mirrorgooglecontainers/kube-proxy:v1.15.0
|
||
docker pull mirrorgooglecontainers/pause:3.1
|
||
docker pull mirrorgooglecontainers/etcd:3.3.10
|
||
docker pull coredns/coredns:1.3.1
|
||
</code></pre></div><p><strong>更改镜像名为k8s官网镜像</strong></p> <div class="language-bash extra-class"><pre class="language-bash"><code>docker tag d235b23c3570 k8s.gcr.io/kube-proxy:v1.15.0
|
||
docker tag 201c7a840312 k8s.gcr.io/kube-apiserver:v1.15.0
|
||
docker tag 2d3813851e87 k8s.gcr.io/kube-scheduler:v1.15.0
|
||
docker tag 8328bb49b652 k8s.gcr.io/kube-controller-manager:v1.15.0
|
||
docker tag da86e6ba6ca1 k8s.gcr.io/pause:3.1
|
||
docker tag eb516548c180 k8s.gcr.io/coredns:1.3.1
|
||
docker tag 2c4adeb21b4f k8s.gcr.io/etcd:3.3.10
|
||
</code></pre></div><p><strong>制作镜像</strong></p> <p>请参考阿里云基于ECS <a href="https://help.aliyun.com/document_detail/35109.html?spm=5176.2020520101.0.0.75fc4df5mtdFmV" target="_blank" rel="noopener noreferrer">制作虚拟机镜像<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> 的文档</p></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/eip-work/kuboard-press/edit/master/install/install-common-vm.md" target="_blank" rel="noopener noreferrer">帮助我们改善此页面!</a> <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></div> <div class="last-updated"><span class="prefix">更新时间: </span> <span class="time">2019-07-25 06:22:52</span></div></footer> <!----> <div class="bottom-description" data-v-61e379b0>Copyright © 2019-present Huanqing Shao</div></main></div><div class="global-ui"><!----><div class="reading-progress top" data-v-7681808f><div class="progress" data-v-7681808f></div></div></div></div>
|
||
<script src="/assets/js/app.b49a6aca.js" defer></script><script src="/assets/js/11.42d7fd85.js" defer></script><script src="/assets/js/2.e1436c28.js" defer></script><script src="/assets/js/26.fd2ceefd.js" defer></script>
|
||
</body>
|
||
</html>
|