Files
kuboard-press/docs/install/install-common-vm.html
huanqing.shao 9def78f028 badge
2019-07-31 07:56:38 +08:00

76 lines
18 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!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&amp;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">&lt;&lt;</span>EOF <span class="token operator">&gt;</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">&amp;&amp;</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>