48 lines
16 KiB
HTML
48 lines
16 KiB
HTML
<!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.c0301a2f.css" as="style"><link rel="preload" href="/assets/js/app.469e521d.js" as="script"><link rel="preload" href="/assets/js/11.85cc1d1b.js" as="script"><link rel="preload" href="/assets/js/2.4586c502.js" as="script"><link rel="preload" href="/assets/js/13.d57917df.js" as="script"><link rel="prefetch" href="/assets/js/10.f84e0625.js"><link rel="prefetch" href="/assets/js/12.d79ea216.js"><link rel="prefetch" href="/assets/js/14.5bb6b838.js"><link rel="prefetch" href="/assets/js/15.c6f5df06.js"><link rel="prefetch" href="/assets/js/16.72005098.js"><link rel="prefetch" href="/assets/js/17.452295d5.js"><link rel="prefetch" href="/assets/js/18.c87c981a.js"><link rel="prefetch" href="/assets/js/19.dfd1a854.js"><link rel="prefetch" href="/assets/js/20.7658673b.js"><link rel="prefetch" href="/assets/js/21.d108e58c.js"><link rel="prefetch" href="/assets/js/22.17b851e0.js"><link rel="prefetch" href="/assets/js/23.55c72026.js"><link rel="prefetch" href="/assets/js/24.66a868af.js"><link rel="prefetch" href="/assets/js/25.890672df.js"><link rel="prefetch" href="/assets/js/26.959330a4.js"><link rel="prefetch" href="/assets/js/27.99a6e3a4.js"><link rel="prefetch" href="/assets/js/28.e716a025.js"><link rel="prefetch" href="/assets/js/29.4ff59e34.js"><link rel="prefetch" href="/assets/js/3.01058ecd.js"><link rel="prefetch" href="/assets/js/30.e89c0eee.js"><link rel="prefetch" href="/assets/js/31.fc5a4b53.js"><link rel="prefetch" href="/assets/js/32.4cf659a7.js"><link rel="prefetch" href="/assets/js/33.d10f420c.js"><link rel="prefetch" href="/assets/js/34.da1581ad.js"><link rel="prefetch" href="/assets/js/35.6d4bbc2f.js"><link rel="prefetch" href="/assets/js/36.40fcd0aa.js"><link rel="prefetch" href="/assets/js/37.a2236040.js"><link rel="prefetch" href="/assets/js/38.7fd741bc.js"><link rel="prefetch" href="/assets/js/4.5c8766b1.js"><link rel="prefetch" href="/assets/js/5.8a6d0bb9.js"><link rel="prefetch" href="/assets/js/6.8f8c4682.js"><link rel="prefetch" href="/assets/js/7.7adbafe6.js"><link rel="prefetch" href="/assets/js/8.05349e1e.js"><link rel="prefetch" href="/assets/js/9.b9de5eb9.js">
|
||
<link rel="stylesheet" href="/assets/css/0.styles.c0301a2f.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"><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 (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 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>监控套件 (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; margin-top: 5vh;"><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.f44900d3.png" style="width: 226px; height: 127px;"></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="多环境"><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="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-79c95b4d>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.469e521d.js" defer></script><script src="/assets/js/11.85cc1d1b.js" defer></script><script src="/assets/js/2.4586c502.js" defer></script><script src="/assets/js/13.d57917df.js" defer></script>
|
||
</body>
|
||
</html>
|