云服务器内容精选

  • 纳管节点 在执行机上使用./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文件中存在密钥信息,请妥善保管。
  • 卸载节点 方法一: 在执行机上执行 ./ucs-ctl delete node -c [集群名称] -n [node ip1],[node ip2],… 使用-n指定具体IP,使用英文逗号分隔。 方法二: 在执行机执行 ./ucs-ctl delete node -c [集群名称] -m node.csv 使用-m指定纳管时使用的节点文件,可以一次性卸载所有节点。 如果命令执行失败,请参考如何手动清理本地集群节点?处理。
  • 为什么需要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。