install-k8s

This commit is contained in:
huanqing.shao
2019-07-29 16:11:50 +08:00
parent 6e498fabaf
commit 0c638afa3c
79 changed files with 128 additions and 122 deletions

View File

@ -6,8 +6,8 @@
<title>安装 Kubernetes 单Master节点 | 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="Mon Jul 29 2019 07:47:18 GMT+0800 (GMT+08:00)"><meta property="og:site_name" content="Kuboard"><meta property="og:title" content="安装 Kubernetes 单Master节点"><meta property="og:type" content="website"><meta property="og:url" content="/install/install-k8s.html"><meta name="twitter:title" content="安装 Kubernetes 单Master节点"><meta name="twitter:url" content="/install/install-k8s.html"><meta name="twitter:card" content="summary_large_image">
<link rel="preload" href="/assets/css/0.styles.72d05c5b.css" as="style"><link rel="preload" href="/assets/js/app.07474325.js" as="script"><link rel="preload" href="/assets/js/11.25f7d6ad.js" as="script"><link rel="preload" href="/assets/js/2.079e6b1e.js" as="script"><link rel="preload" href="/assets/js/17.426eb2a3.js" as="script"><link rel="prefetch" href="/assets/js/10.4581c7da.js"><link rel="prefetch" href="/assets/js/12.f824a23f.js"><link rel="prefetch" href="/assets/js/13.8b5780e0.js"><link rel="prefetch" href="/assets/js/14.00f9c27b.js"><link rel="prefetch" href="/assets/js/15.701a920c.js"><link rel="prefetch" href="/assets/js/16.9cb605e6.js"><link rel="prefetch" href="/assets/js/18.4d082d70.js"><link rel="prefetch" href="/assets/js/19.22fa0c22.js"><link rel="prefetch" href="/assets/js/20.9661405c.js"><link rel="prefetch" href="/assets/js/21.3e4b8f31.js"><link rel="prefetch" href="/assets/js/22.b37ac672.js"><link rel="prefetch" href="/assets/js/23.e5f6051f.js"><link rel="prefetch" href="/assets/js/24.79725128.js"><link rel="prefetch" href="/assets/js/25.b2f9764c.js"><link rel="prefetch" href="/assets/js/26.4d7ae609.js"><link rel="prefetch" href="/assets/js/27.e1ffe08c.js"><link rel="prefetch" href="/assets/js/28.2fa75e79.js"><link rel="prefetch" href="/assets/js/29.747c6930.js"><link rel="prefetch" href="/assets/js/3.d422123c.js"><link rel="prefetch" href="/assets/js/30.1d9af471.js"><link rel="prefetch" href="/assets/js/31.4174e7ee.js"><link rel="prefetch" href="/assets/js/32.762a944f.js"><link rel="prefetch" href="/assets/js/33.39bc8954.js"><link rel="prefetch" href="/assets/js/34.c42745b2.js"><link rel="prefetch" href="/assets/js/35.ad02ab6a.js"><link rel="prefetch" href="/assets/js/36.28d500c2.js"><link rel="prefetch" href="/assets/js/37.558f5d7d.js"><link rel="prefetch" href="/assets/js/38.a77fbbb9.js"><link rel="prefetch" href="/assets/js/39.e5891571.js"><link rel="prefetch" href="/assets/js/4.155c1923.js"><link rel="prefetch" href="/assets/js/40.101ebc46.js"><link rel="prefetch" href="/assets/js/41.cec0e4a7.js"><link rel="prefetch" href="/assets/js/42.ad6eb912.js"><link rel="prefetch" href="/assets/js/43.309d5170.js"><link rel="prefetch" href="/assets/js/44.90dbf6dc.js"><link rel="prefetch" href="/assets/js/45.b3ac16c0.js"><link rel="prefetch" href="/assets/js/5.d7c90041.js"><link rel="prefetch" href="/assets/js/6.215a502f.js"><link rel="prefetch" href="/assets/js/7.0d44a01e.js"><link rel="prefetch" href="/assets/js/8.dac30ee9.js"><link rel="prefetch" href="/assets/js/9.2b86d385.js">
<meta property="article:modified_time" content="Mon Jul 29 2019 13:59:15 GMT+0800 (GMT+08:00)"><meta property="og:site_name" content="Kuboard"><meta property="og:title" content="安装 Kubernetes 单Master节点"><meta property="og:type" content="website"><meta property="og:url" content="/install/install-k8s.html"><meta name="twitter:title" content="安装 Kubernetes 单Master节点"><meta name="twitter:url" content="/install/install-k8s.html"><meta name="twitter:card" content="summary_large_image">
<link rel="preload" href="/assets/css/0.styles.72d05c5b.css" as="style"><link rel="preload" href="/assets/js/app.48c6bda0.js" as="script"><link rel="preload" href="/assets/js/11.25f7d6ad.js" as="script"><link rel="preload" href="/assets/js/2.079e6b1e.js" as="script"><link rel="preload" href="/assets/js/17.eb7afaf9.js" as="script"><link rel="prefetch" href="/assets/js/10.c14eb303.js"><link rel="prefetch" href="/assets/js/12.4ab5dbba.js"><link rel="prefetch" href="/assets/js/13.3030c025.js"><link rel="prefetch" href="/assets/js/14.0c1161b9.js"><link rel="prefetch" href="/assets/js/15.6073fed7.js"><link rel="prefetch" href="/assets/js/16.d36c2eb0.js"><link rel="prefetch" href="/assets/js/18.b4940cde.js"><link rel="prefetch" href="/assets/js/19.1b24b250.js"><link rel="prefetch" href="/assets/js/20.2b1d2143.js"><link rel="prefetch" href="/assets/js/21.4d39647e.js"><link rel="prefetch" href="/assets/js/22.94995446.js"><link rel="prefetch" href="/assets/js/23.825bfe3f.js"><link rel="prefetch" href="/assets/js/24.fa8c0e9e.js"><link rel="prefetch" href="/assets/js/25.13cfdc5a.js"><link rel="prefetch" href="/assets/js/26.4d7ae609.js"><link rel="prefetch" href="/assets/js/27.a5c55921.js"><link rel="prefetch" href="/assets/js/28.3c4d507c.js"><link rel="prefetch" href="/assets/js/29.205d50e0.js"><link rel="prefetch" href="/assets/js/3.d422123c.js"><link rel="prefetch" href="/assets/js/30.53f89c2b.js"><link rel="prefetch" href="/assets/js/31.4174e7ee.js"><link rel="prefetch" href="/assets/js/32.52896a2b.js"><link rel="prefetch" href="/assets/js/33.79554e89.js"><link rel="prefetch" href="/assets/js/34.74783718.js"><link rel="prefetch" href="/assets/js/35.cffa72f2.js"><link rel="prefetch" href="/assets/js/36.23eb6a2d.js"><link rel="prefetch" href="/assets/js/37.b5c63a22.js"><link rel="prefetch" href="/assets/js/38.3aa3f675.js"><link rel="prefetch" href="/assets/js/39.95176c5a.js"><link rel="prefetch" href="/assets/js/4.155c1923.js"><link rel="prefetch" href="/assets/js/40.77c259a4.js"><link rel="prefetch" href="/assets/js/41.6729bbd0.js"><link rel="prefetch" href="/assets/js/42.2a5246b3.js"><link rel="prefetch" href="/assets/js/43.e95b87ec.js"><link rel="prefetch" href="/assets/js/44.82cc2c4d.js"><link rel="prefetch" href="/assets/js/45.b3ac16c0.js"><link rel="prefetch" href="/assets/js/5.a2a0584a.js"><link rel="prefetch" href="/assets/js/6.d4b5067e.js"><link rel="prefetch" href="/assets/js/7.7924640a.js"><link rel="prefetch" href="/assets/js/8.dac30ee9.js"><link rel="prefetch" href="/assets/js/9.2b86d385.js">
<link rel="stylesheet" href="/assets/css/0.styles.72d05c5b.css">
</head>
<body>
@ -54,7 +54,8 @@ swapoff -a
</code></pre></div><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>如下图所示</p> <p><img src="/assets/img/image-20190715085036593.55559549.png" alt="image-20190715085036593" title=":size=600x445"></p> <p>执行命令以应用</p> <div class="language-sh extra-class"><pre class="language-sh"><code>sysctl -p
</code></pre></div><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> <div class="language- extra-class"><pre class="language-text"><code>vim /usr/lib/systemd/system/docker.service
</code></pre></div><p>向其中他添加</p> <div class="language- extra-class"><pre class="language-text"><code>--exec-opt native.cgroupdriver=systemd
</code></pre></div><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
@ -98,11 +99,11 @@ kubeadm <span class="token function">join</span> apiserver.demo:6443 --token mpf
</code></pre></div><p><img src="/assets/img/image-20190715193838012.eca23618.png" alt="image-20190715193838012"></p> <h2 id="移除-worker-节点"><a href="#移除-worker-节点" aria-hidden="true" class="header-anchor">#</a> 移除 worker 节点</h2> <div class="warning custom-block"><p>正常情况下,您无需移除 worker 节点,如果添加到集群出错,您可以移除 worker 节点,再重新尝试添加</p></div> <p>在准备移除的 worker 节点上执行</p> <div class="language-bash extra-class"><pre class="language-bash"><code>kubeadm reset
</code></pre></div><p>在 master 节点 demo-master-a-1 上执行</p> <div class="language-bash extra-class"><pre class="language-bash"><code>kubectl delete node demo-worker-x-x
</code></pre></div><div class="tip custom-block"><ul><li>将 demo-worker-x-x 替换为要移除的 worker 节点的名字</li> <li>worker 节点的名字可以通过在节点 demo-master-a-1 上执行 kubectl get nodes 命令获得</li></ul></div> <h2 id="安装-ingress-controller"><a href="#安装-ingress-controller" aria-hidden="true" class="header-anchor">#</a> 安装 Ingress Controller</h2> <blockquote><p>Ingress官方文档https://kubernetes.io/docs/concepts/services-networking/ingress/</p> <p>Ingress Controllers官网介绍https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/</p> <p>本文中使用如下部署方式https://kubernetes.github.io/ingress-nginx/deploy/baremetal/#using-a-self-provisioned-edge</p> <p>kubernetes支持多种Ingress Controllers本文推荐使用 https://github.com/nginxinc/kubernetes-ingress</p></blockquote> <p><strong>在 demo-master-a-1 上执行</strong></p> <div class="language-bash extra-class"><pre class="language-bash"><code>kubectl apply -f https://raw.githubusercontent.com/eip-work/eip-monitor-repository/master/dashboard/nginx-ingress.yaml
</code></pre></div><p><strong>配置域名解析</strong></p> <p>将域名 *.demo.yourdomain.com 解析到 demo-worker-a-2 的 IP 地址 z.z.z.z (也可以是 demo-worker-a-1 的地址 y.y.y.y</p> <div class="tip custom-block"><p>由于需要申请域名,过程会比较繁琐,有如下两种替代方案:</p> <ul><li>在您的客户端机器访问部署在K8S上的 web 应用的浏览器所在的机器)设置 hosts 配置;</li> <li>暂时放弃域名的配置,临时使用 NodePort 或者 <code>kubectl port-forward</code> 的方式访问部署在 K8S 上的 web 应用</li></ul></div> <p><strong>验证配置</strong></p> <p>在浏览器访问 a.demo.yourdomain.com将得到 404 NotFound 错误页面</p> <h2 id="下一步"><a href="#下一步" aria-hidden="true" class="header-anchor">#</a> 下一步</h2> <p>🎉 🎉 🎉</p> <p>您已经完成了 Kubernetes 集群的安装,下一步请:</p> <p><a href="/install/install-dashboard">安装 Kuboard</a></p></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/eip-work/kuboard-press/edit/master/install/install-k8s.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-29 07:47:18</span></div></footer> <div class="page-nav"><p class="inner"><!----> <span class="next"><a href="/install/install-kubernetes.html">
</code></pre></div><p><strong>配置域名解析</strong></p> <p>将域名 *.demo.yourdomain.com 解析到 demo-worker-a-2 的 IP 地址 z.z.z.z (也可以是 demo-worker-a-1 的地址 y.y.y.y</p> <div class="tip custom-block"><p>由于需要申请域名,过程会比较繁琐,有如下两种替代方案:</p> <ul><li>在您的客户端机器访问部署在K8S上的 web 应用的浏览器所在的机器)设置 hosts 配置;</li> <li>暂时放弃域名的配置,临时使用 NodePort 或者 <code>kubectl port-forward</code> 的方式访问部署在 K8S 上的 web 应用</li></ul></div> <p><strong>验证配置</strong></p> <p>在浏览器访问 a.demo.yourdomain.com将得到 404 NotFound 错误页面</p> <h2 id="下一步"><a href="#下一步" aria-hidden="true" class="header-anchor">#</a> 下一步</h2> <p>🎉 🎉 🎉</p> <p>您已经完成了 Kubernetes 集群的安装,下一步请:</p> <p><a href="/install/install-dashboard">安装 Kuboard</a></p></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/eip-work/kuboard-press/edit/master/install/install-k8s.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-29 13:59:15</span></div></footer> <div class="page-nav"><p class="inner"><!----> <span class="next"><a href="/install/install-kubernetes.html">
安装 Kubernetes 高可用
</a>
</span></p></div> <div class="bottom-description" data-v-9b9f63ac>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.07474325.js" defer></script><script src="/assets/js/11.25f7d6ad.js" defer></script><script src="/assets/js/2.079e6b1e.js" defer></script><script src="/assets/js/17.426eb2a3.js" defer></script>
<script src="/assets/js/app.48c6bda0.js" defer></script><script src="/assets/js/11.25f7d6ad.js" defer></script><script src="/assets/js/2.079e6b1e.js" defer></script><script src="/assets/js/17.eb7afaf9.js" defer></script>
</body>
</html>