云服务器内容精选

  • 步骤一:注册集群 登录U CS 控制台。 在左侧导航栏中选择“容器舰队”,单击附着集群选项卡中的“注册集群”按钮。 参考表1填写待添加集群的基础信息,其中带“*”的参数为必填参数。 表1 注册集群基础信息配置 参数 参数说明 集群名称* 输入集群的自定义名称,需以小写字母开头,由小写字母、数字、中划线(-)组成,且不能以中划线(-)结尾。 集群服务商* 选择一个集群服务商。 所属区域* 选择集群所在的区域。 集群标签 非必填项,以键值对的形式为集群添加标签,可以通过标签实现集群的分类。键值对可自定义,以字母或者数字开头和结尾,由字母、数字、连接符(-)、下划线(_)、点号(.)组成,且63个字符之内。 上传KubeConfig* 上传kubectl的配置文件来完成集群认证,支持JSON或YAML格式。获取KubeConfig文件的操作步骤因厂商而异,请参见KubeConfig。 选择Context* 选择对应的Context。在完成KubeConfig文件上传后,选项列表将自动获取文件中的“contexts”字段。 默认值为KubeConfig文件中“current-context”字段指定的Context,若文件中无此字段则需要从列表中手动选择。 容器舰队 选择集群所属的舰队。 舰队用于权限精细化管理,一个集群只能加入一个舰队。若不选择舰队,集群注册成功后将显示在“未加入舰队的集群”页签下,后续还可以再添加至舰队中。 不支持在注册集群阶段选择已开通集群联邦能力的舰队,如果一定要加入这个舰队,请在集群注册成功后,再添加到该舰队中。关于集群联邦的介绍,请参见开通集群联邦章节。 如需新建舰队,请参见管理容器舰队。 单击“确定”,集群注册成功后如图1所示,请在30分钟内接入网络。您可选择集群的接入方式或单击右上角按钮查看详细的网络接入流程。 如您未在30分钟内接入网络,将会导致集群注册失败,可单击右上角按钮重新注册集群。如果已经接入但数据未采集上来,请等待2分钟后刷新集群。 图1 集群等待接入状态
  • 排查项三:集群kube-apiserver状态 集群接入UCS时,可能出现如图2所示的异常信息,错误显示“please check the health status of kube apiserver: ...”。 图2 kube-apiserver状态异常 如出现以上信息,说明proxy-agent无法和集群apiserver进行正常通信,由于不同用户待接入集群的网络环境配置不同,这里无法提供统一的解决方案,需要您自行解决集群网络问题后进行重试。 登录UCS控制台,在左侧导航栏选择“容器舰队”页面。 登录目标集群Master节点,查看apiserver地址。 kubectl get po `kubectl get po -nkube-system | grep kube-apiserver | awk {'print $1'}` -nkube-system -oyaml | grep advertise-address.endpoint 查看集群的KubeConfig文件中“clusters.cluster.server”字段是否与2中查询的集群apiserver地址一致。 如不一致,可能是集群提供商做了apiserver的地址转换,请替换KubeConfig文件中的集群apiserver地址后,在UCS控制台重新注册集群,并重新部署proxy-agent。 若KubeConfig文件中“clusters.cluster.server”字段为“https://kubernetes.default.svc.cluster.local:443”可无需替换,该 域名 为kubernetes服务(即apiserver的ClusterIP)的本地域名。 检查proxy-agent的Pod是否可以访问待接入集群的apiserver。 参考命令: kubectl exec -ti proxy-agent-*** -n kube-system /bin/bash # 访问集群的kube-apiserver curl -kv https://*.*.*.*:*/readyz 如无法正常访问,请解决集群网络问题后,在UCS控制台重新注册集群,并重新部署proxy-agent。
  • 排查项二:集群与UCS网络连接状态 公网接入: 检查集群是否绑定公网IP或配置公网NAT网关。 检查集群安全组的出方向是否放通。如需对出方向做访问控制,请联系技术支持获取目的地址和端口号。 解决网络问题后,删掉已有的proxy-agent Pod使其重新生成Pod资源,查看新建Pod的日志中是否存在“Start serving”的日志打印。 kubectl -n kube-system logs proxy-agent-*** | grep "Start serving" 日志正常打印后,刷新UCS控制台页面,查看集群是否正常连接。 私网接入: 检查集群安全组的出方向是否放通。如需对出方向做访问控制,请联系技术支持获取目的地址和端口号。 排除集群与UCS和IDC/第三方云之间的网络连接故障。 根据网络连接方式不同,请参考以下文档进行故障排除。 云专线(DC):请参考故障排除。 虚拟专用网络 (VPN):请参考故障排除。 排除集群私网接入的VPCEP故障,VPCEP状态需为“已接受”。如VPCEP被误删除,则需重新创建,请参见私网接入的集群误删除VPCEP后如何恢复。 图1 VPCEP状态 解决网络问题后,删掉已有的proxy-agent Pod使其重新生成Pod资源,查看新建Pod的日志中是否存在“Start serving”的日志打印。 kubectl -n kube-system logs proxy-agent-*** | grep "Start serving" 日志正常打印后,刷新UCS控制台页面,查看集群是否正常连接。
  • 排查项一:proxy-agent的运行状态 集群从UCS注销后,原有proxy-agent配置文件中包含的认证信息将会失效,请同时删除集群中已部署的proxy-agent实例。如需再次接入UCS,必须重新从UCS控制台下载proxy-agent配置文件进行部署。 登录目标集群Master节点。 查看集群代理部署状态。 kubectl -n kube-system get pod | grep proxy-agent 如果部署成功,预期输出如下: proxy-agent-*** 1/1 Running 0 9s 说明proxy-agent部署正常,如proxy-agent没有处于正常Running状态,可以使用kubectl -n kube-system describe pod proxy-agent-***查看Pod的告警信息,详细排查思路可参考proxy-agent部署失败怎么办?。 proxy-agent默认部署两个Pod实例,存在一个Pod正常Running即可使用基本功能,但是高可用性无法保证。 打印proxy-agent的Pod日志,查看代理程序是否可以连接到UCS。 kubectl -n kube-system logs proxy-agent-*** | grep "Start serving" 如没有“Start serving”的日志打印但是proxy-agent实例状态正常,则需要继续检查其他排查项。
  • 排查项四:集群认证信息变化 如错误显示“cluster responded with non-successful status: [401][Unauthorized]”,可能是集群认证信息过期或者发生了变化,从而导致UCS无法访问集群kube-apiserver,请您注销该集群,使用新的KubeConfig文件重新注册集群,并重新部署proxy-agent。 建议您使用永久的KubeConfig文件,防止由于集群认证信息过期导致UCS无法管理集群。 部分厂商提供的第三方集群在欠费后重新续费会导致认证信息变化,请尽量避免集群欠费的情况发生。
  • 排查思路 集群处于异常状态的排查思路大致可根据报错信息进行定位,如表1所示。 表1 报错信息说明 报错信息 说明 推荐排查项 “currently no agents available, please make sure the agents are correctly registered” 出现该错误的原因大概率为接入集群中的proxy-agent运行状态异常或网络异常。 排查项一:proxy-agent的运行状态 排查项二:集群与UCS网络连接状态 “please check the health status of kube apiserver: ...” 出现该错误的原因大概率为集群内部kube-apiserver无法访问。 排查项三:集群kube-apiserver状态 “cluster responded with non-successful status code: ...” 出现该错误的原因可能是多样的,请根据实际状态码进行排查。 例如状态码401表示用户没有访问权限,可能的原因是集群认证信息过期。 排查项四:集群认证信息变化 “cluster responded with non-successful message: ...” 出现该错误的原因可能是多样的,请根据实际信息进行排查。 例如“Get "https://172.16.0.143:6443/readyz?timeout=32s\": context deadline exceeded”显示访问apiserver超时,可能是因为集群apiserver发生故障。 - “Current cluster version is not supported in UCS service.” 出现该错误的原因是集群版本不符合要求:接入UCS服务的Kubernetes集群版本必须为1.19及以上。 -