deploy
@ -1,15 +0,0 @@
|
||||
# 概述
|
||||
|
||||
Kuboard 作为一个 Deployment 运行在 Kubernetes 集群中,通过 apiserver 操作 Kubernetes 集群。 Kuboard 安装的唯一依赖条件是 Kubernetes 集群,Kuboard 可兼容 Kubernetes 1.10 以上的版本,目前已经在 Kubernetes 1.14、1.15 上验证了 Kuboard。
|
||||
|
||||
如果您已经有一个 Kubernetes 集群,请直接 [安装 Kuboard](install-dashboard)。
|
||||
|
||||
如果您当下没有 Kubernetes 集群:
|
||||
* 想要安装一个简单的集群,对 Kuboard 进行测试, 请 [安装 Kubernetes 用于测试](install-k8s)
|
||||
* 想要安装一个高可用的集群,并使用 Kuboard 进行管理,请 [安装 Kubernetes 高可用](install-kubernetes)
|
||||
|
||||
<br>
|
||||
|
||||
**在线提问**
|
||||
|
||||

|
||||
21
docs/install/index.html
Normal file
@ -0,0 +1,21 @@
|
||||
<!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">
|
||||
|
||||
|
||||
<link rel="preload" href="/assets/css/0.styles.5203916d.css" as="style"><link rel="preload" href="/assets/js/app.f91cf1c4.js" as="script"><link rel="preload" href="/assets/js/2.690d1a4c.js" as="script"><link rel="preload" href="/assets/js/25.12dbc53b.js" as="script"><link rel="prefetch" href="/assets/js/10.3c4e6290.js"><link rel="prefetch" href="/assets/js/11.d64c0a2b.js"><link rel="prefetch" href="/assets/js/12.fad086d6.js"><link rel="prefetch" href="/assets/js/13.6c83f29c.js"><link rel="prefetch" href="/assets/js/14.85fae375.js"><link rel="prefetch" href="/assets/js/15.40db7d80.js"><link rel="prefetch" href="/assets/js/16.96cf00c4.js"><link rel="prefetch" href="/assets/js/17.8dafc36c.js"><link rel="prefetch" href="/assets/js/18.f9ec2d92.js"><link rel="prefetch" href="/assets/js/19.1fd89203.js"><link rel="prefetch" href="/assets/js/20.ba1045f1.js"><link rel="prefetch" href="/assets/js/21.c05d61ac.js"><link rel="prefetch" href="/assets/js/22.1dbe3c9f.js"><link rel="prefetch" href="/assets/js/23.807fd6df.js"><link rel="prefetch" href="/assets/js/24.09a1d206.js"><link rel="prefetch" href="/assets/js/26.bcfed686.js"><link rel="prefetch" href="/assets/js/27.c23d4ca9.js"><link rel="prefetch" href="/assets/js/28.6a410356.js"><link rel="prefetch" href="/assets/js/29.e956c268.js"><link rel="prefetch" href="/assets/js/3.5316e887.js"><link rel="prefetch" href="/assets/js/30.d71df75d.js"><link rel="prefetch" href="/assets/js/31.d5e59e48.js"><link rel="prefetch" href="/assets/js/32.d1520518.js"><link rel="prefetch" href="/assets/js/33.f591b781.js"><link rel="prefetch" href="/assets/js/34.c7982678.js"><link rel="prefetch" href="/assets/js/35.ed6a8233.js"><link rel="prefetch" href="/assets/js/36.8bff1b35.js"><link rel="prefetch" href="/assets/js/4.6d9dfc35.js"><link rel="prefetch" href="/assets/js/5.cd997c9b.js"><link rel="prefetch" href="/assets/js/6.732ffd80.js"><link rel="prefetch" href="/assets/js/7.898bacc7.js"><link rel="prefetch" href="/assets/js/8.ccc2677d.js"><link rel="prefetch" href="/assets/js/9.43663f9d.js">
|
||||
<link rel="stylesheet" href="/assets/css/0.styles.5203916d.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><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/" class="nav-link router-link-exact-active router-link-active">安装</a></div><div class="nav-item"><a href="/guide/" class="nav-link">使用</a></div><div class="nav-item"><a href="/support/" class="nav-link">支持</a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/overview/" class="nav-link">简介</a></div><div class="nav-item"><a href="/install/" class="nav-link router-link-exact-active router-link-active">安装</a></div><div class="nav-item"><a href="/guide/" class="nav-link">使用</a></div><div class="nav-item"><a href="/support/" class="nav-link">支持</a></div> <!----></nav> <ul class="sidebar-links"><li><a href="/install/" class="active sidebar-link">概述</a></li><li><a href="/install/install-k8s.html" class="sidebar-link">安装 Kubernetes 用于测试</a></li><li><a href="/install/install-kubernetes.html" class="sidebar-link">安装 Kubernetes</a></li><li><a href="/install/install-dashboard.html" class="sidebar-link">安装 kuboard</a></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="概述"><a href="#概述" aria-hidden="true" class="header-anchor">#</a> 概述</h1> <p>Kuboard 作为一个 Deployment 运行在 Kubernetes 集群中,通过 apiserver 操作 Kubernetes 集群。 Kuboard 安装的唯一依赖条件是 Kubernetes 集群,Kuboard 可兼容 Kubernetes 1.10 以上的版本,目前已经在 Kubernetes 1.14、1.15 上验证了 Kuboard。</p> <p>如果您已经有一个 Kubernetes 集群,请直接 <a href="install-dashboard">安装 Kuboard</a>。</p> <p>如果您当下没有 Kubernetes 集群:</p> <ul><li>想要安装一个简单的集群,对 Kuboard 进行测试, 请 <a href="install-k8s">安装 Kubernetes 用于测试</a></li> <li>想要安装一个高可用的集群,并使用 Kuboard 进行管理,请 <a href="install-kubernetes">安装 Kubernetes 高可用</a></li></ul> <br> <p><strong>在线提问</strong></p> <p><img src="/assets/img/kuboard_qq.45e78dbf.png" alt="Kuboard 兴趣群二维码"></p></div> <footer class="page-edit"><!----> <!----></footer> <div class="page-nav"><p class="inner"><!----> <span class="next"><a href="/install/install-k8s.html">
|
||||
安装 Kubernetes 用于测试
|
||||
</a>
|
||||
→
|
||||
</span></p></div> </main></div><div class="global-ui"></div></div>
|
||||
<script src="/assets/js/app.f91cf1c4.js" defer></script><script src="/assets/js/2.690d1a4c.js" defer></script><script src="/assets/js/25.12dbc53b.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
19
docs/install/install-common-ingress.html
Normal file
@ -0,0 +1,19 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<title>安装 Ingress Controller | Kuboard</title>
|
||||
<meta name="description" content="A cool Kubernetes Dashboard">
|
||||
|
||||
|
||||
<link rel="preload" href="/assets/css/0.styles.5203916d.css" as="style"><link rel="preload" href="/assets/js/app.f91cf1c4.js" as="script"><link rel="preload" href="/assets/js/2.690d1a4c.js" as="script"><link rel="preload" href="/assets/js/34.c7982678.js" as="script"><link rel="prefetch" href="/assets/js/10.3c4e6290.js"><link rel="prefetch" href="/assets/js/11.d64c0a2b.js"><link rel="prefetch" href="/assets/js/12.fad086d6.js"><link rel="prefetch" href="/assets/js/13.6c83f29c.js"><link rel="prefetch" href="/assets/js/14.85fae375.js"><link rel="prefetch" href="/assets/js/15.40db7d80.js"><link rel="prefetch" href="/assets/js/16.96cf00c4.js"><link rel="prefetch" href="/assets/js/17.8dafc36c.js"><link rel="prefetch" href="/assets/js/18.f9ec2d92.js"><link rel="prefetch" href="/assets/js/19.1fd89203.js"><link rel="prefetch" href="/assets/js/20.ba1045f1.js"><link rel="prefetch" href="/assets/js/21.c05d61ac.js"><link rel="prefetch" href="/assets/js/22.1dbe3c9f.js"><link rel="prefetch" href="/assets/js/23.807fd6df.js"><link rel="prefetch" href="/assets/js/24.09a1d206.js"><link rel="prefetch" href="/assets/js/25.12dbc53b.js"><link rel="prefetch" href="/assets/js/26.bcfed686.js"><link rel="prefetch" href="/assets/js/27.c23d4ca9.js"><link rel="prefetch" href="/assets/js/28.6a410356.js"><link rel="prefetch" href="/assets/js/29.e956c268.js"><link rel="prefetch" href="/assets/js/3.5316e887.js"><link rel="prefetch" href="/assets/js/30.d71df75d.js"><link rel="prefetch" href="/assets/js/31.d5e59e48.js"><link rel="prefetch" href="/assets/js/32.d1520518.js"><link rel="prefetch" href="/assets/js/33.f591b781.js"><link rel="prefetch" href="/assets/js/35.ed6a8233.js"><link rel="prefetch" href="/assets/js/36.8bff1b35.js"><link rel="prefetch" href="/assets/js/4.6d9dfc35.js"><link rel="prefetch" href="/assets/js/5.cd997c9b.js"><link rel="prefetch" href="/assets/js/6.732ffd80.js"><link rel="prefetch" href="/assets/js/7.898bacc7.js"><link rel="prefetch" href="/assets/js/8.ccc2677d.js"><link rel="prefetch" href="/assets/js/9.43663f9d.js">
|
||||
<link rel="stylesheet" href="/assets/css/0.styles.5203916d.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><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/" class="nav-link router-link-active">安装</a></div><div class="nav-item"><a href="/guide/" class="nav-link">使用</a></div><div class="nav-item"><a href="/support/" class="nav-link">支持</a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/overview/" class="nav-link">简介</a></div><div class="nav-item"><a href="/install/" class="nav-link router-link-active">安装</a></div><div class="nav-item"><a href="/guide/" class="nav-link">使用</a></div><div class="nav-item"><a href="/support/" class="nav-link">支持</a></div> <!----></nav> <ul class="sidebar-links"><li><a href="/install/" class="sidebar-link">概述</a></li><li><a href="/install/install-k8s.html" class="sidebar-link">安装 Kubernetes 用于测试</a></li><li><a href="/install/install-kubernetes.html" class="sidebar-link">安装 Kubernetes</a></li><li><a href="/install/install-dashboard.html" class="sidebar-link">安装 kuboard</a></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><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官网介绍:<a href="https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/" target="_blank" rel="noopener noreferrer">https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/<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> <p>本文中使用如下部署方式:https://kubernetes.github.io/ingress-nginx/deploy/baremetal/#using-a-self-provisioned-edge</p> <p>kubernetes支持多种Ingress Controllers,本文推荐使用</p> <p>https://github.com/nginxinc/kubernetes-ingress</p></blockquote> <h3 id="在-apple-master-a-1-上执行"><a href="#在-apple-master-a-1-上执行" aria-hidden="true" class="header-anchor">#</a> 在 apple-master-a-1 上执行</h3> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token function">su</span> - gitlab-runner
|
||||
kubectl apply -f https://raw.githubusercontent.com/eip-work/eip-monitor-repository/master/dashboard/nginx-ingress.yaml
|
||||
</code></pre></div><h3 id="在iaas云控制台完成如下配置(公网elb)"><a href="#在iaas云控制台完成如下配置(公网elb)" aria-hidden="true" class="header-anchor">#</a> 在IaaS云控制台完成如下配置(<strong>公网ELB</strong>)</h3> <p>创建负载均衡 ELB:</p> <p> 监听器 1:80 / TCP, SOURCE_ADDRESS 会话保持</p> <p> 服务器资源池 1: apple-worker-x-x 的所有节点的 80端口</p> <p> 监听器 2:443 / TCP, SOURCE_ADDRESS 会话保持</p> <p> 服务器资源池 2: apple-worker-x-x 的所有节点的443端口</p> <p>假设刚创建的负载均衡 ELB 的 IP 地址为: z.z.z.z</p> <h3 id="配置域名解析"><a href="#配置域名解析" aria-hidden="true" class="header-anchor">#</a> 配置域名解析</h3> <p>将域名 *.apple.yourdomain.com 解析到地址负载均衡服务器 的 IP 地址 z.z.z.z</p> <h3 id="验证配置"><a href="#验证配置" aria-hidden="true" class="header-anchor">#</a> 验证配置</h3> <p>在浏览器访问 a.apple.yourdomain.com,将得到 404 NotFound 错误页面</p></div> <footer class="page-edit"><!----> <!----></footer> <!----> </main></div><div class="global-ui"></div></div>
|
||||
<script src="/assets/js/app.f91cf1c4.js" defer></script><script src="/assets/js/2.690d1a4c.js" defer></script><script src="/assets/js/34.c7982678.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,49 +0,0 @@
|
||||
## 安装 Ingress Controller
|
||||
|
||||
> ingress官方文档:https://kubernetes.io/docs/concepts/services-networking/ingress/
|
||||
>
|
||||
> Ingress Controllers官网介绍:[https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/)
|
||||
>
|
||||
> 本文中使用如下部署方式:https://kubernetes.github.io/ingress-nginx/deploy/baremetal/#using-a-self-provisioned-edge
|
||||
>
|
||||
> kubernetes支持多种Ingress Controllers,本文推荐使用
|
||||
>
|
||||
> https://github.com/nginxinc/kubernetes-ingress
|
||||
|
||||
|
||||
|
||||
### 在 apple-master-a-1 上执行
|
||||
|
||||
```bash
|
||||
su - gitlab-runner
|
||||
kubectl apply -f https://raw.githubusercontent.com/eip-work/eip-monitor-repository/master/dashboard/nginx-ingress.yaml
|
||||
```
|
||||
|
||||
|
||||
|
||||
### 在IaaS云控制台完成如下配置(**公网ELB**)
|
||||
|
||||
创建负载均衡 ELB:
|
||||
|
||||
监听器 1:80 / TCP, SOURCE_ADDRESS 会话保持
|
||||
|
||||
服务器资源池 1: apple-worker-x-x 的所有节点的 80端口
|
||||
|
||||
监听器 2:443 / TCP, SOURCE_ADDRESS 会话保持
|
||||
|
||||
服务器资源池 2: apple-worker-x-x 的所有节点的443端口
|
||||
|
||||
假设刚创建的负载均衡 ELB 的 IP 地址为: z.z.z.z
|
||||
|
||||
|
||||
|
||||
### 配置域名解析
|
||||
|
||||
将域名 *.apple.yourdomain.com 解析到地址负载均衡服务器 的 IP 地址 z.z.z.z
|
||||
|
||||
|
||||
|
||||
### 验证配置
|
||||
|
||||
在浏览器访问 a.apple.yourdomain.com,将得到 404 NotFound 错误页面
|
||||
|
||||
|
Before Width: | Height: | Size: 230 KiB |
|
Before Width: | Height: | Size: 194 KiB |
75
docs/install/install-common-vm.html
Normal file
@ -0,0 +1,75 @@
|
||||
<!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">
|
||||
|
||||
|
||||
<link rel="preload" href="/assets/css/0.styles.5203916d.css" as="style"><link rel="preload" href="/assets/js/app.f91cf1c4.js" as="script"><link rel="preload" href="/assets/js/2.690d1a4c.js" as="script"><link rel="preload" href="/assets/js/24.09a1d206.js" as="script"><link rel="prefetch" href="/assets/js/10.3c4e6290.js"><link rel="prefetch" href="/assets/js/11.d64c0a2b.js"><link rel="prefetch" href="/assets/js/12.fad086d6.js"><link rel="prefetch" href="/assets/js/13.6c83f29c.js"><link rel="prefetch" href="/assets/js/14.85fae375.js"><link rel="prefetch" href="/assets/js/15.40db7d80.js"><link rel="prefetch" href="/assets/js/16.96cf00c4.js"><link rel="prefetch" href="/assets/js/17.8dafc36c.js"><link rel="prefetch" href="/assets/js/18.f9ec2d92.js"><link rel="prefetch" href="/assets/js/19.1fd89203.js"><link rel="prefetch" href="/assets/js/20.ba1045f1.js"><link rel="prefetch" href="/assets/js/21.c05d61ac.js"><link rel="prefetch" href="/assets/js/22.1dbe3c9f.js"><link rel="prefetch" href="/assets/js/23.807fd6df.js"><link rel="prefetch" href="/assets/js/25.12dbc53b.js"><link rel="prefetch" href="/assets/js/26.bcfed686.js"><link rel="prefetch" href="/assets/js/27.c23d4ca9.js"><link rel="prefetch" href="/assets/js/28.6a410356.js"><link rel="prefetch" href="/assets/js/29.e956c268.js"><link rel="prefetch" href="/assets/js/3.5316e887.js"><link rel="prefetch" href="/assets/js/30.d71df75d.js"><link rel="prefetch" href="/assets/js/31.d5e59e48.js"><link rel="prefetch" href="/assets/js/32.d1520518.js"><link rel="prefetch" href="/assets/js/33.f591b781.js"><link rel="prefetch" href="/assets/js/34.c7982678.js"><link rel="prefetch" href="/assets/js/35.ed6a8233.js"><link rel="prefetch" href="/assets/js/36.8bff1b35.js"><link rel="prefetch" href="/assets/js/4.6d9dfc35.js"><link rel="prefetch" href="/assets/js/5.cd997c9b.js"><link rel="prefetch" href="/assets/js/6.732ffd80.js"><link rel="prefetch" href="/assets/js/7.898bacc7.js"><link rel="prefetch" href="/assets/js/8.ccc2677d.js"><link rel="prefetch" href="/assets/js/9.43663f9d.js">
|
||||
<link rel="stylesheet" href="/assets/css/0.styles.5203916d.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><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/" class="nav-link router-link-active">安装</a></div><div class="nav-item"><a href="/guide/" class="nav-link">使用</a></div><div class="nav-item"><a href="/support/" class="nav-link">支持</a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/overview/" class="nav-link">简介</a></div><div class="nav-item"><a href="/install/" class="nav-link router-link-active">安装</a></div><div class="nav-item"><a href="/guide/" class="nav-link">使用</a></div><div class="nav-item"><a href="/support/" class="nav-link">支持</a></div> <!----></nav> <ul class="sidebar-links"><li><a href="/install/" class="sidebar-link">概述</a></li><li><a href="/install/install-k8s.html" class="sidebar-link">安装 Kubernetes 用于测试</a></li><li><a href="/install/install-kubernetes.html" class="sidebar-link">安装 Kubernetes</a></li><li><a href="/install/install-dashboard.html" class="sidebar-link">安装 kuboard</a></li></ul> </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.ab4a32ff.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.1ac5bd70.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"><!----> <!----></footer> <!----> </main></div><div class="global-ui"></div></div>
|
||||
<script src="/assets/js/app.f91cf1c4.js" defer></script><script src="/assets/js/2.690d1a4c.js" defer></script><script src="/assets/js/24.09a1d206.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,216 +0,0 @@
|
||||
## 制作标准机镜像
|
||||
|
||||
通过使用标准机镜像,可以
|
||||
|
||||
- **避免重复执行对测试机安装必要软件的过程**
|
||||
- **以一种相对标准化的过程管理测试机的维护**
|
||||
|
||||
标准机镜像中预装了如下内容:
|
||||
|
||||
- docker
|
||||
- gitlab-runner
|
||||
- kubernetes images
|
||||
|
||||
本文档描述的安装过程已基于 centos 7.6 验证
|
||||
|
||||
标准机镜像的制作过程描述如下:
|
||||
|
||||
### 安装docker
|
||||
|
||||
**卸载旧版本**
|
||||
|
||||
```bash
|
||||
sudo yum remove docker \
|
||||
docker-client \
|
||||
docker-client-latest \
|
||||
docker-common \
|
||||
docker-latest \
|
||||
docker-latest-logrotate \
|
||||
docker-logrotate \
|
||||
docker-selinux \
|
||||
docker-engine-selinux \
|
||||
docker-engine
|
||||
```
|
||||
|
||||
**下载依赖包及安装包**
|
||||
|
||||
```bash
|
||||
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
|
||||
|
||||
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-18.09.7-3.el7.x86_64.rpm
|
||||
|
||||
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.09.7-3.el7.x86_64.rpm
|
||||
```
|
||||
|
||||
**安装**
|
||||
|
||||
```bash
|
||||
sudo yum install -y containerd.io-1.2.6-3.3.el7.x86_64.rpm
|
||||
sudo yum install -y docker-ce-cli-18.09.7-3.el7.x86_64.rpm
|
||||
sudo yum install -y docker-ce-18.09.7-3.el7.x86_64.rpm
|
||||
sudo systemctl enable docker
|
||||
```
|
||||
|
||||
**启动 docker 服务**
|
||||
|
||||
```bash
|
||||
sudo systemctl start docker
|
||||
```
|
||||
|
||||
**检查 docker 版本**
|
||||
|
||||
```bash
|
||||
docker version
|
||||
```
|
||||
|
||||
|
||||
|
||||
**参考文档**
|
||||
|
||||
https://docs.docker.com/install/linux/docker-ce/centos/
|
||||
|
||||
https://docs.docker.com/install/linux/linux-postinstall/
|
||||
|
||||
|
||||
|
||||
### 安装 nfs-utils
|
||||
|
||||
**执行安装命令**
|
||||
|
||||
```bash
|
||||
sudo yum install nfs-utils
|
||||
```
|
||||
|
||||
必须先安装 nfs-utils 才能挂载 nfs 网络存储
|
||||
|
||||
|
||||
|
||||
### K8S基本配置
|
||||
|
||||
**配置K8S的yum源**
|
||||
|
||||
```bash
|
||||
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
|
||||
[kubernetes]
|
||||
name=Kubernetes
|
||||
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
|
||||
enabled=1
|
||||
gpgcheck=0
|
||||
repo_gpgcheck=0
|
||||
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
|
||||
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
|
||||
EOF
|
||||
```
|
||||
|
||||
**关闭swap、防火墙**
|
||||
|
||||
```bash
|
||||
swapoff -a
|
||||
```
|
||||
|
||||
**关闭SeLinux**
|
||||
|
||||
```bash
|
||||
setenforce 0
|
||||
```
|
||||
|
||||
**修改 /etc/sysctl.conf**
|
||||
|
||||
```vim /etc/sysctl.conf```
|
||||
|
||||
向其中添加
|
||||
|
||||
```
|
||||
net.ipv4.ip_forward = 1
|
||||
net.bridge.bridge-nf-call-ip6tables = 1
|
||||
net.bridge.bridge-nf-call-iptables = 1
|
||||
```
|
||||
|
||||
如下图所示
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
**安装kubelet、kubeadm、kubectl**
|
||||
|
||||
```bash
|
||||
yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0
|
||||
```
|
||||
|
||||
|
||||
|
||||
**修改docker Cgroup Driver为systemd**
|
||||
|
||||
```vim /usr/lib/systemd/system/docker.service```
|
||||
|
||||
向其中他添加
|
||||
|
||||
```--exec-opt native.cgroupdriver=systemd```
|
||||
|
||||
如下图所示
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
重启 docker
|
||||
|
||||
```
|
||||
systemctl daemon-reload
|
||||
systemctl restart docker
|
||||
```
|
||||
|
||||
|
||||
|
||||
**启动kubelet**
|
||||
|
||||
```bash
|
||||
systemctl enable kubelet && systemctl start kubelet
|
||||
```
|
||||
|
||||
|
||||
|
||||
**加载 kubernetes 镜像**
|
||||
|
||||
由于k8s服务相关镜像在国外镜像源,国内无法访问
|
||||
|
||||
执行以下命令添加docker k8s国内镜像源
|
||||
|
||||
```bash
|
||||
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
|
||||
|
||||
systemctl restart docker
|
||||
```
|
||||
|
||||
**拉取k8s相关镜像**
|
||||
|
||||
```bash
|
||||
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
|
||||
```
|
||||
|
||||
**更改镜像名为k8s官网镜像**
|
||||
|
||||
```bash
|
||||
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
|
||||
```
|
||||
|
||||
|
||||
|
||||
**制作镜像**
|
||||
|
||||
请参考阿里云基于ECS [制作虚拟机镜像](https://help.aliyun.com/document_detail/35109.html?spm=5176.2020520101.0.0.75fc4df5mtdFmV) 的文档
|
||||
|
||||
|
||||
39
docs/install/install-dashboard.html
Normal file
@ -1,128 +0,0 @@
|
||||
# 安装 kuboard
|
||||
|
||||
## 前提
|
||||
|
||||
安装 kuboard 时,假设您已经:
|
||||
|
||||
* 已经有一个 kubernetes 集群
|
||||
* 拥有对该 kubernetes 集群执行 kubectl 命令时的所有权限
|
||||
|
||||
如果没有 kubernetes 集群,可以有如下选项:
|
||||
|
||||
* 通过 阿里云 创建 kubernetes 容器服务,并获得和配置 kubectl 的访问参数
|
||||
* 参考 [安装 kubernetes 用于测试](install-k8s)
|
||||
* 或参考 [安装 kubernetes 高可用](install-kubernetes)
|
||||
|
||||
[领取阿里云最高2000元红包](https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=obezo3pg)
|
||||
|
||||
|
||||
|
||||
## 兼容性
|
||||
|
||||
|
||||
|
||||
| Kubernetes 版本 | Kuboard 版本 | 兼容性 | 说明 |
|
||||
| --------------- | -------------- | ------ | ------------------------------------------------------------ |
|
||||
| v1.15 | v1.0.0-beta.10 | <span style="font-size: 24px;">😄</span> | Kuboard作者所使用的Kubernetes版本 |
|
||||
| v1.14 | v1.0.0-beta.10 | <span style="font-size: 24px;">😄</span> | Kuboard作者所使用的Kubernetes版本 |
|
||||
| v1.13 | v1.0.0-beta.10 | <span style="font-size: 24px;">🤔</span> | 理论上可以,尚未听到用户反馈兼容性问题 |
|
||||
| v1.12 | v1.0.0-beta.10 | <span style="font-size: 24px;">😐</span> | Kubernetes Api 尚不支持 dryRun,<br />忽略Kuboard在执行命令式的参数校验错误,可正常工作 |
|
||||
| v1.11 | v1.0.0-beta.10 | <span style="font-size: 24px;">😐</span> | 同上 |
|
||||
|
||||
|
||||
|
||||
**Kubernetes 安装方式**
|
||||
|
||||
> * 部分用户使用二进制包的形式安装 Kubernetes,Kuboard 现在的版本不能在这类 Kubernetes 集群中正常工作,作者正在解决此问题。
|
||||
> * 如果您是使用 kubeadm 安装的 Kubernetes 集群(Kubernetes 官方推荐的安装方式),请放心使用 Kuboard。
|
||||
> * Kubeadm 相关资料请参考 https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/
|
||||
|
||||
|
||||
|
||||
## 安装
|
||||
|
||||
**获取并修改yaml文件**
|
||||
|
||||
```bash
|
||||
wget https://raw.githubusercontent.com/eip-work/eip-monitor-repository/master/dashboard/kuboard.yaml
|
||||
```
|
||||
|
||||
修改文件 kuboard.yaml 中 Ingress 的 host 为 kuboard.yourclustername.yourdomain.com
|
||||
|
||||
**执行安装**
|
||||
|
||||
```bash
|
||||
kubectl apply -f kuboard.yaml
|
||||
```
|
||||
|
||||
## 获取 token
|
||||
|
||||
### 获取管理员用户 token
|
||||
|
||||
**拥有的权限**
|
||||
|
||||
此Token拥有 ClusterAdmin 的权限,可以执行所有操作
|
||||
|
||||
```bash
|
||||
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep kuboard-user | awk '{print $1}')
|
||||
```
|
||||
|
||||
执行完该命令后,可获得类似如下的输出:
|
||||
|
||||
```
|
||||
Name: admin-user-token-g8hxb
|
||||
Namespace: kube-system
|
||||
Labels: <none>
|
||||
Annotations: [kubernetes.io/service-account.name](http://kubernetes.io/service-account.name): kuboard-user
|
||||
[kubernetes.io/service-account.uid](http://kubernetes.io/service-account.uid): 948bb5e6-8cdc-11e9-b67e-fa163e5f7a0f
|
||||
|
||||
Type: [kubernetes.io/service-account-token](http://kubernetes.io/service-account-token)
|
||||
|
||||
Data
|
||||
====
|
||||
ca.crt: 1025 bytes
|
||||
namespace: 11 bytes
|
||||
token: eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLWc4aHhiIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI5NDhiYjVlNi04Y2RjLTExZTktYjY3ZS1mYTE2M2U1ZjdhMGYiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06YWRtaW4tdXNlciJ9.DZ6dMTr8GExo5IH_vCWdB_MDfQaNognjfZKl0E5VW8vUFMVvALwo0BS-6Qsqpfxrlz87oE9yGVCpBYV0D00811bLhHIg-IR_MiBneadcqdQ_TGm_a0Pz0RbIzqJlRPiyMSxk1eXhmayfPn01upPdVCQj6D3vAY77dpcGplu3p5wE6vsNWAvrQ2d_V1KhR03IB1jJZkYwrI8FHCq_5YuzkPfHsgZ9MBQgH-jqqNXs6r8aoUZIbLsYcMHkin2vzRsMy_tjMCI9yXGiOqI-E5efTb-_KbDVwV5cbdqEIegdtYZ2J3mlrFQlmPGYTwFI8Ba9LleSYbCi4o0k74568KcN_w
|
||||
```
|
||||
|
||||
|
||||
### 获取只读用户的Token
|
||||
|
||||
**拥有的权限**
|
||||
|
||||
- view 可查看名称空间的内容
|
||||
- system:node 可查看节点信息
|
||||
- system:persistent-volume-provisioner 可查看存储类和存储卷声明的信息
|
||||
|
||||
**适用场景**
|
||||
|
||||
只读用户不能对集群的配置执行修改操作,非常适用于将开发环境中的 kuboard 只读权限分发给开发者,以便开发者可以便捷地诊断问题
|
||||
|
||||
执行如下命令可以获得 <span style="color: #F56C6C; font-weight: 500;">只读用户</span> 的 Token
|
||||
|
||||
```bash
|
||||
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep kuboard-viewer | awk '{print $1}')
|
||||
```
|
||||
|
||||
|
||||
|
||||
## 访问 Kuboard
|
||||
|
||||
### 通过域名访问
|
||||
|
||||
在浏览器打开链接 http://kuboard.yourclustername.yourdomain.com (使用前面已修改的域名)
|
||||
|
||||
输入前一步骤中获得的 token,可进入控制台界面
|
||||
|
||||
### 通过 NodePort 访问
|
||||
|
||||
kuboard Service 使用了 NodePort 的方式暴露服务,NodePort 为 32567;您可以按如下方式访问 kuboard
|
||||
|
||||
```
|
||||
http://any-of-your-node-ip:32567/
|
||||
```
|
||||
|
||||
> 您也可以修改 kuboard.yaml 文件,使用自己定义的 NodePort 端口号
|
||||
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 342 KiB |
|
Before Width: | Height: | Size: 59 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 96 KiB |
106
docs/install/install-k8s.html
Normal file
@ -1,416 +0,0 @@
|
||||
# 安装 Kubernetes 用于测试
|
||||
|
||||
如果您想拥有一个供个人学习测试使用的 kubernetes 集群,推荐的做法是在阿里云采购如下配置:
|
||||
|
||||
* 3台 2核4G 的ECS(突发性能实例 t5 ecs.t5-c1m2.large,或同等配置)
|
||||
* 100G EFS
|
||||
|
||||
Kuboard 的在线 demo 环境使用的是如下拓扑结构,本文档描述了如何在阿里云完成该 demo 环境的搭建。(推荐阿里云是因为,阿里云是当下技术爱好者最容易接触到的云环境,拥有一个3节点 Kubernetes 集群,每天的成本不超过12元,且,停机状态下不收费,非常适合于技术爱好者学习时使用。)
|
||||
|
||||
[领取阿里云最高2000元红包](https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=obezo3pg)
|
||||
|
||||
[Kuboard 在线体验](http://demo.eip.work/#/login?isReadOnly=true&token=eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJvYXJkLXZpZXdlci10b2tlbi02djZiZiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJvYXJkLXZpZXdlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjhiYTU3YmI1LWFiMTctNDM1NS1hNTM0LTQ0Njk4NGY0NzFlZiIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlLXN5c3RlbTprdWJvYXJkLXZpZXdlciJ9.DcXNIp0RKha1zkV4ga_QlGfcvMLGx2LOyzX-0VeboC3FojKFhxnfBeoda-zTeh6ugJlSM4kQYrRcof1Kx8Mg3-UgofNmgRySbDEVKtJZyMUoHqLmySKUIn8sbX8q83RNcqwcvY-fM8-w8HSuzU7Td7WWNuZrlCL4q_LQDYIBet1nlQ83YsENKNE8rsZQFDw8YM0MH6BEZLdwyhaboy_jjYbsU7kv8gks3aIX4lh1Fs9ZFQpC_6B0_MZvb7rEeG2M8QWXoUkDoL5JCKu6Wot5GlWf0kDMxIsViggP0NmSDTKh6kIvCkT2FZ2I4guEcjE_EjBpdOS6Abta22tzLlPKhg)
|
||||
为保证环境的稳定性,在线 Demo 中只提供只读权限。<span style="color: #F56C6C; font-weight: 500;">(请在PC浏览器中打开)</span>
|
||||
|
||||

|
||||
|
||||
|
||||
## 制作标准机镜像
|
||||
|
||||
通过使用标准机镜像,可以
|
||||
|
||||
- **避免重复执行对测试机安装必要软件的过程**
|
||||
- **以一种相对标准化的过程管理测试机的维护**
|
||||
|
||||
标准机镜像中预装了如下内容:
|
||||
|
||||
- docker
|
||||
- gitlab-runner
|
||||
- kubernetes images
|
||||
|
||||
本文档描述的安装过程已基于 centos 7.6 验证
|
||||
|
||||
标准机镜像的制作过程描述如下:
|
||||
|
||||
### 安装docker
|
||||
|
||||
**卸载旧版本**
|
||||
|
||||
```bash
|
||||
sudo yum remove docker \
|
||||
docker-client \
|
||||
docker-client-latest \
|
||||
docker-common \
|
||||
docker-latest \
|
||||
docker-latest-logrotate \
|
||||
docker-logrotate \
|
||||
docker-selinux \
|
||||
docker-engine-selinux \
|
||||
docker-engine
|
||||
```
|
||||
|
||||
**下载依赖包及安装包**
|
||||
|
||||
```bash
|
||||
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
|
||||
|
||||
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-18.09.7-3.el7.x86_64.rpm
|
||||
|
||||
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.09.7-3.el7.x86_64.rpm
|
||||
```
|
||||
|
||||
**安装**
|
||||
|
||||
```bash
|
||||
sudo yum install -y containerd.io-1.2.6-3.3.el7.x86_64.rpm
|
||||
sudo yum install -y docker-ce-cli-18.09.7-3.el7.x86_64.rpm
|
||||
sudo yum install -y docker-ce-18.09.7-3.el7.x86_64.rpm
|
||||
sudo systemctl enable docker
|
||||
```
|
||||
|
||||
**启动 docker 服务**
|
||||
|
||||
```bash
|
||||
sudo systemctl start docker
|
||||
```
|
||||
|
||||
**检查 docker 版本**
|
||||
|
||||
```bash
|
||||
docker version
|
||||
```
|
||||
|
||||
|
||||
|
||||
**参考文档**
|
||||
|
||||
https://docs.docker.com/install/linux/docker-ce/centos/
|
||||
|
||||
https://docs.docker.com/install/linux/linux-postinstall/
|
||||
|
||||
|
||||
|
||||
### 安装 nfs-utils
|
||||
|
||||
**执行安装命令**
|
||||
|
||||
```bash
|
||||
sudo yum install nfs-utils
|
||||
```
|
||||
|
||||
必须先安装 nfs-utils 才能挂载 nfs 网络存储
|
||||
|
||||
|
||||
|
||||
### K8S基本配置
|
||||
|
||||
**配置K8S的yum源**
|
||||
|
||||
```bash
|
||||
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
|
||||
[kubernetes]
|
||||
name=Kubernetes
|
||||
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
|
||||
enabled=1
|
||||
gpgcheck=0
|
||||
repo_gpgcheck=0
|
||||
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
|
||||
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
|
||||
EOF
|
||||
```
|
||||
|
||||
**关闭swap、防火墙**
|
||||
|
||||
```bash
|
||||
swapoff -a
|
||||
```
|
||||
|
||||
**关闭SeLinux**
|
||||
|
||||
```bash
|
||||
setenforce 0
|
||||
```
|
||||
|
||||
**修改 /etc/sysctl.conf**
|
||||
|
||||
```vim /etc/sysctl.conf```
|
||||
|
||||
向其中添加
|
||||
|
||||
```
|
||||
net.ipv4.ip_forward = 1
|
||||
net.bridge.bridge-nf-call-ip6tables = 1
|
||||
net.bridge.bridge-nf-call-iptables = 1
|
||||
```
|
||||
|
||||
如下图所示
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
**安装kubelet、kubeadm、kubectl**
|
||||
|
||||
```bash
|
||||
yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0
|
||||
```
|
||||
|
||||
|
||||
|
||||
**修改docker Cgroup Driver为systemd**
|
||||
|
||||
```vim /usr/lib/systemd/system/docker.service```
|
||||
|
||||
向其中他添加
|
||||
|
||||
```--exec-opt native.cgroupdriver=systemd```
|
||||
|
||||
如下图所示
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
重启 docker
|
||||
|
||||
```
|
||||
systemctl daemon-reload
|
||||
systemctl restart docker
|
||||
```
|
||||
|
||||
|
||||
|
||||
**启动kubelet**
|
||||
|
||||
```bash
|
||||
systemctl enable kubelet && systemctl start kubelet
|
||||
```
|
||||
|
||||
|
||||
|
||||
**加载 kubernetes 镜像**
|
||||
|
||||
由于k8s服务相关镜像在国外镜像源,国内无法访问
|
||||
|
||||
执行以下命令添加docker k8s国内镜像源
|
||||
|
||||
```bash
|
||||
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
|
||||
|
||||
systemctl restart docker
|
||||
```
|
||||
|
||||
**拉取k8s相关镜像**
|
||||
|
||||
```bash
|
||||
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
|
||||
```
|
||||
|
||||
**更改镜像名为k8s官网镜像**
|
||||
|
||||
```bash
|
||||
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
|
||||
```
|
||||
|
||||
|
||||
|
||||
**制作镜像**
|
||||
|
||||
请参考阿里云基于ECS [制作虚拟机镜像](https://help.aliyun.com/document_detail/35109.html?spm=5176.2020520101.0.0.75fc4df5mtdFmV) 的文档
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## 初始化 master 节点
|
||||
|
||||
### 在 demo-master-a-1 机器上执行
|
||||
|
||||
以下命令以 root 身份执行
|
||||
|
||||
**配置 apiserver.demo 的域名**
|
||||
|
||||
```bash
|
||||
echo "x.x.x.x apiserver.demo" >> /etc/hosts
|
||||
```
|
||||
|
||||
> 请替换其中的 x.x.x.x 为您的 demo-master-a-1 的实际 ip 地址
|
||||
|
||||
|
||||
|
||||
**创建 /root/k8s/kubeadm-config.yaml**
|
||||
|
||||
```yaml
|
||||
apiVersion: kubeadm.k8s.io/v1beta1
|
||||
kind: ClusterConfiguration
|
||||
kubernetesVersion: v1.15.0
|
||||
controlPlaneEndpoint: "apiserver.demo:6443"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
**初始化 apiserver**
|
||||
|
||||
```bash
|
||||
kubeadm init --config=kubeadm-config.yaml --upload-certs
|
||||
```
|
||||
|
||||
执行结果如下图所示:
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
**初始化 root 用户的 kubectl 配置**
|
||||
|
||||
```bash
|
||||
rm -rf /root/.kube/
|
||||
mkdir /root/.kube/
|
||||
cp -i /etc/kubernetes/admin.conf /root/.kube/config
|
||||
```
|
||||
|
||||
|
||||
|
||||
**安装 calico**
|
||||
|
||||
(需要在安全组–ServerFarm需要为集群服务器器端口6443建立安全组规则)
|
||||
|
||||
```bash
|
||||
kubectl apply -f \
|
||||
https://docs.projectcalico.org/v3.6/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml
|
||||
```
|
||||
|
||||
> 安装calico, 请参考https://docs.projectcalico.org/v3.6/getting-started/kubernetes/
|
||||
|
||||
|
||||
|
||||
**等待calico安装就绪:**
|
||||
|
||||
执行如下命令,等待3-10分钟,直到所有的容器组处于 Running 状态
|
||||
|
||||
```bash
|
||||
watch kubectl get pod -n kube-system
|
||||
```
|
||||
|
||||
|
||||
### 检查 apiserver初始化结果
|
||||
|
||||
在第一个master节点 demo-master-a-1 上执行
|
||||
|
||||
```bash
|
||||
kubectl get nodes
|
||||
```
|
||||
|
||||
|
||||
|
||||
## 初始化 worker节点
|
||||
|
||||
### 获得 join命令参数
|
||||
|
||||
**在 master 节点 demo-master-a-1 节点执行**
|
||||
|
||||
```bash
|
||||
kubeadm token create --print-join-command
|
||||
```
|
||||
|
||||
可获取kubeadm join 命令及参数,如下所示
|
||||
|
||||
```bash
|
||||
kubeadm join apiserver.demo:6443 --token mpfjma.4vjjg8flqihor4vt --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303
|
||||
```
|
||||
|
||||
|
||||
|
||||
### 初始化worker
|
||||
|
||||
**针对所有的 worker 节点执行**
|
||||
|
||||
```bash
|
||||
echo "x.x.x.x apiserver.demo" >> /etc/hosts
|
||||
kubeadm join apiserver.demo:6443 --token mpfjma.4vjjg8flqihor4vt --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303
|
||||
```
|
||||
|
||||
> * 将 x.x.x.x 替换为 loader balancer 的实际 ip
|
||||
>
|
||||
> * 将 kubeadm join 命令后的参数替换为上一个步骤中实际从 demo-master-a-1 节点获得的参数
|
||||
|
||||
|
||||
|
||||
### 检查 apiserver初始化结果
|
||||
|
||||
在第一个master节点 demo-master-a-1 上执行
|
||||
|
||||
```bash
|
||||
kubectl get nodes
|
||||
```
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
## 移除 worker 节点
|
||||
|
||||
> 正常情况下,您无需移除 worker 节点
|
||||
|
||||
在准备移除的 worker 节点上执行
|
||||
|
||||
```bash
|
||||
kubeadm reset
|
||||
```
|
||||
|
||||
在第一个 master 节点 demo-master-a-1 上执行
|
||||
|
||||
```bash
|
||||
kubectl delete node demo-worker-x-x
|
||||
```
|
||||
|
||||
> * 将 demo-worker-x-x 替换为要移除的 worker 节点的名字
|
||||
> * worker 节点的名字可以通过在第一个 master 节点 demo-master-a-1 上执行 kubectl get nodes 命令获得
|
||||
|
||||
|
||||
|
||||
## 安装 Ingress Controller
|
||||
|
||||
> ingress官方文档:https://kubernetes.io/docs/concepts/services-networking/ingress/
|
||||
>
|
||||
> Ingress Controllers官网介绍:[https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/)
|
||||
>
|
||||
> 本文中使用如下部署方式:https://kubernetes.github.io/ingress-nginx/deploy/baremetal/#using-a-self-provisioned-edge
|
||||
>
|
||||
> kubernetes支持多种Ingress Controllers,本文推荐使用
|
||||
>
|
||||
> https://github.com/nginxinc/kubernetes-ingress
|
||||
|
||||
|
||||
|
||||
### 在 demo-master-a-1 上执行
|
||||
|
||||
```bash
|
||||
kubectl apply -f https://raw.githubusercontent.com/eip-work/eip-monitor-repository/master/dashboard/nginx-ingress.yaml
|
||||
```
|
||||
|
||||
|
||||
|
||||
### 配置域名解析
|
||||
|
||||
将域名 *.demo.yourdomain.com 解析到地址负载均衡服务器 的 IP 地址 z.z.z.z
|
||||
|
||||
|
||||
|
||||
### 验证配置
|
||||
|
||||
在浏览器访问 a.demo.yourdomain.com,将得到 404 NotFound 错误页面
|
||||
|
||||
|
Before Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 66 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 83 KiB |
42
docs/install/install-kind.html
Normal file
@ -0,0 +1,42 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||
<title>在单机使用 kind 安装 Kubernetes | Kuboard</title>
|
||||
<meta name="description" content="A cool Kubernetes Dashboard">
|
||||
|
||||
|
||||
<link rel="preload" href="/assets/css/0.styles.5203916d.css" as="style"><link rel="preload" href="/assets/js/app.f91cf1c4.js" as="script"><link rel="preload" href="/assets/js/2.690d1a4c.js" as="script"><link rel="preload" href="/assets/js/16.96cf00c4.js" as="script"><link rel="prefetch" href="/assets/js/10.3c4e6290.js"><link rel="prefetch" href="/assets/js/11.d64c0a2b.js"><link rel="prefetch" href="/assets/js/12.fad086d6.js"><link rel="prefetch" href="/assets/js/13.6c83f29c.js"><link rel="prefetch" href="/assets/js/14.85fae375.js"><link rel="prefetch" href="/assets/js/15.40db7d80.js"><link rel="prefetch" href="/assets/js/17.8dafc36c.js"><link rel="prefetch" href="/assets/js/18.f9ec2d92.js"><link rel="prefetch" href="/assets/js/19.1fd89203.js"><link rel="prefetch" href="/assets/js/20.ba1045f1.js"><link rel="prefetch" href="/assets/js/21.c05d61ac.js"><link rel="prefetch" href="/assets/js/22.1dbe3c9f.js"><link rel="prefetch" href="/assets/js/23.807fd6df.js"><link rel="prefetch" href="/assets/js/24.09a1d206.js"><link rel="prefetch" href="/assets/js/25.12dbc53b.js"><link rel="prefetch" href="/assets/js/26.bcfed686.js"><link rel="prefetch" href="/assets/js/27.c23d4ca9.js"><link rel="prefetch" href="/assets/js/28.6a410356.js"><link rel="prefetch" href="/assets/js/29.e956c268.js"><link rel="prefetch" href="/assets/js/3.5316e887.js"><link rel="prefetch" href="/assets/js/30.d71df75d.js"><link rel="prefetch" href="/assets/js/31.d5e59e48.js"><link rel="prefetch" href="/assets/js/32.d1520518.js"><link rel="prefetch" href="/assets/js/33.f591b781.js"><link rel="prefetch" href="/assets/js/34.c7982678.js"><link rel="prefetch" href="/assets/js/35.ed6a8233.js"><link rel="prefetch" href="/assets/js/36.8bff1b35.js"><link rel="prefetch" href="/assets/js/4.6d9dfc35.js"><link rel="prefetch" href="/assets/js/5.cd997c9b.js"><link rel="prefetch" href="/assets/js/6.732ffd80.js"><link rel="prefetch" href="/assets/js/7.898bacc7.js"><link rel="prefetch" href="/assets/js/8.ccc2677d.js"><link rel="prefetch" href="/assets/js/9.43663f9d.js">
|
||||
<link rel="stylesheet" href="/assets/css/0.styles.5203916d.css">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" data-server-rendered="true"><div class="theme-container"><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/" class="nav-link router-link-active">安装</a></div><div class="nav-item"><a href="/guide/" class="nav-link">使用</a></div><div class="nav-item"><a href="/support/" class="nav-link">支持</a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/overview/" class="nav-link">简介</a></div><div class="nav-item"><a href="/install/" class="nav-link router-link-active">安装</a></div><div class="nav-item"><a href="/guide/" class="nav-link">使用</a></div><div class="nav-item"><a href="/support/" class="nav-link">支持</a></div> <!----></nav> <ul class="sidebar-links"><li><a href="/install/" class="sidebar-link">概述</a></li><li><a href="/install/install-k8s.html" class="sidebar-link">安装 Kubernetes 用于测试</a></li><li><a href="/install/install-kubernetes.html" class="sidebar-link">安装 Kubernetes</a></li><li><a href="/install/install-dashboard.html" class="sidebar-link">安装 kuboard</a></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="在单机使用-kind-安装-kubernetes"><a href="#在单机使用-kind-安装-kubernetes" aria-hidden="true" class="header-anchor">#</a> 在单机使用 kind 安装 Kubernetes</h1> <p>本文旨在通过使用 kind 搭建本地 k8s 集群环境,为技术爱好者提供快速上手 Kuboard 的基本实践方式。</p> <h2 id="环境简介"><a href="#环境简介" aria-hidden="true" class="header-anchor">#</a> 环境简介</h2> <p>本地搭建 k8s 集群需要 kind 工具及 docker 环境。</p> <p>建议硬件配置:2核 cpu,8G 内存</p> <p>ps: 以下均为在 Linux 平台实践,其他平台可参考文章中链接。</p> <h3 id="kind-简介与安装"><a href="#kind-简介与安装" aria-hidden="true" class="header-anchor">#</a> kind 简介与安装</h3> <p>kind:https://kind.sigs.k8s.io/ 是一个使用 Docker 容器运行本地 Kubernetes 集群的工具。
|
||||
ps:本文使用kind V0.4.0</p> <p>安装:</p> <ul><li><p>linux:</p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token function">curl</span> -Lo ./kind-linux-amd64 https://github.com/kubernetes-sigs/kind/releases/download/v0.4.0/kind-linux-amd64
|
||||
<span class="token function">chmod</span> +x ./kind-linux-amd64
|
||||
<span class="token function">mv</span> ./kind-linux-amd64 /usr/local/bin/kind
|
||||
</code></pre></div></li> <li><p>win:</p> <div class="language-powershell extra-class"><pre class="language-powershell"><code>curl<span class="token punctuation">.</span>exe <span class="token operator">-</span>Lo kind<span class="token operator">-</span>windows<span class="token operator">-</span>amd64<span class="token punctuation">.</span>exe https:<span class="token operator">/</span><span class="token operator">/</span>github<span class="token punctuation">.</span>com<span class="token operator">/</span>kubernetes<span class="token operator">-</span>sigs<span class="token operator">/</span>kind<span class="token operator">/</span>releases<span class="token operator">/</span>download<span class="token operator">/</span>v0<span class="token punctuation">.</span>4<span class="token punctuation">.</span>0<span class="token operator">/</span>kind<span class="token operator">-</span>windows<span class="token operator">-</span>amd64
|
||||
<span class="token function">Move-Item</span> <span class="token punctuation">.</span>\kind<span class="token operator">-</span>windows<span class="token operator">-</span>amd64<span class="token punctuation">.</span>exe c:\some<span class="token operator">-</span><span class="token function">dir</span><span class="token operator">-in</span><span class="token operator">-</span>your<span class="token operator">-</span>PATH\kind<span class="token punctuation">.</span>exe
|
||||
</code></pre></div></li> <li><p>mac:</p> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token function">curl</span> -Lo ./kind-darwin-amd64 https://github.com/kubernetes-sigs/kind/releases/download/v0.4.0/kind-darwin-amd64
|
||||
<span class="token function">chmod</span> +x ./kind-darwin-amd64
|
||||
<span class="token function">mv</span> ./kind-darwin-amd64 /usr/local/bin/kind
|
||||
</code></pre></div></li></ul> <h3 id="docker-环境"><a href="#docker-环境" aria-hidden="true" class="header-anchor">#</a> docker 环境</h3> <p>Kind 的主要功能目前需要有 Docker 环境的支持,可参考 Docker 官方文档:https://links.jianshu.com/go?to=https%3A%2F%2Fdocs.docker.com%2Finstall%2F 进行安装。</p> <h3 id="kubectl-安装"><a href="#kubectl-安装" aria-hidden="true" class="header-anchor">#</a> kubectl 安装</h3> <p>kubectl https://kubernetes.io/docs/tasks/tools/install-kubectl/ 是 Kubernetes 命令行工具,可以在 Kubernetes 上部署和管理应用程序</p> <p>Linux:</p> <div class="language- extra-class"><pre class="language-text"><code>curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.15.0/bin/linux/amd64/kubectl
|
||||
chmod +x ./kubectl
|
||||
sudo mv ./kubectl /usr/local/bin/kubectl
|
||||
</code></pre></div><p>ps: 由于网络问题多次尝试可下载成功</p> <h2 id="k8s-集群搭建"><a href="#k8s-集群搭建" aria-hidden="true" class="header-anchor">#</a> k8s 集群搭建</h2> <h3 id="准备-kind-搭建集群配置文件-kind-config-yaml"><a href="#准备-kind-搭建集群配置文件-kind-config-yaml" aria-hidden="true" class="header-anchor">#</a> 准备 kind 搭建集群配置文件 kind-config.yaml</h3> <div class="language-yaml extra-class"><pre class="language-yaml"><code><span class="token key atrule">kind</span><span class="token punctuation">:</span> Cluster
|
||||
<span class="token key atrule">apiVersion</span><span class="token punctuation">:</span> kind.sigs.k8s.io/v1alpha3
|
||||
<span class="token key atrule">nodes</span><span class="token punctuation">:</span>
|
||||
<span class="token punctuation">-</span> <span class="token key atrule">role</span><span class="token punctuation">:</span> control<span class="token punctuation">-</span>plane
|
||||
<span class="token punctuation">-</span> <span class="token key atrule">role</span><span class="token punctuation">:</span> worker
|
||||
</code></pre></div><h3 id="使用-kind-搭建集群"><a href="#使用-kind-搭建集群" aria-hidden="true" class="header-anchor">#</a> 使用 kind 搭建集群</h3> <div class="language- extra-class"><pre class="language-text"><code>kind create cluster --config kind-config.yaml
|
||||
</code></pre></div><h3 id="创建成功"><a href="#创建成功" aria-hidden="true" class="header-anchor">#</a> 创建成功</h3> <p><img src="/assets/img/1563696697515.94512132.png" alt="1563696697515"></p> <p>按照提示配置环境变量</p> <div class="language- extra-class"><pre class="language-text"><code>export KUBECONFIG="$(kind get kubeconfig-path --name="kind")"
|
||||
</code></pre></div><p>查看集群信息</p> <div class="language- extra-class"><pre class="language-text"><code>kubectl cluster-info
|
||||
</code></pre></div><p><img src="/assets/img/1563697667480.8c846298.png" alt="1563697667480"></p> <h2 id="kuboard-安装"><a href="#kuboard-安装" aria-hidden="true" class="header-anchor">#</a> kuboard 安装</h2> <p>官方安装地址:http://kuboard.cn/#/install/install-dashboard</p> <h3 id="获取并修改-yaml-文件"><a href="#获取并修改-yaml-文件" aria-hidden="true" class="header-anchor">#</a> 获取并修改 yaml 文件</h3> <div class="language-bash extra-class"><pre class="language-bash"><code><span class="token function">wget</span> https://raw.githubusercontent.com/eip-work/eip-monitor-repository/master/dashboard/kuboard.yaml
|
||||
</code></pre></div><p>修改文件 kuboard.yaml 中 Ingress 的 host 为空</p> <h3 id="执行安装"><a href="#执行安装" aria-hidden="true" class="header-anchor">#</a> 执行安装</h3> <div class="language-bash extra-class"><pre class="language-bash"><code>kubectl apply -f kuboard.yaml
|
||||
</code></pre></div><h3 id="查看启动状态"><a href="#查看启动状态" aria-hidden="true" class="header-anchor">#</a> 查看启动状态</h3> <div class="language- extra-class"><pre class="language-text"><code>kubectl get pods -n kube-system --watch
|
||||
</code></pre></div><p>等待 kuboard 启动成功</p> <h3 id="访问-kuboard-页面"><a href="#访问-kuboard-页面" aria-hidden="true" class="header-anchor">#</a> 访问 kuboard 页面</h3> <p>待启动成功后,需要做 80 端口转发,通过浏览器访问 kuboard</p> <div class="language- extra-class"><pre class="language-text"><code>kubectl port-forward service/kuboard 9080:80 -n kube-system
|
||||
</code></pre></div><p>获取登录 token</p> <div class="language-bash extra-class"><pre class="language-bash"><code>kubectl -n kube-system describe secret <span class="token variable"><span class="token variable">$(</span>kubectl -n kube-system get secret <span class="token operator">|</span> <span class="token function">grep</span> kuboard-user <span class="token operator">|</span> <span class="token function">awk</span> <span class="token string">'{print <span class="token variable">$1</span>}'</span><span class="token variable">)</span></span>
|
||||
</code></pre></div><p><img src="/assets/img/1563698644736.d67b2e09.png" alt="1563698644736"></p> <p>浏览器中访问 http://localhost:9080</p> <p><img src="/assets/img/1563698714557.fa1eeb1c.png" alt="1563698714557"></p> <p>将获取的 token 复制到浏览器中,访问成功</p> <p><img src="/assets/img/1563698865448.2cbaf53a.png" alt="1563698865448"></p></div> <footer class="page-edit"><!----> <!----></footer> <!----> </main></div><div class="global-ui"></div></div>
|
||||
<script src="/assets/js/app.f91cf1c4.js" defer></script><script src="/assets/js/2.690d1a4c.js" defer></script><script src="/assets/js/16.96cf00c4.js" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,146 +0,0 @@
|
||||
# 在单机使用 kind 安装 Kubernetes
|
||||
|
||||
本文旨在通过使用 kind 搭建本地 k8s 集群环境,为技术爱好者提供快速上手 Kuboard 的基本实践方式。
|
||||
|
||||
## 环境简介
|
||||
|
||||
本地搭建 k8s 集群需要 kind 工具及 docker 环境。
|
||||
|
||||
建议硬件配置:2核 cpu,8G 内存
|
||||
|
||||
ps: 以下均为在 Linux 平台实践,其他平台可参考文章中链接。
|
||||
|
||||
### kind 简介与安装
|
||||
kind:https://kind.sigs.k8s.io/ 是一个使用 Docker 容器运行本地 Kubernetes 集群的工具。
|
||||
ps:本文使用kind V0.4.0
|
||||
|
||||
安装:
|
||||
|
||||
- linux:
|
||||
|
||||
```bash
|
||||
curl -Lo ./kind-linux-amd64 https://github.com/kubernetes-sigs/kind/releases/download/v0.4.0/kind-linux-amd64
|
||||
chmod +x ./kind-linux-amd64
|
||||
mv ./kind-linux-amd64 /usr/local/bin/kind
|
||||
```
|
||||
|
||||
- win:
|
||||
|
||||
```powershell
|
||||
curl.exe -Lo kind-windows-amd64.exe https://github.com/kubernetes-sigs/kind/releases/download/v0.4.0/kind-windows-amd64
|
||||
Move-Item .\kind-windows-amd64.exe c:\some-dir-in-your-PATH\kind.exe
|
||||
```
|
||||
|
||||
- mac:
|
||||
|
||||
```bash
|
||||
curl -Lo ./kind-darwin-amd64 https://github.com/kubernetes-sigs/kind/releases/download/v0.4.0/kind-darwin-amd64
|
||||
chmod +x ./kind-darwin-amd64
|
||||
mv ./kind-darwin-amd64 /usr/local/bin/kind
|
||||
```
|
||||
|
||||
### docker 环境
|
||||
|
||||
Kind 的主要功能目前需要有 Docker 环境的支持,可参考 Docker 官方文档:https://links.jianshu.com/go?to=https%3A%2F%2Fdocs.docker.com%2Finstall%2F 进行安装。
|
||||
|
||||
### kubectl 安装
|
||||
|
||||
kubectl https://kubernetes.io/docs/tasks/tools/install-kubectl/ 是 Kubernetes 命令行工具,可以在 Kubernetes 上部署和管理应用程序
|
||||
|
||||
Linux:
|
||||
|
||||
```
|
||||
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.15.0/bin/linux/amd64/kubectl
|
||||
chmod +x ./kubectl
|
||||
sudo mv ./kubectl /usr/local/bin/kubectl
|
||||
```
|
||||
|
||||
ps: 由于网络问题多次尝试可下载成功
|
||||
|
||||
## k8s 集群搭建
|
||||
|
||||
### 准备 kind 搭建集群配置文件 kind-config.yaml
|
||||
|
||||
```yaml
|
||||
kind: Cluster
|
||||
apiVersion: kind.sigs.k8s.io/v1alpha3
|
||||
nodes:
|
||||
- role: control-plane
|
||||
- role: worker
|
||||
```
|
||||
|
||||
### 使用 kind 搭建集群
|
||||
|
||||
```
|
||||
kind create cluster --config kind-config.yaml
|
||||
```
|
||||
|
||||
### 创建成功
|
||||
|
||||

|
||||
|
||||
按照提示配置环境变量
|
||||
|
||||
```
|
||||
export KUBECONFIG="$(kind get kubeconfig-path --name="kind")"
|
||||
```
|
||||
|
||||
查看集群信息
|
||||
|
||||
```
|
||||
kubectl cluster-info
|
||||
```
|
||||
|
||||

|
||||
|
||||
## kuboard 安装
|
||||
|
||||
官方安装地址:http://kuboard.cn/#/install/install-dashboard
|
||||
|
||||
### 获取并修改 yaml 文件
|
||||
|
||||
```bash
|
||||
wget https://raw.githubusercontent.com/eip-work/eip-monitor-repository/master/dashboard/kuboard.yaml
|
||||
```
|
||||
|
||||
修改文件 kuboard.yaml 中 Ingress 的 host 为空
|
||||
|
||||
### 执行安装
|
||||
|
||||
```bash
|
||||
kubectl apply -f kuboard.yaml
|
||||
```
|
||||
|
||||
### 查看启动状态
|
||||
|
||||
```
|
||||
kubectl get pods -n kube-system --watch
|
||||
```
|
||||
|
||||
等待 kuboard 启动成功
|
||||
|
||||
### 访问 kuboard 页面
|
||||
|
||||
待启动成功后,需要做 80 端口转发,通过浏览器访问 kuboard
|
||||
|
||||
```
|
||||
kubectl port-forward service/kuboard 9080:80 -n kube-system
|
||||
```
|
||||
|
||||
获取登录 token
|
||||
|
||||
```bash
|
||||
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep kuboard-user | awk '{print $1}')
|
||||
```
|
||||
|
||||

|
||||
|
||||
浏览器中访问 http://localhost:9080
|
||||
|
||||

|
||||
|
||||
将获取的 token 复制到浏览器中,访问成功
|
||||
|
||||

|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 140 KiB |
|
Before Width: | Height: | Size: 94 KiB |
|
Before Width: | Height: | Size: 13 KiB |
124
docs/install/install-kubernetes.html
Normal file
@ -1,489 +0,0 @@
|
||||
# 安装 Kubernetes
|
||||
|
||||
# 介绍
|
||||
|
||||
kubernetes 安装有多种选择,本文档描述的集群安装具备如下特点:
|
||||
|
||||
* 使用 kubernetes 1.15.0
|
||||
* 三个 master 组成主节点集群,通过内网 loader balancer 实现负载均衡
|
||||
* 多个 worker 组成工作节点集群,通过外网 loader balancer 实现负载均衡
|
||||
* 使用 calico 作为网络插件
|
||||
* 使用 nginx-ingress 作为 kubernetes ingress controller
|
||||
|
||||
[领取阿里云最高2000元红包](https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=obezo3pg)
|
||||
|
||||
下图为 kubernetes 安装的拓扑图
|
||||
|
||||
|
||||
|
||||

|
||||
|
||||
* 标准机用于制作 centos 镜像,该镜像预先安装了 docker / kubelet / kubectl / kubeadm, 并预先下载了 kubernetes 所需的 docker image
|
||||
* 跳板机用于通过 ssh 端口访问标准机、master 节点、worker 节点的 shell,如果您所使用的环境中,可以直接访问各节点的 shell,也可以无需跳板机
|
||||
* NAT y.y.y.y将 apiserver 的6443端口映射到外网,如果您始终只在 master 节点上执行 kubectl 命令,则无需做此映射
|
||||
* Load Balancer z.z.z.z 是 kubernetes 的 Ingress 外网映射,通常是必须的
|
||||
|
||||
|
||||
|
||||
# 安装步骤
|
||||
|
||||
|
||||
## 制作标准机镜像
|
||||
|
||||
通过使用标准机镜像,可以
|
||||
|
||||
- **避免重复执行对测试机安装必要软件的过程**
|
||||
- **以一种相对标准化的过程管理测试机的维护**
|
||||
|
||||
标准机镜像中预装了如下内容:
|
||||
|
||||
- docker
|
||||
- gitlab-runner
|
||||
- kubernetes images
|
||||
|
||||
本文档描述的安装过程已基于 centos 7.6 验证
|
||||
|
||||
标准机镜像的制作过程描述如下:
|
||||
|
||||
### 安装docker
|
||||
|
||||
**卸载旧版本**
|
||||
|
||||
```bash
|
||||
sudo yum remove docker \
|
||||
docker-client \
|
||||
docker-client-latest \
|
||||
docker-common \
|
||||
docker-latest \
|
||||
docker-latest-logrotate \
|
||||
docker-logrotate \
|
||||
docker-selinux \
|
||||
docker-engine-selinux \
|
||||
docker-engine
|
||||
```
|
||||
|
||||
**下载依赖包及安装包**
|
||||
|
||||
```bash
|
||||
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
|
||||
|
||||
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-cli-18.09.7-3.el7.x86_64.rpm
|
||||
|
||||
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/docker-ce-18.09.7-3.el7.x86_64.rpm
|
||||
```
|
||||
|
||||
**安装**
|
||||
|
||||
```bash
|
||||
sudo yum install -y containerd.io-1.2.6-3.3.el7.x86_64.rpm
|
||||
sudo yum install -y docker-ce-cli-18.09.7-3.el7.x86_64.rpm
|
||||
sudo yum install -y docker-ce-18.09.7-3.el7.x86_64.rpm
|
||||
sudo systemctl enable docker
|
||||
```
|
||||
|
||||
**启动 docker 服务**
|
||||
|
||||
```bash
|
||||
sudo systemctl start docker
|
||||
```
|
||||
|
||||
**检查 docker 版本**
|
||||
|
||||
```bash
|
||||
docker version
|
||||
```
|
||||
|
||||
|
||||
|
||||
**参考文档**
|
||||
|
||||
https://docs.docker.com/install/linux/docker-ce/centos/
|
||||
|
||||
https://docs.docker.com/install/linux/linux-postinstall/
|
||||
|
||||
|
||||
|
||||
### 安装 nfs-utils
|
||||
|
||||
**执行安装命令**
|
||||
|
||||
```bash
|
||||
sudo yum install nfs-utils
|
||||
```
|
||||
|
||||
必须先安装 nfs-utils 才能挂载 nfs 网络存储
|
||||
|
||||
|
||||
|
||||
### K8S基本配置
|
||||
|
||||
**配置K8S的yum源**
|
||||
|
||||
```bash
|
||||
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
|
||||
[kubernetes]
|
||||
name=Kubernetes
|
||||
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
|
||||
enabled=1
|
||||
gpgcheck=0
|
||||
repo_gpgcheck=0
|
||||
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
|
||||
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
|
||||
EOF
|
||||
```
|
||||
|
||||
**关闭swap、防火墙**
|
||||
|
||||
```bash
|
||||
swapoff -a
|
||||
```
|
||||
|
||||
**关闭SeLinux**
|
||||
|
||||
```bash
|
||||
setenforce 0
|
||||
```
|
||||
|
||||
**修改 /etc/sysctl.conf**
|
||||
|
||||
```vim /etc/sysctl.conf```
|
||||
|
||||
向其中添加
|
||||
|
||||
```
|
||||
net.ipv4.ip_forward = 1
|
||||
net.bridge.bridge-nf-call-ip6tables = 1
|
||||
net.bridge.bridge-nf-call-iptables = 1
|
||||
```
|
||||
|
||||
如下图所示
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
**安装kubelet、kubeadm、kubectl**
|
||||
|
||||
```bash
|
||||
yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0
|
||||
```
|
||||
|
||||
|
||||
|
||||
**修改docker Cgroup Driver为systemd**
|
||||
|
||||
```vim /usr/lib/systemd/system/docker.service```
|
||||
|
||||
向其中他添加
|
||||
|
||||
```--exec-opt native.cgroupdriver=systemd```
|
||||
|
||||
如下图所示
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
重启 docker
|
||||
|
||||
```
|
||||
systemctl daemon-reload
|
||||
systemctl restart docker
|
||||
```
|
||||
|
||||
|
||||
|
||||
**启动kubelet**
|
||||
|
||||
```bash
|
||||
systemctl enable kubelet && systemctl start kubelet
|
||||
```
|
||||
|
||||
|
||||
|
||||
**加载 kubernetes 镜像**
|
||||
|
||||
由于k8s服务相关镜像在国外镜像源,国内无法访问
|
||||
|
||||
执行以下命令添加docker k8s国内镜像源
|
||||
|
||||
```bash
|
||||
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
|
||||
|
||||
systemctl restart docker
|
||||
```
|
||||
|
||||
**拉取k8s相关镜像**
|
||||
|
||||
```bash
|
||||
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
|
||||
```
|
||||
|
||||
**更改镜像名为k8s官网镜像**
|
||||
|
||||
```bash
|
||||
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
|
||||
```
|
||||
|
||||
|
||||
|
||||
**制作镜像**
|
||||
|
||||
请参考阿里云基于ECS [制作虚拟机镜像](https://help.aliyun.com/document_detail/35109.html?spm=5176.2020520101.0.0.75fc4df5mtdFmV) 的文档
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
## 初始化API Server
|
||||
|
||||
### 创建 ApiServer 的 ELB(私网)
|
||||
|
||||
监听端口:6443 / TCP
|
||||
|
||||
后端资源组:包含 apple-master-a-1, apple-master-b-1, apple-master-b-2
|
||||
|
||||
后端端口:6443
|
||||
|
||||
开启 按源地址保持会话
|
||||
|
||||
假设完成创建以后,ELB的 ip 地址为 x.x.x.x
|
||||
|
||||
### 初始化第一个master节点
|
||||
|
||||
在 apple-master-a-1机器上执行
|
||||
|
||||
**配置 apiserver.apple 的域名**
|
||||
|
||||
```bash
|
||||
sudo -i
|
||||
echo "x.x.x.x apiserver.apple" >> /etc/hosts
|
||||
```
|
||||
|
||||
> 请替换其中的 x.x.x.x 为您的负载均衡服务器的实际 ip 地址
|
||||
|
||||
|
||||
|
||||
**创建 /root/k8s/kubeadm-config.yaml**
|
||||
|
||||
```yaml
|
||||
apiVersion: kubeadm.k8s.io/v1beta1
|
||||
kind: ClusterConfiguration
|
||||
kubernetesVersion: v1.14.3
|
||||
controlPlaneEndpoint: "apiserver.apple:6443"
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
**初始化 apiserver**
|
||||
|
||||
```bash
|
||||
kubeadm init --config=/root/k8s/kubeadm-config.yaml --upload-certs
|
||||
|
||||
```
|
||||
|
||||
执行结果如下图所示:
|
||||
|
||||

|
||||
|
||||
**初始化 gitlab-runner 用户的 kubectl 配置**
|
||||
|
||||
```bash
|
||||
rm -rf /home/gitlab-runner/.kube/
|
||||
mkdir /home/gitlab-runner/.kube/
|
||||
cp -i /etc/kubernetes/admin.conf /home/gitlab-runner/.kube/config
|
||||
chown -R gitlab-runner:gitlab-runner /home/gitlab-runner/.kube
|
||||
```
|
||||
|
||||
|
||||
|
||||
**安装 calico**
|
||||
|
||||
(需要在安全组–ServerFarm需要为集群服务器器端口6443建立安全组规则)
|
||||
|
||||
```bash
|
||||
su - gitlab-runner
|
||||
kubectl apply -f \
|
||||
https://docs.projectcalico.org/v3.6/getting-started/kubernetes/installation/hosted/kubernetes-datastore/calico-networking/1.7/calico.yaml
|
||||
```
|
||||
|
||||
> 安装calico, 请参考https://docs.projectcalico.org/v3.6/getting-started/kubernetes/
|
||||
|
||||
|
||||
|
||||
**等待calico安装就绪:**
|
||||
|
||||
执行如下命令,等待3-10分钟,直到所有的容器组处于 Running 状态
|
||||
|
||||
```sh
|
||||
watch kubectl get pod -n kube-system
|
||||
```
|
||||
|
||||
|
||||
|
||||
### 初始化第二、三个master节点
|
||||
|
||||
在 apple-master-b-1 和 apple-master-b-2 机器上执行
|
||||
|
||||
```bash
|
||||
sudo -i
|
||||
echo "x.x.x.x apiserver.apple" >> /etc/hosts
|
||||
```
|
||||
|
||||
|
||||
|
||||
执行 (以下命令行在初始化 apple-master-a-1 时,被打印在控制台上,执行时应该使用控制台打印出的命令参数)
|
||||
|
||||
```bash
|
||||
kubeadm join apiserver.apple:6443 --token ejwx62.vqwog6il5p83uk7y \
|
||||
--discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303 \
|
||||
--experimental-control-plane --certificate-key 70eb87e62f052d2d5de759969d5b42f372d0ad798f98df38f7fe73efdf63a13c
|
||||
```
|
||||
|
||||
|
||||
|
||||
### 检查 apiserver初始化结果
|
||||
|
||||
在第一个master节点 apple-master-a-1 上执行
|
||||
|
||||
```bash
|
||||
sudo -i
|
||||
su - gitlab-runner
|
||||
kubectl get nodes
|
||||
```
|
||||
|
||||
|
||||
|
||||
## 初始化 worker节点
|
||||
|
||||
### 获得 join命令参数
|
||||
|
||||
**在第一个master节点 apple-master-a-1 节点执行**
|
||||
|
||||
```bash
|
||||
sudo -i
|
||||
kubeadm token create --print-join-command
|
||||
```
|
||||
|
||||
可获取kubeadm join 命令及参数,如下所示
|
||||
|
||||
```bash
|
||||
kubeadm join apiserver.apple:6443 --token mpfjma.4vjjg8flqihor4vt --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303
|
||||
```
|
||||
|
||||
|
||||
|
||||
### 初始化worker
|
||||
|
||||
**针对所有的 worker 节点执行**
|
||||
|
||||
```bash
|
||||
sudo -i
|
||||
echo "x.x.x.x apiserver.apple" >> /etc/hosts
|
||||
kubeadm join apiserver.apple:6443 --token mpfjma.4vjjg8flqihor4vt --discovery-token-ca-cert-hash sha256:6f7a8e40a810323672de5eee6f4d19aa2dbdb38411845a1bf5dd63485c43d303
|
||||
```
|
||||
|
||||
> * 将 x.x.x.x 替换为 loader balancer 的实际 ip
|
||||
>
|
||||
> * 将 kubeadm join 命令后的参数替换为上一个步骤中实际从 apple-master-a-1 节点获得的参数
|
||||
|
||||
|
||||
|
||||
### 检查 apiserver初始化结果
|
||||
|
||||
在第一个master节点 apple-master-a-1 上执行
|
||||
|
||||
```bash
|
||||
sudo -i
|
||||
su - gitlab-runner
|
||||
kubectl get nodes
|
||||
```
|
||||
|
||||
|
||||
|
||||
## 移除 worker 节点
|
||||
|
||||
> 正常情况下,您无需移除 worker 节点
|
||||
|
||||
在准备移除的 worker 节点上执行
|
||||
|
||||
```bash
|
||||
sudo -i
|
||||
kubeadm reset
|
||||
```
|
||||
|
||||
在第一个 master 节点 apple-master-a-1 上执行
|
||||
|
||||
```bash
|
||||
sudo -i
|
||||
su - gitlab-runner
|
||||
kubectl delete node apple-worker-x-x
|
||||
```
|
||||
|
||||
> * 将 apple-worker-x-x 替换为要移除的 worker 节点的名字
|
||||
> * worker 节点的名字可以通过在第一个 master 节点 apple-master-a-1 上执行 kubectl get nodes 命令获得
|
||||
|
||||
|
||||
|
||||
## 安装 Ingress Controller
|
||||
|
||||
> ingress官方文档:https://kubernetes.io/docs/concepts/services-networking/ingress/
|
||||
>
|
||||
> Ingress Controllers官网介绍:[https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/)
|
||||
>
|
||||
> 本文中使用如下部署方式:https://kubernetes.github.io/ingress-nginx/deploy/baremetal/#using-a-self-provisioned-edge
|
||||
>
|
||||
> kubernetes支持多种Ingress Controllers,本文推荐使用
|
||||
>
|
||||
> https://github.com/nginxinc/kubernetes-ingress
|
||||
|
||||
|
||||
|
||||
### 在 apple-master-a-1 上执行
|
||||
|
||||
```bash
|
||||
su - gitlab-runner
|
||||
kubectl apply -f https://raw.githubusercontent.com/eip-work/eip-monitor-repository/master/dashboard/nginx-ingress.yaml
|
||||
```
|
||||
|
||||
|
||||
|
||||
### 在IaaS云控制台完成如下配置(**公网ELB**)
|
||||
|
||||
创建负载均衡 ELB:
|
||||
|
||||
监听器 1:80 / TCP, SOURCE_ADDRESS 会话保持
|
||||
|
||||
服务器资源池 1: apple-worker-x-x 的所有节点的 80端口
|
||||
|
||||
监听器 2:443 / TCP, SOURCE_ADDRESS 会话保持
|
||||
|
||||
服务器资源池 2: apple-worker-x-x 的所有节点的443端口
|
||||
|
||||
假设刚创建的负载均衡 ELB 的 IP 地址为: z.z.z.z
|
||||
|
||||
|
||||
|
||||
### 配置域名解析
|
||||
|
||||
将域名 *.apple.yourdomain.com 解析到地址负载均衡服务器 的 IP 地址 z.z.z.z
|
||||
|
||||
|
||||
|
||||
### 验证配置
|
||||
|
||||
在浏览器访问 a.apple.yourdomain.com,将得到 404 NotFound 错误页面
|
||||
|
||||