云服务器内容精选

  • 基础软件规划 本地集群节点的操作系统、内核版本等基础软件规划需要符合表1中的要求。 表1 基础软件规划 系统架构 系统类型 网络模型 操作系统版本 内核版本限制 x86 Ubuntu 22.04 Cilium 检查命令: cat /etc/lsb-release DISTRIB_DESCRIPTION="Ubuntu 22.04.1 LTS" 检查命令: uname -r 5.10.0-46-generic及以上 Redhat 8.6 Cilium 检查命令: cat /etc/os-release Red Hat Enterprise Linux release 8.6 (Ootpa) 检查命令: uname -r 4.18.0-372.9.1.el8.x86_64 HCE OS 2.0 Cilium 检查命令: cat /etc/os-release Huawei Cloud EulerOS 2.0 (x86_64) 检查命令: uname -r 5.10.0-60.18.0.50.r865_35.hce2.x86_64 ARM HCE OS 2.0 Cilium 检查命令: cat /etc/os-release Huawei Cloud EulerOS 2.0 (aarch64) 检查命令: uname -r 虚拟机: 5.10.0-60.18.0.50.r1083_58.hce2.aarch64 裸机: 5.10.0-136.12.0.86.r1526_92.hce2.aarch64 Cilium是一种网络插件,支持BGP、eBPF等网络协议,详细了解Cilium请参见Cilium官方文档。 HCE OS 2.0 (华为云欧拉操作系统 2.0) 是基于华为开源社区openEuler构建的Linux操作系统,提供云原生、高性能、安全稳定的执行环境来开发和运行应用程序,支持X86、ARM64等硬件架构。如需安装HCE OS 2.0,请提交工单,联系技术支持人员。详细了解HCE OS请参见HCE OS文档。 集群节点CPU架构暂不支持异构混部,请规划好集群的节点架构为X86或ARM64。 1.28.5及之后集群版本,支持HCE OS 2.0 ARM系统架构类型。 父主题: 安装本地集群的业务规划
  • 集群备份 本地备份 创建备份文件压缩包存放的目录。 执行备份命令: ./ucs-ctl backup 集群名 --path 备份路径 --type local 示例如下: ./ucs-ctl backup gpu-test --path /home/ggz/gpu-test --type local 执行成功后,会在指定的备份路径下产生名为:集群名-backup-时间戳.tar.gz这样一个备份压缩文件。 备份压缩文件存在ha.yaml、etcd-snapshot目录、crt目录,etcd-snapshot包含etcd备份数据,crt包含证书与加解密材料。 远端备份
  • 功能验证 登录U CS 控制台。 如果是未加入舰队集群,直接单击集群名即可进入集群控制台。 如果是已加入容器舰队的集群,先进入对应容器舰队控制台,选择左侧 “集群管理”内的“容器集群”,再进入对应集群控制台。 左侧导航栏内选择“工作负载”,单击镜像创建。 选择可用镜像创建负载,并在“服务配置”中单击,添加一个ClusterIP类型的Service,具体操作请参见5工作负载服务配置。 左侧导航栏内选择“服务与路由”,单击“路由”,单击“创建路由”,选择刚刚所创建的ClusterIP类型的Service。路由配置相关操作请参见路由。 访问ingress服务,确认转发规则配置成功。 如果是使用LoadBalancer暴露的ingress服务,选择LoadBalancer的ingress服务进行集群外访问: 如果是使用NodePort暴露的ingress服务,选择任意节点+ingress svc端口进行集群外访问:
  • 使用本地集群KubeConfig文件 拿到ucs-ctl生成的KubeConfig之后,还需要使KubeConfig在节点上生效,步骤如下: 复制KubeConfig到节点上。 scp /local/path/to/kubeconfig user@remote:/remote/path/to/kubeconfig 如果当前节点添加过EnableSecretEncrypt环境变量,需要先取消。 unset EnableSecretEncrypt 使KubeConfig生效,可选方法: 方法一:复制到默认位置。 mv /remote/path/to/kubeconfig $HOME/.kube/config 方法二:环境变量指定。 export KUBECONFIG=/remote/path/to/kubeconfig 方法三:命令行参数指定。 kubectl --kubeconfig=/remote/path/to/kubeconfig 上述操作之后,就可以访问本地集群的API server了。关于KubeConfig更详细的用法可参考:使用kubeconfig文件组织集群访问Kubernetes。
  • 获取本地集群KubeConfig文件 KubeConfig是Kubernetes集群中组织有关集群、用户、命名空间和身份认证机制信息的配置文件,Kubectl使用KubeConfig来获取集群的信息并与API server进行通信。 获取本地集群的KubeConfig需要使用ucs-ctl工具,获取步骤如下: 使用ucs-ctl获取集群名称。 ./ucs-ctl get cluster 使用ucs-ctl导出指定集群的KubeConfig。 ./ucs-ctl get kubeconfig -c test-redhat86 -o kubeconfig 可以使用ucs-ctl get kubeconfig -h查看获取KubeConfig所使用到的参数。 -c, --cluster string:指定待导出KubeConfig的集群名。 -e, --eip string:指定API server的eip。 -o, --output string:指定KubeConfig导出文件名。 -p, --secretPath string:指定待导出KubeConfig的加密物料路径。
  • 更新本地集群证书文件 为应对本地集群证书信息泄露或过期情况,或进行例行的安全维护,可以使用ucs-ctl对本地集群的证书文件进行更新。 更新证书可以选择tls或者ca类型。 ./ucs-ctl kcm update-cert {cluster_name} --mode tls 若需要再次更新,需先删除证书目录的文件,然后进行更新,否则将会报错:error: "update cert recordFile[\"var/paas/ucs/{cluster_name}/cert_update/status.json\"] already exists, please use the option \"-- retry or -r\"to retry it". rm -rf /var/paas/ucs/{cluster_name}/cert_update
  • 上传配置文件 登录UCS控制台,单击待接入集群栏的“点击接入”进入集群接入界面,可选择“公网接入”和“私网接入”。 选择接入方式并下载代理配置文件。 若选择“公网接入”,直接在界面单击“下载文件”,下载本地集群代理配置文件“agent-[集群名称].yaml”。 若选择“私网接入”,需要先选择项目,再选择安装前准备(私网接入)中创建的终端节点,然后单击“下载文件”,下载本地集群代理配置文件“agent-[集群名称].yaml”。 集群代理配置文件存在私有密钥信息,每个集群仅能下载一次,请您妥善保管。 本地集群接入并下载集群配置文件时,无需输入密码,安装时由用户手动输入密码。 输入集群安装所需参数并下载集群配置文件“cluster-[集群名称].yaml”。 若集群为1.28.5及之后版本,此处可选择“集群架构”X86 或者 ARM类型。 图1 本地集群安装及接入流程 当前集群的节点CPU架构暂不支持异构混部。若本地集群安装失败,请参考本地集群安装失败怎么办? 1.28.5及之后集群版本,支持集群架构选择。 通过远程传输工具,使用root用户将下载的“agent-[集群名称].yaml”和“cluster-{集群名称}.yaml”文件上传到执行机的“/root/”目录下。 若您需要使用L4或L7负载均衡能力,则需要将集群网络类型配置为BGP,具体操作请参见Cilium。 执行机如果出现SSH连接超时,请参考虚拟机SSH连接超时处理方法处理。 选择集群架构后,请确认ucs-ctl的执行机与集群架构一致。
  • 本地集群的优势 兼容各类基础设施,面向多样化的业务场景 支持直接部署在裸金属服务器之上,减少虚拟化开销,运行高性能的裸金属容器。 支持部署在业界主流的IaaS虚拟机之上,如OpenStack和VMware等。 兼容多种操作系统,包括Huawei Cloud EulerOS、Ubuntu、Kylin、UOS、CentOS和FusionOS。 基于KubeVirt实现虚拟机的部署、运行和管理。 兼容主流的高速硬件,容器支持使用GPU、NPU、IB网卡等高速硬件,满足高性能业务场景。 支持多种异构处理器,包括X86和鲲鹏。 云原生、安全的容器网络 灵活的应用访问,支持对接多种业界主流的负载均衡器,提供Ingress接入方式。 网络QoS:实现精细化的流量控制,避免网络堵塞。 网络策略实现应用灵活的网络访问控制与隔离。 全面兼容社区生态及华为云商业软件 支持社区原生PVC机制,有状态应用持久化存储,数据不丢失。 全面支持云容器存储标准,提供丰富的存储方案。 生态丰富、精细化的运维能力,专业的运维保障 全面兼容Prometheus生态:云原生标准监控采集和日志采集接口,支持自定义扩展,全面涵盖集群、容器、应用各层次的监控、日志、告警、调用链等。 在线运维:支持系统日常巡检在线操作,原厂运维快速接入解决疑难故障。
  • 操作步骤 下载ucs-ctl二进制工具,放到任一台本地集群的管控节点/root/ucs目录下。 将所有节点密码信息记录到表格中,并保存到二进制所在节点/root/ucs/update_cert.csv。格式请参考表1。 表1 表格模板 字段 说明 Node IP 必填,节点IP地址 Node Role 必填,节点角色(选填master/node) User 必填,节点登录用户 Password 选填,节点登录密码 Auth Type 选填,节点认证类型(选填password/key) Key Path 选填,节点登录密钥路径 样例如下: Node IP,Node Role,User,Password,Auth Type,Key Path 192.168.0.145,master,root,xxx,password, 192.168.0.225,master,root,xxx,password, 192.168.0.68,master,root,xxx,password, 192.168.0.89,node,root,xxx,password, 导出环境变量 export CUSTOM_DOMAIN={ucs_endpoint},10.247.0.1 其中ucs_endpoint为server访问地址,可通过以下方式获取: cat /var/paas/srv/kubernetes/kubeconfig | grep server 若需要再次更新证书,需要先删除证书目录的文件,然后进行更新: rm -rf /var/paas/ucs/{cluster_name}/cert_update 执行证书更新。 cd /root/ucs ./ucs-ctl kcm update-cert {cluster_name} -c update_cert.csv 失败后重试。 ./ucs-ctl kcm update-cert {cluster_name} -c update_cert.csv -r 失败后回滚。 ./ucs-ctl kcm rollback-cert {cluster_name} -c update_cert.csv
  • 操作步骤 修改“/etc/default/grub”文件的GRUB_CM DLI NE_LINUX配置项,添加systemd.unified_cgroup_hierarchy=no,关闭cgroup v2。 GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0 systemd.unified_cgroup_hierarchy=no" 使用sudo grub-mkconfig -o /boot/grub/grub.cfg命令重新生成引导。 执行reboot重启机器。
  • 问题描述 etcd kubernetes容器无法拉起,执行journalctl -u containerd查看containerd日志,看到以下日志: applying cgroup configuration for process caused \\\"mountpoint for cgroup not found\\\"\"\n 使用stat -fc %T /sys/fs/cgroup/查看cgroup版本为cgroup2fs,该问题根因为当前kubernetes版本cgroup v2暂未商用,需要进行cgroup降级。
  • 本地集群配置文件 本地集群配置文件为一个Cluster.yaml文件,是在UCS 控制台中自动生成,用于初始化本地集群的master节点。表1是该文件内各个字段的说明。 表1 命令 配置项 配置命令 # ssh登录master节点用户 USERNAME: root # ssh登录master节点密码 PASSWORD: # 集群master1节点IP地址 MASTER-1: # 集群master2节点IP地址 MASTER-2: # 集群master3节点IP地址 MASTER-3: # 是否使用ELB# 是否使用ELB AC CES S_EXTERNAL_LOAD_BALANCE: false # 可用ELB地址 EXTERNAL_LOAD_BALANCE_IP: # 集群VIP地址 VIRTUAL_IP: # 容器网络服务 NETWORK_PROVIDER: cilium # 容器网段 CILIUM_IPV4POOL_CIDR: 172.16.0.0/16 # cilium bgp 开关 CILIUM_BGP_ENABLE: false # cilium bgp 邻居地址 CILIUM_BGP_PEER_ADDRESS: 127.0.0.1 # cilium bgp AS编号 CILIUM_BGP_PEER_ASN: 65010 # cilium 负载均衡网段 LOAD_BALANCER_CIDR: # cilium 容器网络模式 CILIUM_NETWORK_MODE: overlay # 时区 TIMEZONE: Asia/Shanghai # 是否对管理节点打污点 TAINT_MANAGE: yes # 是否使用NTP INSTALL_NTP: true # 外接ntp服务地址 NTP_SERVER_IP: # 代理转发模式 PROXY_MODE: ebpf # 外接dns服务地址 DNS_SERVER_IP: # 集群外部访问地址 CUSTOM_IP: # 集群安装包下载地址 PACKAGE_PATH: # 集群镜像包下载地址 IMAGES_PACKAGE_PATH: # IAM 租户ID IAM_DOMAIN_ID: # IAM 云服务地址 IAM_ENDPOINT: 父主题: 管理本地集群
  • 检查节点apt源(Ubuntu) 检查节点apt源操作适用于操作系统为Ubuntu的节点,若您的节点操作系统为HCE或Redhat,请参见检查节点yum源(HCE、Redhat)进行检查。 在本地集群执行纳管节点操作时(纳管节点是指待添加到本地集群管理的服务器),部分安装组件如ntpdate等,需要从apt源中获取依赖包。故纳管节点前,请确保节点上apt源是可用的,若不可用,请执行如下操作。 以安装用户(默认为root)登录待安装的集群管理节点。 编辑“/etc/apt/sources.list”。 具体信息以实际规划的apt源服务器地址为准。 保存文件,执行如下命令。 sudo apt-get update 请分别登录到规划的节点执行上述操作。
  • 检查节点yum源(HCE、Redhat) 在本地集群执行纳管节点操作时,部分安装组件如ntpdate等,需要从yum源中获取依赖包。故纳管节点前,请确保节点上yum源是可用的,若不可用,请执行如下操作。 以安装用户(默认为root)登录待安装的集群管理节点。 修改/etc/yum.repos.d/目录下的软件源配置文件。 具体信息以实际规划的yum源服务器地址为准。 保存文件,执行如下命令。 sudo yum clean all sudo yum makecache 请分别登录到规划的节点执行上述操作。
  • 主机最小化安装要求 不使用的软件包不允许存在系统中 遵循最小化安装原则,只安装业务需要的软件包与服务组件。减少系统漏洞,降低系统遭受攻击风险。 用于生产环境的系统中不允许保留开发和编译工具 系统中不允许存在如下开发工具和编译工具: 'cpp' (/usr/bin/cpp) 'gcc' (/usr/bin/gcc) 'ld' (/usr/bin/ld) 'lex' (/usr/bin/lex) 'rpcgen' (/usr/bin/rpcgen) 如果产品的生产环境,比如在部署或运行过程中需要python、lua等解释器,则可以保留解释器运行环境,否则不允许保留。 'python' (/usr/bin/python) 'lua' (/usr/bin/lua) 同样情形适用于perl解释器,Suse系统的一些管理程序依赖perl解释器,在这种情形下,则可保留perl解释器,否则需要去除。 perl (/usr/bin/perl) 操作系统中不允许安装显示安全策略的工具 防止系统的安全信息泄露。依照业务需求,预安装的安全加固工具,限制其文件的所有者为root,并且仅root具有执行权限。 操作系统中不允许存在网络嗅探类的工具 tcpdump、ethereal等嗅探工具不允许出现在系统上,防止被恶意使用。 在不需要Modem系统中不应默认安装Modem 在不需要Modem系统中不应默认安装Modem,严格遵循系统最小化安装。