云服务器内容精选
-
卸载节点 方法一: 在执行机上执行 ./ucs-ctl delete node -c [集群名称] -n [node ip1],[node ip2],… 使用-n指定具体IP,使用英文逗号分隔。 方法二: 在执行机执行 ./ucs-ctl delete node -c [集群名称] -m node.csv 使用-m指定纳管时使用的节点文件,可以一次性卸载所有节点。 如果命令执行失败,请参考如何手动清理本地集群节点?处理。
-
纳管节点 在执行机上使用./ucs-ctl config generator -t node -o node.csv命令生成纳管节点时使用的配置文件。 将所需节点的参数写入配置文件,使用英文逗号分隔,如下所示。参数描述如表1。 表1 配置文件参数描述 参数 描述 Node IP 节点IP User SSH连接用户 Password SSH连接密码 示例: Node IP,User,Password 123.45.6.789,root,******** 123.45.6.890,root,******** 在执行机上执行以下命令./ucs-ctl create node -c [集群名称] -m node.csv,完成节点的纳管。 node.csv文件中存在密钥信息,请妥善保管。
-
上传配置文件 登录U CS 控制台,单击待接入集群栏的“点击接入”进入集群接入界面,可选择“公网接入”和“私网接入”。 选择接入方式并下载代理配置文件。 若选择“公网接入”,直接在界面单击“下载文件”,下载本地集群代理配置文件“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的执行机与集群架构一致。
-
获取本地集群私钥签发的jwks 使用kubectl连接本地集群。 执行如下命令获取公钥。 kubectl get --raw /openid/v1/jwks 返回结果为一个 json 字符串,是当前集群的签名公钥,用于访问身份提供商。 { "keys": [ { "kty": "RSA", "e": "AQAB", "use": "sig", "kid": "Ew29q....", "alg": "RS256", "n": "peJdm...." } ] }
-
配置身份提供商 登录 IAM 控制台,创建身份提供商,协议选择OpenID Connect。 图2 创建身份提供商 单击“确定”,然后修改身份提供商信息,需要修改的信息如表1 身份提供商配置参数说明。若需要创建身份转换规则,单击“创建规则”进行创建。 图3 修改身份提供商信息 图4 创建身份转换规则 表1 身份提供商配置参数说明 参数 说明 访问方式 选择“编程访问” 配置信息 身份提供商 URL:https://kubernetes.default.svc.cluster.local。 客户端 ID:ucs-cluster-identity。 签名公钥:本地集群的jwks,获取方法请参见获取本地集群私钥签发的jwks。 身份转换规则 身份映射规则是将工作负载的 ServiceAccount 和 IAM 用户组做映射。 例如:在集群default命名空间下创建一个名为 XXX 的 ServiceAccount,映射到 demo 用户组(后续使用身份提供商 ID 访问云服务就具有 demo 用户组的权限)。 值的格式为:system:serviceaccount:Namespace:ServiceAccountName 单击“确定”。
-
方案流程 使用工作负载Identity的流程如图1 使用工作负载Identity流程,具体流程如下: 前置授权。 在UCS获取本地集群私钥签发的jwks,该公钥用于验证集群签发的ServiceAccount Token。 在 IAM 配置身份供应商,标志当前集群在IAM侧的身份。 为身份提供商配置集群签发的公钥,后续负载使用Token发送请求时,IAM使用该公钥验证Token。 添加 ServiceAccount 与 IAM 账号的映射规则,配置后,当前 ServiceAccount 拥有对应用户的 IAM 权限。 工作负载配置Token。 部署应用并配置ServiceAccount。 挂载对应ServiceAccount的Token。 验证获取的Token能否正常进行访问。 访问IAM接口获取IAM Token。 使用IAMToken 访问云服务。 图1 使用工作负载Identity流程
-
获取IAM Token 创建 ServiceAccount,此处 ServiceAccount 的名称需要与2时填写的 ServiceAccountName 保持一致。 apiVersion: v1 kind: ServiceAccount metadata: name: test_sa_name # 与配置身份转换规则处保持一致 如下所示,在工作负载中新增 ServiceAccount 以及 Volume 相关配置。 apiVersion: apps/v1 kind: Deployment metadata: name: nginx spec: replicas: 1 selector: matchLabels: app: nginx version: v1 template: metadata: labels: app: nginx version: v1 spec: containers: - name: container-1 image: nginx:latest volumeMounts - mountPath: "/var/run/secrets/tokens" # 将Kubernetes生成的ServiceAccountToken 挂载到 /var/run/secrets/tokens/token_path 文件内 name: token-volume imagePullSecrets: - name: default-secret serviceAccountName: test_sa_name # 上一步创建的ServiceAccount的名称 volumes: - name: token-volume projected: defaultMode: 420 sources: - serviceAccountToken: audience: ucs-cluster-identity # 此处取值必须为身份提供商的客户端ID expirationSeconds: 7200 # 过期时间 path: token_path # 路径名称,可自定义 创建完成后,登录到容器中获取 Token。 构造请求体数据,项目ID的获取请参见获取项目ID。 { "auth" : { "id_token" : { "id" : "eyJhbGciOiJSUzIXXXXX" // 上一步获得的 token 内容 }, "scope": { "project" : { "id" : "05495693df80d3c92fa1c01795c2be02", // 项目 ID "name" : "cn-north-7" } } } } 请求IAM接口以获取IAM Token,IAM的Endpoint信息请参见地区和终端节点。 curl -i --location --request POST 'https://{{iam endpoint}}/v3.0/OS-AUTH/id-token/tokens' --header 'X-Idp-Id: {{workload_identity}}' --header 'Content-Type: application/json' --data @token_body.json workload_identity为1中注册的身份提供商名称,此示例内为 ucs-cluster-identity。 token_body.json 为构造的请求体数据文件。 返回体内获取IAM Token,响应消息头中 X-Subject-Token 字段即为 IAM Token。
-
使用IAM Token访问云服务 本小节以请求LTS服务为例,介绍如何使用IAM Token访问云服务。 在使用IAM Token访问云服务前,应为用户组配置相应服务的权限。 请求LTS服务需要在用户组中加上 LTS FullAccess 权限,如图所示。 执行如下命令,调用对应服务接口。 curl --location --request GET 'https://ltsperform.cn-north-7.myhuaweicloud.com/v2/{{项目 ID}}/groups/{{日志组 ID}}/streams' \--header 'Content-Type: application/json;charset=utf-8' \--header 'X-Auth-Token: {{上一步获得的 IAM token}}' \--data-raw '' 日志组ID可在LTS服务内进行查询。 期望的返回结果如图所示
-
为什么需要Cilium Cilium是一种高性能、高可靠性的容器网络解决方案,它通过eBPF技术在Linux内核层面实现网络和安全通信。它支持多种传输层协议,例如TCP、UDP和HTTP,并提供了多种安全特性,例如应用层访问控制和服务网格支持。Cilium还支持Kubernetes网络策略,并提供了全局网络和服务发现功能,能够帮助管理员更好地管理和部署云原生应用和服务。 Cilium的eBPF 技术通过在Linux内核层面实时监控网络流量,实现了高效的安全数据包交换。该技术在网络功能虚拟化、容器网络和边缘计算等场景中都有广泛应用,能够帮助企业提升网络性能和安全性,为云原生应用提供更好的基础设施支持。 基本功能 为容器提供网络互通:Cilium通过为每个容器分配一个独特的IP地址来实现容器间的网络互通,同时支持多种网络协议。 具备网络安全检测能力:Cilium支持通过集成第三方的网络安全检测服务,如Snort等,来进行网络流量分析和检测。 自动进行 容器安全 策略管理:Cilium通过基于Kubernetes 的自定义资源定义(CRD)机制,为每个容器自动创建安全策略,保障容器的安全。 实现容器级别的负载均衡:Cilium支持实现容器级别的负载均衡,允许通过多种负载均衡算法来分配网络请求流量。 提供服务发现功能:Cilium支持借助基于Kubernetes的服务探测机制,自动发现容器内的服务,并将其注册到Kubernetes API中,以便于其他容器访问。
-
Cilium对接主机BGP 在页面提供的本地集群配置文件“cluster-[集群名称].yaml”中添加以下配置: CILIUM_BGP_ENABLE: true CILIUM_BGP_PEER_ADDRESS: 需要对接的交换机地址。 CILIUM_BGP_PEER_ASN: 需要对接的交换机BGP AS number(64512-65535)。 LOAD_BALANCER_CIDR:需要广播出去的负载均衡网段,可提供给metalLB等开源插件使用。 例图: 将需要对外暴露容器网络的节点IP,作为neighbor address(交换机邻居地址)配置在主机所在的BGP网络中,容器的ASN默认为65010。 Cilium的BGP能力是以节点粒度对外宣告节点容器路由,实现集群外节点服务直接访问集群内Pod。
-
Cilium underlay能力 在本地集群配置文件“cluster-[集群名称].yaml”中添加以下配置: CILIUM_NETWORK_MODE: underlay 例图: 模式优势: 此模式下,Cilium会将所有未发送到其他容器的数据包委托给Linux内核的路由子系统。这意味着数据包将被路由直接转发,就好像本地进程发出数据包一样,减少了数据包的封装和转换。因此,在大流量场景下,该模式存在一定性能优势。 该模式下自动配置ipv4-native-routing-cidr,Cilium会在Linux内核中自动启用IP转发。 模式依赖: 在underlay模式下,运行Cilium的主机的网络必须能够使用分配给Pod或其他工作负载的地址转发IP流量,需要关闭节点的源目的地址检查,并且节点安全组按需放通容器网段的端口及协议。
-
获取本地集群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:指定待导出KubeConfig的集群名。 -e, --eip:指定API server的eip。 -o, --output:指定KubeConfig导出文件名。
-
使用本地集群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。
-
用户规划 表9 用户规划 用户 用户组 用户ID 用户组ID 密码 用途 root root 0 0 - UCS本地集群安装时使用的默认用户,也可以指定其他用户来安装本地集群。安装用户要求满足如下条件: 规划的所有集群管理节点密码一致。 用户具有完全的root用户权限。 说明: 安装完成后用户可以自行修改该用户密码或限制该用户root权限。 paas paas 10000 10000 - UCS本地集群服务进程的运行用户、用户组,在安装过程中创建。该用户和用户组对应名称为paas:paas,用户ID和用户组ID对应为10000:10000,因此安装前需要保证用户名、用户组名、用户ID和用户组ID不被占用。若发生冲突,需提前删除对应的用户或者用户组。
-
外部依赖 表5 外部依赖项 依赖项 功能解释 DNS服务器 DNS服务器需要能够解析OBS、SWR、IAM、DNS等服务的 域名 ,这些服务的域名请参见地区及终端节点。 公网接入情况下,节点可自动识别默认DNS配置,需提前将DNS服务器上游设置为公网DNS,接下来无需再手动进行DNS服务器配置。 私网接入情况下,节点无法识别默认DNS配置,因此需提前配置VPCEP解析能力,详情请参考安装前准备。若您还未搭建DNS服务器,可参考DNS进行搭建。 apt源或yum源 确保有可用的apt源或yum源,因为在本地集群执行纳管节点时(纳管节点是指待添加到本地集群管理的服务器),部分安装组件如ntp等,需要从apt源或yum源中获取依赖包。 须知: apt源操作适用于操作系统为Ubuntu的节点,yum源操作适用于操作系统为HCE或Redhat。 NTP服务器 可选,用于保证集群各节点时间同步,如果使用,推荐用户提供外置NTP服务器。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格