云服务器内容精选

  • 操作步骤 选择目标应用,单击图标,单击“编辑”,进入“部署步骤”页面。 单击“权限管理”,切换到“权限管理”页面。 根据使用场景为各角色配置相应操作权限,请根据实际情况进行设置。查看应用级默认权限。 表示权限已开启,去勾选可关闭权限。 表示权限已关闭,勾选可开启权限。 表示权限已开启,且不可修改。 开启“使用项目权限配置”后,该页面的权限信息都不可修改。 应用创建者、项目管理员的权限不能修改。 如果当前用户没有“修改”权限则不能进入编辑页面。 如果当前用户有“修改”权限,但没有“权限管理”权限则无法编辑其他权限。 项目管理员(项目创建者和项目经理)支持自定义角色功能,可对自定义角色的权限进行编辑。 修改完所有信息,单击“保存”,保存该应用。
  • Helm3部署示例的环境准备 本节作为后续三个示例的环境准备,以环境准备中的chart目录为例,将使用如下模板,对CCE集群进行部署,在代码托管代码仓中,创建如下目录。 configmap.yaml部分片段: metadata: name: {{ .Values.configmapname }} deployment.yaml部分片段: spec: template: spec: containers: - image: '{{ .Values.imagename }}:{{ .Values.imagetag }}' values.yaml部分片段: configmapname: valuesfromfile imagename: httpd imagetag: latest {{ .Values.xxxx }} 对应Chart内values.yaml定义的变量。 以下三个示例,是在本节基础上进行的。 参考:Values文件使用说明。 示例1:使用Chart包或Chart文件结构目录部署 如果Chart中已有缺省values文件,则不需要指定制品仓库values文件,可直接部署。 其部署结果为: 对应CCE生成的configMap为: 对应CCE生成的deployment为: 示例2:通过指定制品仓库中的Values文件部署 本示例将演示,指定制品仓库中的Values文件进行部署。 外部values文件中定义的值将会覆盖Chart中values文件定义值。 外部Values的片段,本示例命名为values123.yaml: configmapname: valuesfile-releasenman imagename: nginx imagetag: stable 如下图,在“选择Values文件”中,选择制品仓库中的Values文件: 其部署结果为: 对应CCE控制台的configMap为: 对应CCE控制台的deployment为: 示例3:通过设置Values值进行部署 当设置了Values的值,其优先级会是最高的,会覆盖Chart内values文件设置值以及外部values文件内的设置值。 下面将以设置镜像版本的操作为例: Chart内values文件片段: imagetag: latest 制品仓库values文件片段: imagetag: stable 在设置values,填入: imagetag=perl 其部署结果为: 对应CCE控制台的deployment为:
  • 查看应用 介绍如何查看已创建应用的信息,该信息包括应用的部署记录及配置详情。 应用部署记录查看:您可查看应用的最近92天的部署记录。 应用配置详情查看:您可查看应用的最新配置信息。 应用操作记录查看:您可查看应用最近一年的操作记录。 同一个应用每部署一次,增加一次版本记录,编号最新的为最近一次部署记录。您可以查看已部署的应用中的“部署日志"、“执行参数”、“访问方式”、“环境”等信息。 单击目标应用名称,进入该应用“部署记录”页面。 在“部署记录”即可查看该应用的历史版本,排序由上至下分别对应部署时间由近至远。 可在上图中单击选中某一个应用版本,可查看该应用版本的“部署日志”、“执行参数”、“访问方式”、“环境”等信息。 表1 参数说明 参数 说明 部署日志 部署日志信息。 说明: 界面默认展示应用的全量日志,单击某个步骤可查看该步骤的部署日志。 单击日志窗口右上角全屏按钮,可以最大化日志窗口;单击“退出全屏”按钮,可以退出全屏。 单击“下载全量日志”,可以将日志下载到本地。 执行参数 该应用部署时的“执行参数”中参数对应的数值。 访问方式 仅应用中“部署步骤”包含“URL健康测试”时有该参数,添加该部署步骤可以在主机上通过访问 URL 测试服务状态。 环境 在主机部署场景下,显示该应用部署的环境。 回退到“部署记录”页签,切换顶部的页签,您可以查看已部署的应用中最新的“基本信息"、“部署步骤”、“参数设置”、“部署记录”“环境管理”、“权限管理”、“通知订阅”等信息。 单击“部署”旁的图标,在下拉框中单击“操作历史”,可以查看该应用最近一年的操作记录,也可以回到应用列表,选择目标应用,单击图标,单击“操作历史”进入页面。 参数 说明 操作人 显示具体操作人员的昵称。 操作类型 显示操作人员的操作类型,分为“新建”、“修改”、“禁用”、“取消禁用”。 修改时间 显示操作的具体时间。 操作对象 显示操作人员操作的具体对象,分为“应用”、“部署步骤”、“参数设置”、“权限管理”、“通知订阅”。
  • 编辑应用基本信息 选择目标应用,单击图标,单击“编辑”,进入“部署步骤”页面。 单击“基本信息”,切换到“基本信息”页面,可根据需要对名称、描述、执行主机等信息进行修改。 表1 参数说明 参数项 说明 名称 必填。应用的名称。 所属项目 默认。该应用的归属项目。如果账号下没有项目请您在项目选择框中选择“新建项目”会先弹出“新建项目”页面,这时建立的项目是Scrum。 描述 可选。对应用的描述。 执行主机 可选。资源池是部署软件包时执行部署命令的物理环境的集合,您可以使用华为云托管的官方资源池,您也可以将自有的服务器作为自托管资源池托管到华为云,托管方式请参考自托管资源池场景。 来自流水线 可选。开启后,只能通过流水线驱动执行,不能单独执行。 注意:如果租户账号已配置“全内网安全访问”功能(仅限白名单用户使用),则“执行主机”功能默认选择“自托管资源池”且不可更改。 修改完所有信息,单击“保存”,保存该应用。
  • 参数使用 下面以具体示例演示介绍如何使用自定义参数。 选择目标应用,单击图标,单击“编辑”,进入“部署步骤”页面。 单击“参数设置”,切换到“参数设置”页面,分别创建环境、枚举、字符串三种类型的自定义参数并打开“运行时设置”。 单击“部署步骤”,切换到“部署步骤”页面,在步骤详情中引用自定义参数。 参数引用形式:${参数名},在参数输入框输入“$”符号后会自动出现参数列表,如${Param_1}。 单击“保存并部署”,在弹窗中可重新对参数进行赋值。 单击“确定”,保存并部署该应用。 在流水线关联应用的时候,可将参数动态绑定; 在运行流水线的时候,输入的参数值会替换到应用中并运行; 在流水线中添加一个类型为部署的任务步骤,选择已配置运行时设置参数的应用,运行流水线时可动态设置。
  • 创建并配置参数 介绍应用中自定义参数的创建和配置。 选择目标应用,单击图标,单击“编辑”,进入“部署步骤”页面。 单击“参数设置”,切换到“参数设置”页面。 参数信息说明如下: 基本信息 说明 新建参数 单击“新建参数”,可以新增参数。 名称 参数名称。可修改自定义参数名称。 说明: 自定义参数名称不可与系统预定义参数名称相同。 类型 参数可选类型,包括:字符串类型、枚举类型和环境类型。 默认值 根据需要填写/选择参数值。 说明: 选择环境类型时,如果没有环境,需要手动新建环境。 私密参数 参数为私密参数时,系统会将输入参数做加密存储,使用时进行解密,不可设置“运行时设置”。 运行时设置 打开“运行时设置”开关,表示部署应用时支持变更参数值,并且也会把该参数上报应用。运行时参数需要执行时输入。 参数描述 对本参数的描述。 操作 单击参数所在行,可以删除该参数。 单击“新建参数”,新增一个参数,根据需要自定义参数名称、类型(默认为“字符串”类型)、默认值,设置私密参数及运行时设置等。 字符串类型 参数值为字符串,可在“默认值”列自定义参数值,设置私密参数及运行时设置等。 枚举类型 选中枚举类型后弹出“枚举”对话框,可以设置“可选取值”,如需设置多个,可单击图标添加。如需删除,可单击图标移除。 设置完成后,在“默认值”列的下拉列表选择其中一个值,如下图。 环境类型 该类型参数通过“默认值”列下拉列表选择环境,下拉列表中可选所在应用下创建的所有环境。 如果下拉列表没有可选项,需要在“环境管理”页签新建环境,新建完成后回到参数配置页面,然后单击刷新,将新的环境刷新到下拉列表中即可使用。 修改完所有信息,单击“保存”,保存该应用。
  • 编辑参数 选择目标应用,单击图标,单击“编辑”,进入“部署步骤”页面。 单击“参数设置”,切换到“参数设置”页面。 编辑参数 可对已有参数的参数名称、类型、默认值、私密参数、运行时设置、参数描述进行编辑。并可通过单击图标,拖拽参数行,移动参数顺序。 新增参数 单击“新建参数”,可在已有参数的基础上新增参数。同样单击参数操作列的图标,可在当前参数下方,新增一行参数并设置。 删除参数 单击图标,可对已有参数进行删除。
  • Linux系统主机配置 为确保Linux系统主机连通性验证成功,Linux主机需确保安装Python并开启SELinux机制,目标主机需要满足以下条件。 目标主机安装Python: 需安装Python2.6及以上版本,如果已安装Python2.6以下版本,需要在主机上安装以下模块,各系统安装命令如下: Ubuntu系统 sudo apt install python-minimal python-simplejson Centos或Euler系统 sudo yum install python-minimal python-simplejson ln -s /usr/bin/python2 /usr/bin/python 采用Apt或者Yum安装工具时,请确保已配置可用的源。 主机开启SELinux机制并安装“libselinux-python”模块: 查看SELinux状态,命令如下: /usr/sbin/sestatus “SELinux”状态参数值所对应的模式: SELinux=disabled:未开启。 SELinux=enforcing:强制模式,表示所有违反安全策略的行为都将被禁止。 SELinux=permissive:宽容模式,表示所有违反安全策略的行为不被禁止,但是会在日志中作记录。 若SELinux=disabled,则主机未开启该机制,需修改SELinux状态,步骤如下: 编辑SELinux的config文件,执行命令: vi /etc/selinux/config 根据实际情况选择修改SELinux参数为参数: SELinux=enforcing:强制模式,表示所有违反安全策略的行为都将被禁止。 SELinux=permissive:宽容模式,表示所有违反安全策略的行为不被禁止,但是会在日志中作记录。 修改完成按键盘“Esc键”,退出编辑模式,执行下面的命令,保存并退出文件。 wq 在根目录下创建隐藏文件.autorelabel,执行下面的命令后,重启Linux主机。 touch /.autorelabel 在主机上安装“libselinux-python”模块,各系统安装命令如下: Ubuntu系统 sudo apt install libselinux-python Centos或Euler系统 sudo yum install libselinux-python
  • Windows系统代理机配置 所需资源 已有Windows机器。 代理机和主机网络连通正常。 操作步骤 进入代理机,打开powershell窗口,执行netsh命令,注意按参数说明替换参数: netsh interface portproxy add v4tov4 listenaddress=${proxy_ip} listenport=${proxy_port} connectaddress=${host_ip} connectport=${host_port} 表2 参数说明 参数 参数释义 ${proxy_ip} 代理机私网IP ${proxy_port} 代理机监听端口,如54 ${host_ip} 主机私网IP ${host_port} 主机端口,一般为5986 进行安全配置,需要开通代理监听端口,即上述指令中的${proxy_port}。
  • 方案架构 系统升级时,若采用蓝绿部署方式,开发人员需进行如下操作: 先将A边服务器(原蓝环境)下线,同时访问流量将全部切分到B边服务器,此时对A边服务器进行升级操作。 A边服务器升级完毕后,将A边服务器设为灰度测试环境,由测试人员对A边服务器进行灰度验证。 灰度验证完毕且功能正常后,A边业务服务器(绿环境)正式上线,并将所有流量切分到A边业务服务器,此时蓝绿部署完毕。 在服务运行过程中,如果A边服务器出现紧急情况,执行蓝绿倒换实现业务快速恢复。 图1 灰度发布原理 若采用金丝雀灰度部署方式,再重复前面的操作,将B边服务器进行升级,并完成灰度测试及正式上线,此时就完成新系统的灰度发布。
  • 附录 A边节点下线-代码示例 worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$time_local|$remote_addr[$remote_port]|$request|$request_method|$content_length|' '$content_type|$http_referer|$host|$http_x_forwarded_for|' '$http_true_client_ip|$server_name|$request_uri|$server_addr|$server_port|' '$status|$request_time|$upstream_addr|$upstream_response_time|$cookie_domain_tag'; access_log logs/access.log main; #访问日志:存放路径,日志级别。 error_log logs/error.log; #错误日志:存放路径。 sendfile on; keepalive_timeout 65; upstream portal { # 下面填入A主机IP及应用服务端口 #server X.X.X.X:X; #A节点下线 # 下面填入B主机IP及应用服务端口 server X.X.X.X:X; } upstream portal_test { # 下面填入A主机IP及应用服务端口 server X.X.X.X:X; # 下面填入B主机IP及应用服务端口 server X.X.X.X:X; } server { listen XXX;#填入Nginx端口 server_name localhost; location / { set $backend portal; set $test portal_test; #下面填入灰度验证机器IP #if ( $remote_addr ~* "X.X.X.X") { # set $backend $test; #} proxy_pass https://$backend; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } 部署节点 # 获取应用进程id pid=`ps -ef | grep app_name | grep -v grep | awk '{print $2}'` if [ -z "$pid" ]; then echo "[app_name pid is not exist.]" else echo "app_name pid: $pid " # 停止该进程 kill -15 $pid fi # 重新启动应用,可通过执行部署脚本和部署命令两种方式启动应用,如下: # 方式一:通过执行部署脚本启动应用 # sh startup.sh # 方式二:通过执行命令启动应用,建议采用nohup后台启动方式 # nohup java -jar /usr/local/app/SpringbootDemo.jar & A边节点灰度上线-代码示例 worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$time_local|$remote_addr[$remote_port]|$request|$request_method|$content_length|' '$content_type|$http_referer|$host|$http_x_forwarded_for|' '$http_true_client_ip|$server_name|$request_uri|$server_addr|$server_port|' '$status|$request_time|$upstream_addr|$upstream_response_time|$cookie_domain_tag'; access_log logs/access.log main; #访问日志:存放路径,日志级别。 error_log logs/error.log; #错误日志:存放路径。 sendfile on; keepalive_timeout 65; upstream portal { # 下面填入A主机IP及应用服务端口 #server X.X.X.X:X; #A节点下线 # 下面填入B主机IP及应用服务端口 server X.X.X.X:X; } upstream portal_test { # 下面填入A主机IP及应用服务端口 server X.X.X.X:X; #A节点灰度上线 # 下面填入B主机IP及应用服务端口 #server X.X.X.X:X; } server { listen XXX;#填入Nginx端口 server_name localhost; location / { set $backend portal; set $test portal_test; #下面填入灰度验证机器IP if ( $remote_addr ~* "X.X.X.X") { set $backend $test; } proxy_pass https://$backend; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } B边节点下线-代码示例 worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$time_local|$remote_addr[$remote_port]|$request|$request_method|$content_length|' '$content_type|$http_referer|$host|$http_x_forwarded_for|' '$http_true_client_ip|$server_name|$request_uri|$server_addr|$server_port|' '$status|$request_time|$upstream_addr|$upstream_response_time|$cookie_domain_tag'; access_log logs/access.log main; #访问日志:存放路径,日志级别。 error_log logs/error.log; #错误日志:存放路径。 sendfile on; keepalive_timeout 65; upstream portal { # 下面填入A主机IP及应用服务端口 server X.X.X.X:X; # 下面填入B主机IP及应用服务端口 #server X.X.X.X:X; #B节点下线 } upstream portal_test { # 下面填入A主机IP及应用服务端口 server X.X.X.X:X; # 下面填入B主机IP及应用服务端口 server X.X.X.X:X; } server { listen XXX;#填入Nginx端口 server_name localhost; location / { set $backend portal; set $test portal_test; #下面填入灰度验证机器IP #if ( $remote_addr ~* "X.X.X.X") { # set $backend $test; #} proxy_pass https://$backend; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } B边节点灰度上线-代码示例 worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$time_local|$remote_addr[$remote_port]|$request|$request_method|$content_length|' '$content_type|$http_referer|$host|$http_x_forwarded_for|' '$http_true_client_ip|$server_name|$request_uri|$server_addr|$server_port|' '$status|$request_time|$upstream_addr|$upstream_response_time|$cookie_domain_tag'; access_log logs/access.log main; #访问日志:存放路径,日志级别。 error_log logs/error.log; #错误日志:存放路径。 sendfile on; keepalive_timeout 65; upstream portal { # 下面填入A主机IP及应用服务端口 server X.X.X.X:X; # 下面填入B主机IP及应用服务端口 #server X.X.X.X:X; #B节点下线 } upstream portal_test { # 下面填入A主机IP及应用服务端口 #server X.X.X.X:X; # 下面填入B主机IP及应用服务端口 server X.X.X.X:X; #B节点灰度上线 } server { listen XXX;#填入Nginx端口 server_name localhost; location / { set $backend portal; set $test portal_test; #下面填入灰度验证机器IP if ( $remote_addr ~* "X.X.X.X") { set $backend $test; } proxy_pass https://$backend; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } 节点上线-代码示例 worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$time_local|$remote_addr[$remote_port]|$request|$request_method|$content_length|' '$content_type|$http_referer|$host|$http_x_forwarded_for|' '$http_true_client_ip|$server_name|$request_uri|$server_addr|$server_port|' '$status|$request_time|$upstream_addr|$upstream_response_time|$cookie_domain_tag'; access_log logs/access.log main; #访问日志:存放路径,日志级别。 error_log logs/error.log; #错误日志:存放路径。 sendfile on; keepalive_timeout 65; upstream portal { # 下面填入A主机IP及应用服务端口 server X.X.X.X:X; # 下面填入B主机IP及应用服务端口 server X.X.X.X:X; } upstream portal_test { # 下面填入A主机IP及应用服务端口 server X.X.X.X:X; # 下面填入B主机IP及应用服务端口 server X.X.X.X:X; } server { listen XXX;#填入Nginx端口 server_name localhost; location / { set $backend portal; set $test portal_test; #下面填入灰度验证机器IP #if ( $remote_addr ~* "X.X.X.X") { # set $backend $test; #} proxy_pass https://$backend; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
  • 处理方法 win+R打开运行窗口,输入“regedit”打开Windows的注册表编辑器,定位到以下路径: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 在右侧窗口中,找到名为TcpTimedWaitDelay的DWORD值。如果该值不存在,则需要手动创建。 修改TcpTimedWaitDelay参数数值为需要设置的值(以毫秒为单位),例如,将TcpTimedWaitDelay设置为1分钟(60000毫秒)。 重启计算机使配置生效。 修改TcpTimedWaitDelay的值可能会影响网络性能和安全性,请根据业务需要自行评估。单环境中包含多台Windows目标主机执行部署时,建议采用分批部署方式,避免修改TcpTimedWaitDelay值造成未知影响。
  • 部署应用时错误信息的说明有哪些? 在部署应用过程中,部署失败后日志中提示错误信息及说明,如下表所示: 错误信息 错误信息说明 The host ip is invalid, Please check 主机不可用,主机ip不能是127.0.0.1或者localhost [group_vars/all] is not found, Please check [group_vars/all]文件未找到,请确认入口文件所在目录下是否包含[group_vars/all]文件 The parameter value is invalid, Please check! 参数值存在不识别的字符,参数值仅支持ASCII(除“{{”,“{%”,“{#”) The parameter value is invalid, Please check! 参数名称中存在不识别的字符,参数只能包含_、数字与大小写字母 父主题: 应用部署
  • 查看本机器是否有IIS功能 请根据下面的步骤查看机器版本是否有iis功能。 以“Windows Server 2012 R2英文版操作系统”为例: 打开计算机,单击“卸载或更改程序”如下图所示 图1 卸载或更改程序 然后单击“启用或关闭Windows功能”如下图所示。 图2 启用或关闭Windows功能 在打开的页面中单击“Next” 如下两张图所示进行操作。 图3 操作示意 图4 操作示意 在打开的页面中查找“Web Server(IIS)” 如下图所示,如若不存在,则该版本不支持IIS功能。 图5 操作示意 父主题: 新建IIS站点
  • 问题现象 日志提示如下信息: "msg": "Failed to find handler for \"usr/local/python/Python-3.5.4.tgz\". Make sure the required command to extract the file is installed. Command \"/usr/bin/unzip\" could not handle archive. Command \"/usr/bin/gtar\" could not handle archive."}