59 lines
20 KiB
HTML
59 lines
20 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en-US">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<title>导入 example 微服务 | Kuboard</title>
|
||
<meta name="description" content="A cool Kubernetes Dashboard">
|
||
|
||
|
||
<link rel="preload" href="/assets/css/0.styles.f7270952.css" as="style"><link rel="preload" href="/assets/js/app.1aea5246.js" as="script"><link rel="preload" href="/assets/js/11.ece05c2e.js" as="script"><link rel="preload" href="/assets/js/2.7beee842.js" as="script"><link rel="preload" href="/assets/js/5.84a977be.js" as="script"><link rel="prefetch" href="/assets/js/10.1fb09bde.js"><link rel="prefetch" href="/assets/js/12.36a43db6.js"><link rel="prefetch" href="/assets/js/13.a3c7408e.js"><link rel="prefetch" href="/assets/js/14.848c4d4d.js"><link rel="prefetch" href="/assets/js/15.4e867c35.js"><link rel="prefetch" href="/assets/js/16.8fc07fa2.js"><link rel="prefetch" href="/assets/js/17.63b12ede.js"><link rel="prefetch" href="/assets/js/18.ce28b0b6.js"><link rel="prefetch" href="/assets/js/19.15c5282f.js"><link rel="prefetch" href="/assets/js/20.0fcdd81e.js"><link rel="prefetch" href="/assets/js/21.e225b222.js"><link rel="prefetch" href="/assets/js/22.7c147cae.js"><link rel="prefetch" href="/assets/js/23.595c64cb.js"><link rel="prefetch" href="/assets/js/24.334d8141.js"><link rel="prefetch" href="/assets/js/25.1b5f98e3.js"><link rel="prefetch" href="/assets/js/26.3a77fe9f.js"><link rel="prefetch" href="/assets/js/27.d031e218.js"><link rel="prefetch" href="/assets/js/28.178bbcd9.js"><link rel="prefetch" href="/assets/js/29.a90b24f5.js"><link rel="prefetch" href="/assets/js/3.be84d8fc.js"><link rel="prefetch" href="/assets/js/30.5e2e0648.js"><link rel="prefetch" href="/assets/js/31.22ed528f.js"><link rel="prefetch" href="/assets/js/32.735c7fda.js"><link rel="prefetch" href="/assets/js/33.559772c6.js"><link rel="prefetch" href="/assets/js/34.568a49f8.js"><link rel="prefetch" href="/assets/js/35.b9912582.js"><link rel="prefetch" href="/assets/js/36.5fbc1f27.js"><link rel="prefetch" href="/assets/js/37.9c3a8113.js"><link rel="prefetch" href="/assets/js/38.0324f620.js"><link rel="prefetch" href="/assets/js/4.caad100e.js"><link rel="prefetch" href="/assets/js/6.0bed3517.js"><link rel="prefetch" href="/assets/js/7.8a40c4b7.js"><link rel="prefetch" href="/assets/js/8.bb1f98a1.js"><link rel="prefetch" href="/assets/js/9.8cc06980.js">
|
||
<link rel="stylesheet" href="/assets/css/0.styles.f7270952.css">
|
||
</head>
|
||
<body>
|
||
<div id="app" data-server-rendered="true"><div class="theme-container" data-v-79c95b4d><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">安装</a></div><div class="nav-item"><a href="/guide/" class="nav-link router-link-active">使用</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"><div data-v-79c95b4d><div style="text-align:center;margin-top:20px;" data-v-79c95b4d><div class="side-nav-item" style="margin-left:0;" data-v-79c95b4d><a href="/overview/" class="nav-link" data-v-79c95b4d>简介</a></div> <div class="side-nav-item" data-v-79c95b4d><a href="/install/" class="nav-link router-link-exact-active router-link-active" data-v-79c95b4d>安装</a></div> <div class="side-nav-item" style="border-bottom:2px solid #0b85ff;" data-v-79c95b4d><a href="/guide/" class="nav-link" data-v-79c95b4d>使用</a></div> <div class="side-nav-item" data-v-79c95b4d><a href="/support/" class="nav-link" data-v-79c95b4d>支持</a></div></div></div> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>概述</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/guide/" class="sidebar-link">概述</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>Example</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/guide/example/busybox.html" class="sidebar-link">部署 busybox</a></li><li><a href="/guide/example/import.html" class="active sidebar-link">导入 example 微服务</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/guide/example/import.html#前提" class="sidebar-link">前提</a></li><li class="sidebar-sub-header"><a href="/guide/example/import.html#创建存储资源" class="sidebar-link">创建存储资源</a></li><li class="sidebar-sub-header"><a href="/guide/example/import.html#创建名称空间" class="sidebar-link">创建名称空间</a></li><li class="sidebar-sub-header"><a href="/guide/example/import.html#导入-example" class="sidebar-link">导入 example</a></li><li class="sidebar-sub-header"><a href="/guide/example/import.html#验证-web-example" class="sidebar-link">验证 web-example</a></li></ul></li><li><a href="/guide/example/monitor.html" class="sidebar-link">监控 example (alpha)</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>集群管理</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/guide/cluster/computing.html" class="sidebar-link">计算资源管理</a></li><li><a href="/guide/cluster/storage.html" class="sidebar-link">存储空间管理</a></li><li><a href="/guide/cluster/namespace.html" class="sidebar-link">名称空间管理</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>应用管理</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/guide/namespace/workload.html" class="sidebar-link">工作负载</a></li><li><a href="/guide/namespace/secrets.html" class="sidebar-link">Secrets</a></li><li><a href="/guide/namespace/configMap.html" class="sidebar-link">配置</a></li><li><a href="/guide/namespace/pvc.html" class="sidebar-link">存储卷声明</a></li><li><a href="/guide/namespace/adjustion.html" class="sidebar-link">日常调整</a></li><li><a href="/guide/namespace/multi-env.html" class="sidebar-link">多环境</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>问题诊断</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/guide/diagonize/events.html" class="sidebar-link">集群事件</a></li><li><a href="/guide/diagonize/logs.html" class="sidebar-link">日志及终端</a></li><li><a href="/guide/diagonize/port-forward.html" class="sidebar-link">端口转发</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>监控套件 (alpha)</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/guide/monitor/" class="sidebar-link">监控套件</a></li><li><a href="/guide/monitor/apis.html" class="sidebar-link">自定义监控套件</a></li></ul></section></li></ul> <div style="text-align: center;"><strong>在线体验</strong> <div><a target="_blank" href="http://demo.eip.work/#/login?isReadOnly=true&token=eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJvYXJkLXZpZXdlci10b2tlbi02djZiZiIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJvYXJkLXZpZXdlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6IjhiYTU3YmI1LWFiMTctNDM1NS1hNTM0LTQ0Njk4NGY0NzFlZiIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlLXN5c3RlbTprdWJvYXJkLXZpZXdlciJ9.DcXNIp0RKha1zkV4ga_QlGfcvMLGx2LOyzX-0VeboC3FojKFhxnfBeoda-zTeh6ugJlSM4kQYrRcof1Kx8Mg3-UgofNmgRySbDEVKtJZyMUoHqLmySKUIn8sbX8q83RNcqwcvY-fM8-w8HSuzU7Td7WWNuZrlCL4q_LQDYIBet1nlQ83YsENKNE8rsZQFDw8YM0MH6BEZLdwyhaboy_jjYbsU7kv8gks3aIX4lh1Fs9ZFQpC_6B0_MZvb7rEeG2M8QWXoUkDoL5JCKu6Wot5GlWf0kDMxIsViggP0NmSDTKh6kIvCkT2FZ2I4guEcjE_EjBpdOS6Abta22tzLlPKhg"><p><img src="/assets/img/image-20190723104717575.db9f16c5.png"></p></a></div> <strong>在线提问</strong> <p><img src="/assets/img/kuboard_qq.45e78dbf.png"></p></div></aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="导入-example-微服务"><a href="#导入-example-微服务" aria-hidden="true" class="header-anchor">#</a> 导入 example 微服务</h1> <h2 id="前提"><a href="#前提" aria-hidden="true" class="header-anchor">#</a> 前提</h2> <p>必须具备如下条件:</p> <ul><li>Kubernetes 集群 (安装在阿里云,本文将使用阿里云的 NFS 服务作为存储资源,Kuboard 也可以运行在其他云环境或者私有环境中。)</li> <li>已在集群中安装 Kuboard</li></ul> <h2 id="创建存储资源"><a href="#创建存储资源" aria-hidden="true" class="header-anchor">#</a> 创建存储资源</h2> <p>example中用到了存储卷声明,请在 Kuboard 中 <a href="/guide/cluster/storage?id=%E5%88%9B%E5%BB%BA%E5%AD%98%E5%82%A8%E7%B1%BB">创建存储类</a> ,否则不能完成 example 的导入操作。</p> <h2 id="创建名称空间"><a href="#创建名称空间" aria-hidden="true" class="header-anchor">#</a> 创建名称空间</h2> <p>创建新的名称空间,用来导入 exmaple。可参考 <a href="/guide/cluster/namespace?id=%E5%88%9B%E5%BB%BA%E5%90%8D%E7%A7%B0%E7%A9%BA%E9%97%B4">创建名称空间</a></p> <p>假设您已经进入了 Kuboard 名称空间界面,如下图所示:</p> <p><img src="/assets/img/image-20190723115721514.bf981ef3.png" alt="image-20190723115721514"></p> <h2 id="导入-example"><a href="#导入-example" aria-hidden="true" class="header-anchor">#</a> 导入 example</h2> <ul><li>下载 <a href="/kuboard_example.yaml" download="kuboard_example.yaml">kuboard_example.yaml</a> 文件</li></ul> <blockquote><p>在 Kuboard 中,您无需手写 yaml 文件,此 yaml 文件的内容生成步骤如下:</p> <ul><li>通过 <a href="busybox">创建工作负载</a> 完成微服务应用的部署</li> <li>通过 <strong>导出工作负载</strong> 将名称空间中的微服务配置导出到一个 yaml 文件中</li></ul></blockquote> <ul><li>点击 <em><strong>导入工作负载</strong></em> 按钮</li></ul> <p><img src="/assets/img/image-20190723120730196.9793d8ec.png" alt="image-20190723120730196"></p> <ul><li><p>点击 <em><strong>上传文件</strong></em> 按钮</p> <p>并选择刚才下载的 export_example.yaml 文件</p></li></ul> <p><img src="/assets/img/image-20190723120753533.081b6d6b.png" alt="image-20190723120753533"></p> <ul><li><p>点击 <em><strong>下一步</strong></em></p> <p>默认选择所有的工作负载</p></li></ul> <p><img src="/assets/img/image-20190723120832778.e154bccd.png" alt="image-20190723120832778"></p> <ul><li><p>点击 <em><strong>下一步</strong></em></p> <p>默认选择所有要导入的配置,example中没有使用到配置信息</p></li></ul> <p><img src="/assets/img/image-20190723120912377.e1404406.png" alt="image-20190723120912377"></p> <ul><li><p>点击 <em><strong>下一步</strong></em></p> <p>默认选择所有 Secrets</p></li></ul> <p><img src="/assets/img/image-20190723120926747.c9754776.png" alt="image-20190723120926747"></p> <ul><li><p>点击 <em><strong>下一步</strong></em></p> <p>填写表单:</p></li></ul> <table><thead><tr><th>字段名称</th> <th>填写内容</th> <th>说明</th></tr></thead> <tbody><tr><td>数据卷类型</td> <td>db-example-storage</td> <td>NFS:容器组直连NFS<br>存储卷声明:容器组使用存储卷声明</td></tr> <tr><td>是否新建存储卷声明</td> <td>创建新存储卷声明</td> <td>使用已有存储卷声明:可以使用事先创建好的存储卷声明<br>创建新存储卷声明:可以创建新存储卷声明</td></tr> <tr><td>分配模式</td> <td>动态分配</td> <td></td></tr> <tr><td>读写模式</td> <td>可被多节点读写</td> <td>只能被单节点读写、可被多节点只读、可被多节点读写</td></tr> <tr><td>总量</td> <td>2Gi</td> <td>2Gi代表 2G空间</td></tr></tbody></table> <p><img src="/assets/img/image-20190723120956821.69bcdbbe.png" alt="image-20190723120956821"></p> <ul><li><p>点击 <em><strong>下一步</strong></em></p> <p>填写表单:</p></li></ul> <table><thead><tr><th>字段名称</th> <th>填写内容</th> <th>说明</th></tr></thead> <tbody><tr><td>cloud-eureka域名</td> <td>cloud-eureka.example.demo.eip.work</td> <td>使用您自己的域名,<br>在测试环境建议使用如下域名格式:<br>workloadname.namespace-name.cluster-name.domain.com<br>该域名应该解析到您worker节点的外网地址,或者worker 节点 80/443 端口对应负载均衡服务器的外网地址。</td></tr> <tr><td>web-example</td> <td>web-example.example.demo.eip</td> <td></td></tr></tbody></table> <p><img src="/assets/img/image-20190723121019167.81af1060.png" alt="image-20190723121019167"></p> <ul><li>点击 <em><strong>下一步</strong></em></li></ul> <p><img src="/assets/img/image-20190723121035917.8a2b1320.png" alt="image-20190723121035917"></p> <ul><li>点击 <em><strong>确定</strong></em></li></ul> <p><img src="/assets/img/image-20190723121055648.2c6ba8d1.png" alt="image-20190723121055648"></p> <ul><li>点击 <em><strong>应用</strong></em></li></ul> <p><img src="/assets/img/image-20190723121117514.ef774d3a.png" alt="image-20190723121117514"></p> <ul><li>点击 <em><strong>完成</strong></em></li></ul> <p><img src="/assets/img/image-20190723121132991.69146097.png" alt="image-20190723121132991"></p> <ul><li><p>点击 <em><strong>已完成</strong></em></p> <p>可再名称空间中查看到刚才导入的 example 的所有工作负载及存储卷声明</p></li></ul> <p><img src="/assets/img/image-20190723121433809.7a1b4b00.png" alt="image-20190723121433809"></p> <h2 id="验证-web-example"><a href="#验证-web-example" aria-hidden="true" class="header-anchor">#</a> 验证 web-example</h2> <ul><li>点击工作负载 <em><strong>web-example</strong></em></li></ul> <p><img src="/assets/img/image-20190723121412027.6888452e.png" alt="image-20190723121412027"></p> <ul><li><p>点击 互联网入口中的域名 <em><strong>http://web-example.example.demo.eip.work</strong></em></p> <p><strong>Example 部署成功</strong></p></li></ul> <p><img src="/assets/img/image-20190717193548703.5167e3b9.png" alt="image-20190717193548703"></p> <blockquote><p>web-example容器的日志中会出现如下异常,错误原因是,example使用了一个监控套件,该监控套件要求将容器注册到monitor-eureka中,当下我们并没有安装该监控套件。此错误并不影响 example 程序的使用。暂时忽略该异常。</p> <div class="language- extra-class"><pre class="language-text"><code>[DiscoveryClient-InstanceInfoReplicator-0] WARN com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient - Request execution failed with message: java.net.UnknownHostException: monitor-eureka
|
||
[DiscoveryClient-InstanceInfoReplicator-0] WARN com.netflix.discovery.DiscoveryClient - DiscoveryClient_WEB-ADMIN/web-example-7f668c75db-j7ncx - registration failed Cannot execute request on any known server
|
||
com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
|
||
at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:112)
|
||
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56)
|
||
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$1.execute(EurekaHttpClientDecorator.java:59)
|
||
at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)
|
||
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56)
|
||
at com.netflix.discovery.DiscoveryClient.register(DiscoveryClient.java:829)
|
||
at com.netflix.discovery.InstanceInfoReplicator.run(InstanceInfoReplicator.java:121)
|
||
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
|
||
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
|
||
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
|
||
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
|
||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
|
||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||
at java.lang.Thread.run(Thread.java:748)
|
||
[DiscoveryClient-InstanceInfoReplicator-0] WARN com.netflix.discovery.InstanceInfoReplicator - There was a problem with the instance info replicator
|
||
com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
|
||
at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:112)
|
||
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56)
|
||
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$1.execute(EurekaHttpClientDecorator.java:59)
|
||
at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)
|
||
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56)
|
||
at com.netflix.discovery.DiscoveryClient.register(DiscoveryClient.java:829)
|
||
at com.netflix.discovery.InstanceInfoReplicator.run(InstanceInfoReplicator.java:121)
|
||
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
|
||
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
|
||
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
|
||
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
|
||
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
|
||
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
|
||
at java.lang.Thread.run(Thread.java:748)
|
||
</code></pre></div></blockquote></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">更新时间: </span> <span class="time">2019-07-25 06:22:52</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
|
||
←
|
||
<a href="/guide/example/busybox.html" class="prev">
|
||
部署 busybox
|
||
</a></span> <span class="next"><a href="/guide/example/monitor.html">
|
||
监控 example (alpha)
|
||
</a>
|
||
→
|
||
</span></p></div> <div class="bottom-description" data-v-79c95b4d>Copyright © 2019-present HuanQing Shao</div></main></div><div class="global-ui"><!----></div></div>
|
||
<script src="/assets/js/app.1aea5246.js" defer></script><script src="/assets/js/11.ece05c2e.js" defer></script><script src="/assets/js/2.7beee842.js" defer></script><script src="/assets/js/5.84a977be.js" defer></script>
|
||
</body>
|
||
</html>
|