Files
kuboard-press/docs/guide/namespace/multi-env.html
2019-07-31 10:46:33 +08:00

48 lines
18 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

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

<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>多环境 | Kuboard</title>
<meta name="description" content="A cool Kubernetes Dashboard">
<meta name="keywords" content="Kubernetes, Docker, Dashboard, Kuboard, Linux, K8S, cluster, 分布式, 集群, 容器, 高可用">
<meta property="article:modified_time" content="Thu Jul 25 2019 06:22:52 GMT+0800 (GMT+08:00)"><meta property="og:site_name" content="Kuboard"><meta property="og:title" content="多环境"><meta property="og:type" content="website"><meta property="og:url" content="/guide/namespace/multi-env.html"><meta name="twitter:title" content="多环境"><meta name="twitter:url" content="/guide/namespace/multi-env.html"><meta name="twitter:card" content="summary_large_image">
<link rel="preload" href="/assets/css/0.styles.a88308ce.css" as="style"><link rel="preload" href="/assets/js/app.a332a01e.js" as="script"><link rel="preload" href="/assets/js/11.d116455e.js" as="script"><link rel="preload" href="/assets/js/2.dd0e1f2c.js" as="script"><link rel="preload" href="/assets/js/13.95457e0f.js" as="script"><link rel="prefetch" href="/assets/js/10.08692495.js"><link rel="prefetch" href="/assets/js/12.e04a5176.js"><link rel="prefetch" href="/assets/js/14.71b75ecf.js"><link rel="prefetch" href="/assets/js/15.1b0a10dc.js"><link rel="prefetch" href="/assets/js/16.b573c9f3.js"><link rel="prefetch" href="/assets/js/17.468178ae.js"><link rel="prefetch" href="/assets/js/18.6f38c90e.js"><link rel="prefetch" href="/assets/js/19.99531f86.js"><link rel="prefetch" href="/assets/js/20.78eca6e0.js"><link rel="prefetch" href="/assets/js/21.6a7dee9b.js"><link rel="prefetch" href="/assets/js/22.351a9028.js"><link rel="prefetch" href="/assets/js/23.b3f28b3f.js"><link rel="prefetch" href="/assets/js/24.853f5562.js"><link rel="prefetch" href="/assets/js/25.cd04ce56.js"><link rel="prefetch" href="/assets/js/26.ea8a7ad1.js"><link rel="prefetch" href="/assets/js/27.26e9640f.js"><link rel="prefetch" href="/assets/js/28.b1a5c5c7.js"><link rel="prefetch" href="/assets/js/29.d1603004.js"><link rel="prefetch" href="/assets/js/3.703f0de7.js"><link rel="prefetch" href="/assets/js/30.b524eaaf.js"><link rel="prefetch" href="/assets/js/31.19cf289d.js"><link rel="prefetch" href="/assets/js/32.93b29747.js"><link rel="prefetch" href="/assets/js/33.b52fe074.js"><link rel="prefetch" href="/assets/js/34.ce87cbcd.js"><link rel="prefetch" href="/assets/js/35.cadba131.js"><link rel="prefetch" href="/assets/js/36.fd724fc1.js"><link rel="prefetch" href="/assets/js/37.15829647.js"><link rel="prefetch" href="/assets/js/38.ada671dd.js"><link rel="prefetch" href="/assets/js/39.722b7242.js"><link rel="prefetch" href="/assets/js/4.66bc3e23.js"><link rel="prefetch" href="/assets/js/40.fd9d179f.js"><link rel="prefetch" href="/assets/js/41.391e0c2e.js"><link rel="prefetch" href="/assets/js/42.74be8f5e.js"><link rel="prefetch" href="/assets/js/43.9bf36849.js"><link rel="prefetch" href="/assets/js/44.fab29163.js"><link rel="prefetch" href="/assets/js/45.844db78f.js"><link rel="prefetch" href="/assets/js/46.42ab1b28.js"><link rel="prefetch" href="/assets/js/47.87cdf921.js"><link rel="prefetch" href="/assets/js/48.b7a3d198.js"><link rel="prefetch" href="/assets/js/5.018119fe.js"><link rel="prefetch" href="/assets/js/6.c494a4ac.js"><link rel="prefetch" href="/assets/js/7.fd07507c.js"><link rel="prefetch" href="/assets/js/8.b3f9cb6b.js"><link rel="prefetch" href="/assets/js/9.7ba1d108.js">
<link rel="stylesheet" href="/assets/css/0.styles.a88308ce.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container" data-v-61e379b0><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><!----> <span class="site-name">Kuboard</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/overview/" class="nav-link">简介</a></div><div class="nav-item"><a href="/install/install-dashboard.html" class="nav-link">安装</a></div><div class="nav-item"><a href="/guide/" class="nav-link router-link-active">使用</a></div><div class="nav-item"><a href="/micro-service/spring-cloud/" class="nav-link">微服务</a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><div data-v-61e379b0><div style="text-align:center;margin-top:20px;" data-v-61e379b0><div class="side-nav-item" style="margin-left:0;" data-v-61e379b0><a href="/overview/" class="nav-link" data-v-61e379b0>简介</a></div> <div class="side-nav-item" data-v-61e379b0><a href="/install/install-dashboard" class="nav-link router-link-exact-active router-link-active" data-v-61e379b0>安装</a></div> <div class="side-nav-item" style="border-bottom:2px solid #0b85ff;" data-v-61e379b0><a href="/guide/" class="nav-link" data-v-61e379b0>使用</a></div> <div class="side-nav-item" data-v-61e379b0><a href="/micro-service/spring-cloud/" class="nav-link" data-v-61e379b0>微服务</a></div></div></div> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><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"><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="sidebar-link">导入 example 微服务</a></li><li><a href="/guide/example/monitor.html" class="sidebar-link">监控 example</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 open"><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="active sidebar-link">多环境</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/guide/namespace/multi-env.html#导出配置" class="sidebar-link">导出配置</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/guide/namespace/multi-env.html#前提" class="sidebar-link">前提</a></li><li class="sidebar-sub-header"><a href="/guide/namespace/multi-env.html#操作步骤" class="sidebar-link">操作步骤</a></li></ul></li><li class="sidebar-sub-header"><a href="/guide/namespace/multi-env.html#导入配置" class="sidebar-link">导入配置</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/guide/namespace/multi-env.html#前提-2" class="sidebar-link">前提</a></li><li class="sidebar-sub-header"><a href="/guide/namespace/multi-env.html#操作步骤-2" class="sidebar-link">操作步骤</a></li></ul></li></ul></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>监控套件</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; margin-top: 5vh;"><strong>在线体验</strong> <div><a target="_blank" href="http://demo.eip.work/#/login?isReadOnly=true&amp;token=eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJrdWJvYXJkLXZpZXdlci10b2tlbi1mdGw0diIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50Lm5hbWUiOiJrdWJvYXJkLXZpZXdlciIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VydmljZS1hY2NvdW50LnVpZCI6ImE1YWFiMmQxLTQxMjYtNDU5Yi1hZmNhLTkyYzMwZDk0NTQzNSIsInN1YiI6InN5c3RlbTpzZXJ2aWNlYWNjb3VudDprdWJlLXN5c3RlbTprdWJvYXJkLXZpZXdlciJ9.eYqN3FLIT6xs0-lm8AidZtaiuHeX70QTn9FhJglhEyh5dlyMU5lo8UtR-h1OY8sTSeYdYKJAS83-9SUObKQhp6XNmRgOYAfZblKUy4mvbGVQ3dn_qnzxYxt6zdGCwIY7E34eNNd9IjMF7G_Y4eJLWE7NvkSB1O8zbdn8En9rQXv_xJ9-ugCyr4CYB1lDGuZl3CIXgQ1FWcQdUBrxTT95tzcNTB0l6OUOGhRxOfw-RyIOST83GV5U0iVzxnD4sjgSaJefvCU-BmwXgpxAwRVhFyHEziXXa0CuZfBfJbmnQW308B4wocr4QDm6Nvmli1P3B6Yo9-HNF__d2hCwZEr7eg"><p><img src="/assets/img/image-20190723104717575.f44900d3.png" style="width: 226px; height: 127px;"></p></a></div> <p><strong><a href="https://github.com/shaohq/kuboard-issues/issues" target="_blank">提交 BUG</a></strong></p> <strong>在线提问</strong> <p><img src="/assets/img/kuboard_qq.45e78dbf.png"></p></div></aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="多环境"><a href="#多环境" aria-hidden="true" class="header-anchor">#</a> 多环境</h1> <p>在实际开发项目的过程中,我们必然会碰到如下场景:</p> <ol><li>创建一个开发环境,并在其中完成应用部署</li> <li>创建一个测试环境,再次完成应用部署</li> <li>创建一个准上线环境,再次完成应用部署</li> <li>创建一个生产环境,再次完成应用部署</li></ol> <p>当我们的微服务系统较为复杂时,一个环境中可能需要部署许多(几十个甚至更多)的微服务部署单元,这个时候,重复在多套环境中执行部署任务就会变得容易出错。</p> <p>Kuboard 针对这种场景,提供了导出配置、导入配置的功能,以便运维人员可以轻易的复制多套部署环境。</p> <h2 id="导出配置"><a href="#导出配置" aria-hidden="true" class="header-anchor">#</a> 导出配置</h2> <h3 id="前提"><a href="#前提" aria-hidden="true" class="header-anchor">#</a> 前提</h3> <p>必须满足如下条件:</p> <ul><li>您已经通过 kuboard 的 <a href="/guide/namespace/workload">创建工作负载</a> 功能完成了微服务的部署。</li></ul> <blockquote><p>部署微服务过程中,您还可能用到 kuboard 的配置编辑功能、Secrets 编辑功能 等。</p></blockquote> <p>假设您已完成微服务部署,并已进入 namespace 界面,如下图所示:</p> <p><img src="/assets/img/image-20190721085144545.25f25dda.png" alt="image-20190721085144545"></p> <h3 id="操作步骤"><a href="#操作步骤" aria-hidden="true" class="header-anchor">#</a> 操作步骤</h3> <ul><li>点击 <em><strong>导出工作负载</strong></em> <ul><li>选择要导出的分层</li> <li>点击 <em><strong>刷新</strong></em></li> <li>选择要导出的工作负载</li></ul></li></ul> <p><img src="/assets/img/image-20190721090118542.46c31055.png" alt="image-20190721090118542"></p> <ul><li><p>点击 <em><strong>下一步</strong></em></p> <p>选择要导出的配置configMap信息</p></li></ul> <p><img src="/assets/img/image-20190721090753742.28d009f3.png" alt="image-20190721090753742"></p> <ul><li><p>点击 <em><strong>下一步</strong></em></p> <p>选择要导出的 Secrets</p></li></ul> <p><img src="/assets/img/image-20190721090840925.a5231632.png" alt="image-20190721090840925"></p> <ul><li>点击 <em><strong>下一步</strong></em></li></ul> <p><img src="/assets/img/image-20190721090935511.80fb3864.png" alt="image-20190721090935511"></p> <ul><li>点击 <em><strong>确定</strong></em></li></ul> <p><img src="/assets/img/image-20190721091005130.330e9f1d.png" alt="image-20190721091005130"></p> <ul><li><p>查看已导出文件</p> <p>导出文件的命名格式为 kuboard_namespace_date_time.yaml例如</p> <p>kuboard_example_2019_07_21_09_09_47.yaml</p> <p>导出文件的内容如下所示:</p> <div class="language-yaml extra-class"><pre class="language-yaml"><code><span class="token punctuation">---</span>
<span class="token key atrule">apiVersion</span><span class="token punctuation">:</span> apps/v1
<span class="token key atrule">kind</span><span class="token punctuation">:</span> StatefulSet
<span class="token key atrule">metadata</span><span class="token punctuation">:</span>
<span class="token key atrule">namespace</span><span class="token punctuation">:</span> example
<span class="token key atrule">name</span><span class="token punctuation">:</span> cloud<span class="token punctuation">-</span>eureka
<span class="token key atrule">annotations</span><span class="token punctuation">:</span>
<span class="token key atrule">k8s.eip.work/workload</span><span class="token punctuation">:</span> cloud<span class="token punctuation">-</span>eureka
<span class="token key atrule">k8s.eip.work/displayName</span><span class="token punctuation">:</span> 服务注册
<span class="token key atrule">k8s.eip.work/service</span><span class="token punctuation">:</span> ClusterIP
<span class="token key atrule">k8s.eip.work/ingress</span><span class="token punctuation">:</span> <span class="token string">'true'</span>
<span class="token key atrule">labels</span><span class="token punctuation">:</span>
<span class="token key atrule">k8s.eip.work/layer</span><span class="token punctuation">:</span> cloud
<span class="token key atrule">k8s.eip.work/name</span><span class="token punctuation">:</span> cloud<span class="token punctuation">-</span>eureka
<span class="token key atrule">spec</span><span class="token punctuation">:</span>
<span class="token key atrule">selector</span><span class="token punctuation">:</span>
<span class="token key atrule">matchLabels</span><span class="token punctuation">:</span>
<span class="token key atrule">k8s.eip.work/layer</span><span class="token punctuation">:</span> cloud
<span class="token key atrule">k8s.eip.work/name</span><span class="token punctuation">:</span> cloud<span class="token punctuation">-</span>eureka
<span class="token key atrule">template</span><span class="token punctuation">:</span>
<span class="token key atrule">metadata</span><span class="token punctuation">:</span>
<span class="token punctuation">...</span>
</code></pre></div></li></ul> <blockquote><p>该文件可以通过 kubectl apply -f 命令直接执行,但是建议使用 kuboard 进行导入,以便在导入时在线编辑在特定于新环境的配置信息。</p></blockquote> <h2 id="导入配置"><a href="#导入配置" aria-hidden="true" class="header-anchor">#</a> 导入配置</h2> <h3 id="前提-2"><a href="#前提-2" aria-hidden="true" class="header-anchor">#</a> 前提</h3> <p>您已经通过 kuboard 导出了配置文件,或者从别处获取到 kuboard 导出的配置文件</p> <h3 id="操作步骤-2"><a href="#操作步骤-2" aria-hidden="true" class="header-anchor">#</a> 操作步骤</h3> <p>请参考 <a href="/guide/example/import">导入 example 微服务</a></p></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/eip-work/kuboard-press/edit/master/guide/namespace/multi-env.md" target="_blank" rel="noopener noreferrer">帮助我们改善此页面!</a> <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></div> <div class="last-updated"><span class="prefix">更新时间: </span> <span class="time">2019-07-25 06:22:52</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
<a href="/guide/namespace/adjustion.html" class="prev">
日常调整
</a></span> <span class="next"><a href="/guide/diagonize/events.html">
集群事件
</a>
</span></p></div> <div class="bottom-description" data-v-61e379b0>Copyright © 2019-present Huanqing Shao</div></main></div><div class="global-ui"><!----><div class="reading-progress top" data-v-7681808f><div class="progress" data-v-7681808f></div></div></div></div>
<script src="/assets/js/app.a332a01e.js" defer></script><script src="/assets/js/11.d116455e.js" defer></script><script src="/assets/js/2.dd0e1f2c.js" defer></script><script src="/assets/js/13.95457e0f.js" defer></script>
</body>
</html>