{"componentChunkName":"component---src-templates-tutorial-js","path":"/zh/tutorial/FAQ/","result":{"data":{"markdownRemark":{"html":"<h2 id=\"常见问题解答\"><a href=\"#%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98%E8%A7%A3%E7%AD%94\" aria-hidden class=\"anchor\"><svg aria-hidden=\"true\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>常见问题解答</h2>\n<ol>\n<li>\n<p>Oracle数据库与SuperMap iDesktop连接不上，如何解决？</p>\n<p>答：出现上述情况，请在Oracle中创建并使用新的数据库。具体步骤如下：</p>\n<p>（1）在iManager页面点击<strong>数据库->Oracle->名称（您的数据库名称）->oracle->命令行</strong>进入Oracle命令行；</p>\n<p>（2）在目录 u01/app/oracle/oradata 下创建“supermapshapefile”文件夹，执行（如果您已有文件夹，请跳过该步骤）：</p>\n<div class=\"gatsby-highlight\" data-language=\"database\"><pre class=\"gatsby-code-database\"><code class=\"gatsby-code-database\">mkdir -p /u01/app/oracle/oradata/supermapshapefile</code></pre></div>\n<p>（3）赋予数据库权限，执行：</p>\n<div class=\"gatsby-highlight\" data-language=\"database\"><pre class=\"gatsby-code-database\"><code class=\"gatsby-code-database\">chown oracle /u01/app/oracle/oradata/supermapshapefile</code></pre></div>\n<p>（4）进入Oracle，执行：</p>\n<div class=\"gatsby-highlight\" data-language=\"database\"><pre class=\"gatsby-code-database\"><code class=\"gatsby-code-database\">sqlplus / as sysdba</code></pre></div>\n<p>（5）输入Oracle用户密码，用户密码请在iManager页面点击<strong>数据库->Oracle->名称（您的数据库名称）->账户</strong>查看；</p>\n<p>（6）创建空间表，大小为200M（可根据实际情况设置），执行：</p>\n<div class=\"gatsby-highlight\" data-language=\"database\"><pre class=\"gatsby-code-database\"><code class=\"gatsby-code-database\">create tablespace supermaptbs datafile &#39;/u01/app/oracle/oradata/supermapshapefile/data.dbf&#39; size 200M;</code></pre></div>\n<p>（7）创建数据库新用户，账号：supermapuser（可自由设置），密码：supermap123（可自由设置），执行：</p>\n<div class=\"gatsby-highlight\" data-language=\"database\"><pre class=\"gatsby-code-database\"><code class=\"gatsby-code-database\">create user supermapuser identified by supermap123 default tablespace supermaptbs;</code></pre></div>\n<p>（8）给新用户赋予权限，执行：</p>\n<div class=\"gatsby-highlight\" data-language=\"database\"><pre class=\"gatsby-code-database\"><code class=\"gatsby-code-database\">grant connect,resource to supermapuser;\ngrant dba to supermapuser;</code></pre></div>\n</li>\n<li>\n<p>在重新部署/调整规格后，又立马进行重新部署/调整规格操作，导致分配许可失败，如何解决？</p>\n<p>答：在重新部署/调整规格后，请确保本次操作对应的容器在许可中心中分配许可成功后，再进行下一次的重新部署/调整规格操作。</p>\n</li>\n<li>\n<p>查看实时监控统计图时，图表中没有数据或数据生成的时间与实际时间不符，如何解决？</p>\n<p>答：查看实时监控统计图时，请确保您的本地机器与Kubernetes节点机器设置的时间一致。</p>\n</li>\n<li>\n<p>如何使用https协议？</p>\n<p>答：iManager中支持Keycloak与iManager使用https服务协议，请执行以下步骤：</p>\n<p>（1）进入iManager安装目录（即执行iManager启动命令的目录）并找到values.yml文件，在当前目录下输入命令打开配置：</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">sudo vi values.yml</code></pre></div>\n<p>（2）若Keycloak需使用https服务协议，将变量“deploy_keycloak_service_protocol”的值改为“https”;若iManager需使用https服务协议，将变量“deploy_imanager_service_protocol”的值改为“https”（iManager使用https协议时，Keycloak必须为https协议）。</p>\n<p>（3）保存设置，并重启iManager:</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">sudo ./startup.sh</code></pre></div>\n</li>\n<li>\n<p>如何替换iManager for K8s自带的安全证书？</p>\n<p>答：iManager for K8s的安全证书有两种，一种是安全中心（Keycloak）使用的安全证书，另一种是访问入口域名使用的安全证书。请参照以下步骤替换两种证书：</p>\n<p><strong>替换安全中心（Keycloak）的安全证书</strong></p>\n<p>（1）在安装Kubernetes Master节点机器中执行以下命令，找到安全证书挂载目录（下面命令中的<code class=\"gatsby-code-text\">&lt;namespace&gt;</code>为iManager所在的命名空间，默认为supermap。如有改动，请替换为您的命名空间名称）：</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">kubectl -n &lt;namespace&gt; describe pvc pvc-keycloak | grep Volume: | awk -F &#39; &#39; &#39;{print $2}&#39; | xargs kubectl describe pv</code></pre></div>\n<p>（2）将您的安全证书文件存放至步骤（1）查到的挂载目录中；</p>\n<blockquote>\n<p>注意：<br>\n安全证书文件包括证书和私钥，需要将证书文件重命名为tls.crt，将私钥文件重命名为tsl.key。</p>\n</blockquote>\n<p>（3）登录iManager，在基础服务中找到Keycloak服务并重新部署。</p>\n<p><strong>替换访问入口的安全证书</strong></p>\n<p>（1）在安装Kubernetes Master节点机器中执行以下命令，找到安全证书挂载目录（下面命令中的<code class=\"gatsby-code-text\">&lt;namespace&gt;</code>为iManager所在的命令空间，默认为supermap。如有改动，请替换为您的命名空间名称）：</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">kubectl -n &lt;namespace&gt; describe pvc pvc-imanager-dashboard-ui | grep Volume: | awk -F &#39; &#39; &#39;{print $2}&#39; | xargs kubectl describe pv</code></pre></div>\n<p>（2）将您的安全证书文件存放至步骤（1）查到的挂载目录中；</p>\n<blockquote>\n<p>注意：<br>\n安全证书文件包括证书和私钥，需要将证书文件重命名为certificate.crt，将私钥文件重命名为private.key。</p>\n</blockquote>\n<p>（3）登录iManager，在基础服务中找到imanager-dashboard-ui服务并重新部署。</p>\n</li>\n<li>\n<p>配置镜像拉取Secret时，如何在命名空间下创建与Secret同名资源？</p>\n<p>答：配置镜像拉取Secret时，需在Kubernetes中iManager所在命名空间创建与Secret同名的资源。如果开启服务网格（Istio），需在istio-system命名空间下创建Secret同名资源。如果开启metrics server服务，需在kube-system命名空间下创建Secret同名资源。请在Kubernetes Master机器中，输入如下命令创建Secret同名资源：</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">kubectl create secret docker-registry &lt;image-pull-secret&gt; --docker-server=&lt;&quot;172.16.17.11:5002&quot;&gt; --docker-username=&lt;admin&gt; --docker-password=&lt;adminpassword&gt; -n &lt;supermap&gt;</code></pre></div>\n<blockquote>\n<p>注意：  </p>\n<ol>\n<li>输入的内容中，带有尖括号”&#x3C;>“的需根据您的实际环境替换（替换后去掉尖括号）。\n<code class=\"gatsby-code-text\">&lt;image-pull-secret&gt;</code>为您的Secret名称；\n<code class=\"gatsby-code-text\">&lt;&quot;172.16.17.11:5002&quot;&gt;</code>为您的镜像仓库地址；\n<code class=\"gatsby-code-text\">&lt;admin&gt;</code>为镜像仓库用户名;\n<code class=\"gatsby-code-text\">&lt;adminpassword&gt;</code>为镜像仓库密码；\n<code class=\"gatsby-code-text\">&lt;supermap&gt;</code>为iManager所在命名空间（在istio-system或kube-system下创建Secret同名资源时，<code class=\"gatsby-code-text\">&lt;supermap&gt;</code>替换为“istio-system”或“kube-system”）。</li>\n<li>如果命名空间istio-system不存在，在Kubernetes Master节点机器输入“kubectl create ns istio-system”命令进行创建。</li>\n</ol>\n</blockquote>\n</li>\n<li>\n<p>修改iManager的配置文件values.yaml后，重启iManager出现报错“Error: UPGRADE FAILED: cannot patch “pv-nfs-grafana” with kind StorageClass: StorageClass.storage.k8s.io “pv-nfs-grafana” is invalid …”， 怎么办？</p>\n<p>答：该错误产生的原因是K8s patch操作不支持对存储类的提供者进行更新。此报错不影响产品正常使用，可忽略。</p>\n</li>\n<li>\n<p>Kubernetes证书到期了，如何更新？</p>\n<p>答：Kubernetes证书有效期为1年，过期后需更新证书。请参照以下步骤更新Kubernetes证书：</p>\n<p>（1）在安装Kubernetes的Master节点机器，进入etc目录，备份Kubernetes原始文件：</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">cd /etc\ncp -r kubernetes kubernetes.bak</code></pre></div>\n<p>（2）新建配置文件kubeadm.yaml:</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">vi kubeadm.yaml</code></pre></div>\n<p>（3）配置kubeadm.yaml（下面命令中的“10.10.129.29”为Kubernetes Master节点IP，请根据您的实际环境替换）：</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">kind: MasterConfiguration\napiVersion: kubeadm.k8s.io/v1beta1\nkubernetesVersion: v1.14.0\napi:\n advertiseAddress: 10.10.129.29</code></pre></div>\n<p>（4）使用配置文件重新签发证书：</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">kubeadm init phase certs all --config=kubeadm.yaml</code></pre></div>\n<p>（5）重新生成配置文件：</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">kubeadm init phase kubeconfig all --config kubeadm.yaml</code></pre></div>\n<p>（6）重启kube-apiserver、kube-controller-manager、kube-scheduler、etcd四个容器，使证书生效：</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">docker ps |grep -E &#39;k8s_kube-apiserver|k8s_kube-controller-manager|k8s_kube-scheduler|k8s_etcd_etcd&#39; | awk -F &#39; &#39; &#39;{print $1}&#39; |xargs docker restart</code></pre></div>\n<p>（7）查看证书是否生效：</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text |grep &#39; Not &#39;</code></pre></div>\n<p>（8）查看Work节点的工作状态（使用<code class=\"gatsby-code-text\">kubectl get nodes</code>命令），如果Work节点的状态为‘NotReady’，执行以下命令重新生成Work节点的配置文件：</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">mv /var/lib/kubelet/pki /var/lib/kubelet/pki.bak\nsystemctl daemon-reload &amp;&amp; systemctl restart kubelet</code></pre></div>\n<p>（9）再次查看Work节点的工作状态，如果Work节点的状态仍然为‘NotReady’，把Master节点的/etc/kubernetes/pki/ca.crt文件复制到相应Work节点的相同目录下，并再次重启kubelet（使用<code class=\"gatsby-code-text\">systemctl restart kubelet</code>命令重启kubelet，重启后需等待三分钟）。</p>\n</li>\n<li>\n<p>内置HBase环境如何使用本地存储？</p>\n<p>答：经测试，挂载NFS会影响Hbase的读写性能，可以通过以下方式进行优化：</p>\n<p>（1）修改配置（values.yaml）文件中deploy_disable_hbase_nfs_volume的值为true</p>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"gatsby-code-yaml\"><code class=\"gatsby-code-yaml\"><span class=\"token key atrule\">deploy_disable_hbase_nfs_volume</span><span class=\"token punctuation\">:</span> <span class=\"token boolean important\">true</span></code></pre></div>\n<p>（2）根据编排创建PV：参考 hbase-datanode-local-volume.yaml 文件，根据实际情况进行修改：</p>\n<div class=\"gatsby-highlight\" data-language=\"yaml\"><pre class=\"gatsby-code-yaml\"><code class=\"gatsby-code-yaml\"><span class=\"token key atrule\">apiVersion</span><span class=\"token punctuation\">:</span> v1\n<span class=\"token key atrule\">kind</span><span class=\"token punctuation\">:</span> PersistentVolume\n<span class=\"token key atrule\">metadata</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">labels</span><span class=\"token punctuation\">:</span>\n   <span class=\"token key atrule\">type</span><span class=\"token punctuation\">:</span> icloud<span class=\"token punctuation\">-</span>native\n <span class=\"token key atrule\">name</span><span class=\"token punctuation\">:</span> icloud<span class=\"token punctuation\">-</span>native<span class=\"token punctuation\">-</span>hbase<span class=\"token punctuation\">-</span>datanode<span class=\"token punctuation\">-</span>volume<span class=\"token punctuation\">-</span><span class=\"token number\">0  </span><span class=\"token comment\">#修改点1</span>\n<span class=\"token key atrule\">spec</span><span class=\"token punctuation\">:</span>\n <span class=\"token key atrule\">storageClassName</span><span class=\"token punctuation\">:</span> local<span class=\"token punctuation\">-</span>volume<span class=\"token punctuation\">-</span>storage<span class=\"token punctuation\">-</span>class\n <span class=\"token key atrule\">capacity</span><span class=\"token punctuation\">:</span>\n   <span class=\"token key atrule\">storage</span><span class=\"token punctuation\">:</span> 10Ti\n <span class=\"token key atrule\">accessModes</span><span class=\"token punctuation\">:</span>\n   <span class=\"token punctuation\">-</span> ReadWriteMany\n <span class=\"token key atrule\">local</span><span class=\"token punctuation\">:</span>\n   <span class=\"token key atrule\">path</span><span class=\"token punctuation\">:</span> /opt/imanager<span class=\"token punctuation\">-</span>data/datanode<span class=\"token punctuation\">-</span>data  <span class=\"token comment\">#修改点2</span>\n <span class=\"token key atrule\">persistentVolumeReclaimPolicy</span><span class=\"token punctuation\">:</span> Delete\n <span class=\"token key atrule\">nodeAffinity</span><span class=\"token punctuation\">:</span>\n   <span class=\"token key atrule\">required</span><span class=\"token punctuation\">:</span>\n     <span class=\"token key atrule\">nodeSelectorTerms</span><span class=\"token punctuation\">:</span>\n       <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">matchExpressions</span><span class=\"token punctuation\">:</span>\n         <span class=\"token punctuation\">-</span> <span class=\"token key atrule\">key</span><span class=\"token punctuation\">:</span> kubernetes.io/hostname\n           <span class=\"token key atrule\">operator</span><span class=\"token punctuation\">:</span> In\n           <span class=\"token key atrule\">values</span><span class=\"token punctuation\">:</span>\n             <span class=\"token punctuation\">-</span> node1   <span class=\"token comment\"># 修改点3</span></code></pre></div>\n<p>需要修改的内容涉及上图中标记处的3个地方：</p>\n<ul>\n<li>修改点1：这里指定PV的名称，只要不重复即可。</li>\n<li>修改点2：这里是实际要存储HBase数据的路径，要提前创建好目录。如果想在一个节点上创建多个PV请修改成不同的目录，并提前创建好目录。</li>\n</ul>\n<p> 使用以下命令在<strong>对应节点</strong>上创建目录(路径换成自己设置的具体地址)：</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">mkdir -p /opt/imanager-data/datanode-data</code></pre></div>\n<ul>\n<li>修改点3：这里填写Kubernetes的节点名称（前提是相应的节点能参与调度）</li>\n</ul>\n<p>（3）修改后通过编排创建PV（<strong>在Kubernetes master节点执行以下命令</strong>）:</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">kubectl apply -f hbase-datanode-local-volume.yaml</code></pre></div>\n<blockquote>\n<p>备注：</p>\n<ol>\n<li>HBase环境中的dataNode有几个副本就要创建几个PV,默认需要3个；如果自己伸缩了，请创建对应数目的PV；</li>\n<li>PV可以创建在任意Kubernetes节点上（通过<code class=\"gatsby-code-text\">修改点3</code>指定），推荐均匀分布在不同的节点上；</li>\n<li>PV既可以在开启/伸缩HBase之前创建，也可以在开启/伸缩HBase之后创建。</li>\n</ol>\n</blockquote>\n</li>\n<li>\n<p>系统运行过程中出现系统没有响应，检查系统日志后发现错误“echo 0 > /proc/sys/kernel/hung<em>task</em>timeout_secs” disables this message.”，如何解决？</p>\n<p>答: 这是因为在系统运行过程中负载飙升，文件系统脏数据缓存无法在指定时间内写入磁盘，导致系统挂起。这种情况一般在内存较大时出现，解决办法如下：</p>\n<p>（1）编辑 /etc/sysctl.conf 文件。设置脏数据处理时间以及写入超时时间：</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\"># 脏数据到达系统百分比开始处理\nvm.dirty_background_ratio=5\n# 脏数据到达系统百分比时，不得不处理\nvm.dirty_ratio=10\n# 脏数据写入超时时间，默认 120s，0 表示不限制\nkernel.hung_task_timeout_secs=0</code></pre></div>\n<p>（2）强制重启。系统挂起情况下，重启机器可能失败，因此需要强制重启：</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">reboot -n -f</code></pre></div>\n</li>\n<li>\n<p>在Kubernetes服务器集群中，某台服务器出现故障，导致该服务器上的服务不可用，如何应对？</p>\n<p>答：如果您的Kubernetes集群由三台或三台以上的服务器组成（含Master节点服务器），当某Worker节点服务器出现故障时，在该服务器中运行的服务会自动迁移至其他Worker节点服务器，自动迁移时长根据您的环境有所不同，大概在20分钟左右。如果您的Kubernetes集群只有两台服务器，当Worker节点服务器出现故障后，请参考以下步骤手动恢复服务：</p>\n<p>（1）在Master节点服务器中，查看服务器名称：</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">kubectl get nodes</code></pre></div>\n<p>（2）修改Master节点服务器名称。使用如下命令修改：</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">hostnamectl set-hostname &lt;newhostname&gt;</code></pre></div>\n<blockquote>\n<p>备注：<br>\n命令中的<code class=\"gatsby-code-text\">&lt;newhostname&gt;</code>为您的Master节点服务器新名称，可自定义。</p>\n</blockquote>\n<p>（3）进入/etc/kubernetes/manifests目录：</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">cd /etc/kubernetes/manifests</code></pre></div>\n<p>（4）编辑etcd.yaml文件，将文件中包含Master节点服务器旧名称的内容改为新设定的名称（共有两处，如下图）。执行以下命名进入文件编辑页面：</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">vi etcd.yaml</code></pre></div>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/iManager_K8S/1014/static/d005593fbb6eb7a09c16ce5cd743cb49/b04e4/modifyetcd.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 840px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 106.66666666666667%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAVCAIAAADJt1n/AAAACXBIWXMAAA7EAAAOxAGVKw4bAAAB8UlEQVQ4y5VUC26bQBT0EbofXDuJHZPGMbssLAss2EmjtPe/VGcAV1WMWio9I4wY5vMGVuJ7J1476Sp9Z3WS6bXhfF00K+lr8Rql8eq5VN9K/VToe7sQv1K7XLatOg3gl1I/5HprlzLrjZVNI5tWuiDzSoH5P2TnQbx1sqqVrWTmaX67WLYsApHG651jZpjNYmb8ZKihnGwq4+hxTryC/McVzIPXRj06kEtbqcwr2DZ+lIMIEIQas7CeWd4yQ7A4R9G3Mrbivfvy0QsYeSnVsZyOaUE7elDxCaz2TvZRANkRn1xiEmr1XKgTNl9wjiV0IUtcuQE/5LIMkApC7etT5ffvEVpk3ci6ZiKDBTxiipPDk0H2fT7AQlIF0TSUEFtiRhge0bfUnxYsEr14lApFHJh3Tp5j+tYe60rjJsN4eDfWjtqOgh+d3porrRnXOaXNeoMHnsnc4G3BX+IxaC6o0pnmXZmhzQfiPXc+WhVtM8lG+CA/uE/9uQY2BjOAiYG3g1P7HKP3TvOYz+15TWbIRsPFj7O4RM5PntCnyqaSzfVsYH4qmDBs43hhW8RHT/+ICmOG5h2K2VfSyC6KLnIf6CNMDlZV6ngHFru1v+O9ASeGy0AqNqBMvAkAfEw2dvokrf/yVt1ZautarJeX/gX4c34BvNmfPB9bu1kAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"modyifyetcd\"\n        title=\"\"\n        src=\"/iManager_K8S/1014/static/d005593fbb6eb7a09c16ce5cd743cb49/1e088/modifyetcd.png\"\n        srcset=\"/iManager_K8S/1014/static/d005593fbb6eb7a09c16ce5cd743cb49/65ed1/modifyetcd.png 210w,\n/iManager_K8S/1014/static/d005593fbb6eb7a09c16ce5cd743cb49/d10fb/modifyetcd.png 420w,\n/iManager_K8S/1014/static/d005593fbb6eb7a09c16ce5cd743cb49/1e088/modifyetcd.png 840w,\n/iManager_K8S/1014/static/d005593fbb6eb7a09c16ce5cd743cb49/b04e4/modifyetcd.png 888w\"\n        sizes=\"(max-width: 840px) 100vw, 840px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<p>（5）导出Worker节点服务器的配置文件：</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">kubectl get node &lt;old-nodeName&gt; -o yaml &gt; node.yaml</code></pre></div>\n<blockquote>\n<p>备注：<br>\n命令中的<code class=\"gatsby-code-text\">&lt;old-nodeName&gt;</code>为您的Worker节点服务器的名称，可通过步骤（1）中的命令查看。</p>\n</blockquote>\n<p>（6）修改node.yaml文件，将文件中包含Worker节点服务器名称的内容改为Master节点服务器的新名称，并在<code class=\"gatsby-code-text\">labels</code>中加入编排<code class=\"gatsby-code-text\">node-role.kubernetes.io/master: &quot;&quot;</code>（共有四处名称需要更改，在红线处加入编排，如下图）：</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">vi node.yaml</code></pre></div>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/iManager_K8S/1014/static/2af98b23e0cea9fab4dc231e0e1e106a/a016c/modifynode.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 762px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 125.23809523809524%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAZCAIAAAC+dZmEAAAACXBIWXMAAA7EAAAOxAGVKw4bAAACfElEQVQ4y41UWW7bMBDVBeqIi2Q7cbzH2kiKkkjJVlz/9Kvo/e/TN3TSIkDtGhgQQ4lv5s0aTX6eed0y14mdli+lTAs5fVQiNrj4e8/bVj4H5Ifkf/Ukp2sSRH4q4WMktpqdPHcdty05XymxVnS+VqSsldiZqy42SrwZsddib8RGi7WOYAMwdh74ycfngZ17ksGzo+em4XUjspqeAnMwZGin6UpgFcE7HpHzwbHeMe8Aw5UhlqYlPE7f8Q55cYQHnaUCXzkvIrGsCBZoc+/IVWUJc4XB7uCFsnIZmG81CaLYaDkrI7FS7DJw1YhDzYua/oEhYnszvLKUxVnI7TWLH6kKOrINjcz7jr334Ezeuo6QUEpLT++UCoZ573iIWYDqyVMyizrZqTTJkvt1hm3WtJPBTdpuYprYuSekZ3BVropM7VfFHedImJqPfTG68ux0Y1dV/ZrXi8omiPa5TObh3ewWGKUf3NrYnbV7XU/RJ027UHa5qVbTLJWhq9L8BvjNxGM/GT2Yf7sMqPDkMize3fbUbY9tqi1yTlX9F/mI688e2oRmvLbnc5HOCzDHFRW+NTARdy7+cRSZoQrnoc6ZwQ+RkvyZgRu0t5oKaxqxqvBIIEMvJbL40Eiiy/jRx5dBuE6OXh6dRJ8dzK0MfwWDHspbN+vcFM5WhVpPMy7zhzyLV0UzhN6Ec2WTRZmkn3N/Hf3/tCeKAdkbYvFSCcS80x9Dj7LP7tLG9D/9OrPRx6Aw9mQLU1XWogwW78eMGaZl0FBLY5kBKVlGnEVgfp82dhDWIMaD1tihxqw/uEMjOS9ph6DPNjph2VUeXb1cW0SLPgEe049lAl3OHwL/BpuFveLYUM0CAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"modifynode\"\n        title=\"\"\n        src=\"/iManager_K8S/1014/static/2af98b23e0cea9fab4dc231e0e1e106a/a016c/modifynode.png\"\n        srcset=\"/iManager_K8S/1014/static/2af98b23e0cea9fab4dc231e0e1e106a/65ed1/modifynode.png 210w,\n/iManager_K8S/1014/static/2af98b23e0cea9fab4dc231e0e1e106a/d10fb/modifynode.png 420w,\n/iManager_K8S/1014/static/2af98b23e0cea9fab4dc231e0e1e106a/a016c/modifynode.png 762w\"\n        sizes=\"(max-width: 762px) 100vw, 762px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<p>（7）修改kube-system命名空间下的kubeadm-config ConfigMap，将其中的Master节点服务器的旧名称改为新名称（有一处需要更改，如下图）：</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">kubectl -n kube-system edit configmap kubeadm-config</code></pre></div>\n<p>\n  <a\n    class=\"gatsby-resp-image-link\"\n    href=\"/iManager_K8S/1014/static/5f544210353f9717bd87c3d6e7471d60/03e1f/modifykubeadm.png\"\n    style=\"display: block\"\n    target=\"_blank\"\n    rel=\"noopener\"\n  >\n  \n  <span\n    class=\"gatsby-resp-image-wrapper\"\n    style=\"position: relative; display: block;  max-width: 489px; margin-left: auto; margin-right: auto;\"\n  >\n    <span\n      class=\"gatsby-resp-image-background-image\"\n      style=\"padding-bottom: 166.66666666666669%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAhCAIAAABWXBxEAAAACXBIWXMAAA7EAAAOxAGVKw4bAAADc0lEQVQ4y41ViVLiQBTkB1YzM+FwFQRRyEkyOSYJIF67//9L2z0jgiLWVk2FF5h3dfd79GRZisdGNpUsCtj+w0oFmT8M/+f0ZEVndZfw/Xf0fpx9FfmjH51xQ+alMJWo7SlKsa5FV6MQUZVqsVLT9FyInj8I8Zto6cAQplKz1L+2+a/jQ/JReBqixw/4jxNZoe1S7Br6j2PfD/x+4Cv7dG6DwL8KGe6Ts/O/iZl/1xCFpsZT5oXoDL5R96n32gqN0K3YmZPMo1DqQjy3YmtEU8EZnZOItXEQqCD3/nS4897CcWZRVbzUWp+skIlmqpeWQLS2ilQzFkK3tXpYsZcPZ1lbnnXBmgHb1sBW04S2yw8swMW2EesK1PqTGPX2XBky07Iu4ek9t95Tq5aZwCs8UQsChZki+JG6iekGOEdHZbNhVMjijXhl595bK8tCzVPE5VXUObBPdz71DIWmmjZi/2aGd7ZHVmqDcyJx1m3CsvNC3a8Qhfm7mlQ7LoY/OI9ClWixMRAjG5ul6o7nIKzv5HXIzN5Mxcrho/bacjldk4PgfNlyqSYxgcVsrrQaRxhMFeUqyUl7pmGc+u+pingJGvKeGoiBzKH/ILc6rYS2/pbbE+erCGLw3jq1Kqgh1F9TKkQO2kAtkFCSk+TB6UjS2QoT+SGMpwbgkfbOytvpvKlOYd/zDG5QcFt7O4M8RHuScDAB1ThWZD46O8+gl9lIL5/QIAkHYBDmNCVyGIbhuWWAZdTUaNuD1AwzU7As2KBbxOUwquVZZ17F9HV2EoBQU4EtPDkbeEXEgBI67rznZICqxMbOLe5lGgizzusYmpPLTM1XeEUL3zhjACkv5Nwws4oyeo4iouUH78vMGac8q4fssjMXbX2xNr/WxntpgRBX5xdtf4u27AeTJFsYPd/Voc4ozFkCwR6m1z8yjkqwzsNw3l/GcbpsdJYk/VmCdQl54QnC1G3C1T9PeWAs+H+EDbVfQ6gcNPRDiPESCxSqarmoxKOBwikSoIUoQA5nkck458D2g49lEMsg47oDpWXJzFjamxpXmRDJcaa2kHnqQ22+255shjk90IvBgIyLEsf727llxvHCVMQ59jF3qxWvG88e4iEn/9a2VkxYfa8dZxi3cy2xW4DcB07ozgHp0CbJqBMgwVhppyf+puwy8YOvbB0R9g/NTgSbt0+nngAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n    >\n      <img\n        class=\"gatsby-resp-image-image\"\n        style=\"width: 100%; height: 100%; margin: 0; vertical-align: middle; position: absolute; top: 0; left: 0; box-shadow: inset 0px 0px 0px 400px white;\"\n        alt=\"modifykubeadm\"\n        title=\"\"\n        src=\"/iManager_K8S/1014/static/5f544210353f9717bd87c3d6e7471d60/03e1f/modifykubeadm.png\"\n        srcset=\"/iManager_K8S/1014/static/5f544210353f9717bd87c3d6e7471d60/65ed1/modifykubeadm.png 210w,\n/iManager_K8S/1014/static/5f544210353f9717bd87c3d6e7471d60/d10fb/modifykubeadm.png 420w,\n/iManager_K8S/1014/static/5f544210353f9717bd87c3d6e7471d60/03e1f/modifykubeadm.png 489w\"\n        sizes=\"(max-width: 489px) 100vw, 489px\"\n      />\n    </span>\n  </span>\n  \n  </a>\n    </p>\n<p>（8）为服务器生成新证书，替换旧证书。执行如下操作：</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">cd /etc/kubernetes/pki/\nmkdir -p ~/tmp/BACKUP_etc_kubernetes_pki/etcd/\nmv apiserver.crt apiserver-etcd-client.key apiserver-kubelet-client.crt front-proxy-ca.crt front-proxy-client.crt front-proxy-client.key front-proxy-ca.key apiserver-kubelet-client.key apiserver.key apiserver-etcd-client.crt ~/tmp/BACKUP_etc_kubernetes_pki/.\nmv etcd/healthcheck-client.* etcd/peer.* etcd/server.* ~/tmp/BACKUP_etc_kubernetes_pki/etcd/\nkubeadm init phase certs all\n\ncd /etc/kubernetes\nmkdir -p ~/tmp/BACKUP_etc_kubernetes\nmv admin.conf controller-manager.conf kubelet.conf scheduler.conf ~/tmp/BACKUP_etc_kubernetes/.\nkubeadm init phase kubeconfig all\n\nmkdir -p ~/tmp/BACKUP_home_.kube\ncp -r ~/.kube/* ~/tmp/BACKUP_home_.kube/.\ncp -i /etc/kubernetes/admin.conf $HOME/.kube/config</code></pre></div>\n<p>（9）应用步骤（6）中修改过的Worker节点服务器配置文件：</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">kubectl apply -f node.yaml</code></pre></div>\n<p>（10）移除原Worker节点服务器：</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">kubectl delete node &lt;old-nodeName&gt;</code></pre></div>\n<p>（11）重启kubelet和docker服务：</p>\n<div class=\"gatsby-highlight\" data-language=\"sh\"><pre class=\"gatsby-code-sh\"><code class=\"gatsby-code-sh\">systemctl daemon-reload &amp;&amp; systemctl restart kubelet &amp;&amp; systemctl restart doker</code></pre></div>\n</li>\n</ol>","frontmatter":{"title":"教程","next":null,"prev":null},"fields":{"path":"content/tutorial/FAQ.zh.md","slug":"/zh/tutorial/FAQ/","langKey":"zh"}}},"pageContext":{"slug":"/zh/tutorial/FAQ/"}}}