您的位置:首页 > 健康 > 美食 > 电商设计可以自学吗_外贸邦官网_百度网盘pc网页版入口_交换链接营销案例

电商设计可以自学吗_外贸邦官网_百度网盘pc网页版入口_交换链接营销案例

2024/10/10 0:04:32 来源:https://blog.csdn.net/weixin_46510209/article/details/142718944  浏览:    关键词:电商设计可以自学吗_外贸邦官网_百度网盘pc网页版入口_交换链接营销案例
电商设计可以自学吗_外贸邦官网_百度网盘pc网页版入口_交换链接营销案例

本篇博客只讲一件事情:

        1、如果使用Cilium的能力将两个k8s集群逻辑上成1个集群并且使得应用可以全局负载均衡。

一、Cilium-Cluster Mesh

        1、就是可以把多个k8s集群逻辑上为1个大集群并且上面的业务可以负载均衡。

        2、可以在集群之间跑网络策略。

二、Cluster Mesh-使用限制

        1、集群必须统一路由的模式,如果是物理网络那就都物理网络,如果是隧道那就都是隧道网络(协议和端口号也要一致避免Bug)。        

        2、每个集群的Cluster pool(ipam) 就是每个集群的大子网不能一致。

        3、每个集群节点的Internal IP必须网络可达。其实就是集群的node 内部管理IP。规划在一个子网就行。

        4、node 内部管理IP需要互通,开放必要的防火墙规则。

Setting up Cluster Mesh — Cilium 1.16.2 documentationicon-default.png?t=O83Ahttps://docs.cilium.io/en/stable/network/clustermesh/clustermesh/        *上面为详细的限制。

三、步骤简述

        1、两个安装了cilium的k8s集群(上一篇博客有详细信息)

        2、开启Cluster Mesh

        3、使用Cluster Mesh-apiserver -使用 nodeport类型的svc 打通逻辑集群。

        4、部署Demo应用,分别部署在两个集群,一样的pod,一样的svc,就是区分名称的configmap配置文件不一样(如果一样了,那curl 之后的回显就都一样了,你怎么知道curl 相应的是谁)。

        5、将Demo应用全局化,进行测试,期望效果:curl回显 rke-top 或者 rke-sec 。(分别对于两个集群的pod)

        6、运行策勒本地不共享。

        7、运行LB策略本地优先。

四、测试流程

        1、两个安装了cilium的k8s集群

Cilium-实战系列-(一)Cilium-安装与部署-CSDN博客文章浏览阅读34次。前言:1、首先说一下和为 “一文一武”,一个注重点解,一个注重实际操作。Cilium + ebpf 系列文章-什么是ebpf?(一)_clium ebpf-CSDN博客文章浏览阅读419次。一、We Create a container be a Server.二、We Create a container be a Client.三、Them link at a Bridge.四、 Do test.一、Test-tools。https://blog.csdn.net/weixin_46510209/article/details/142703214?spm=1001.2014.3001.5501*(上一篇博客有详细信息)

        *集群1

        **集群2

        2、 开启Cluster Mesh

                1、export 集群名称

#集群1 
export CLUSTER1=rke-top#集群2
export CLUSTER1=rke-sec

                2、更新agent配置

cilium install --set cluster.name=$CLUSTER1 --set cluster.id=1 --context $CLUSTER1
cilium install --set cluster.name=$CLUSTER2 --set cluster.id=2 --context $CLUSTER2

                3、验证配置

cilium config view | grep cluster-idcilium config view | grep cluster-name

 

 

        4、启用Cluster-mesh

#集群A
cilium clustermesh enable --service-type NodePort --context $CLUSTER1
#集群B
cilium clustermesh enable --service-type NodePort --context $CLUSTER2

*如果你有全局的LB,设置全局的LB就可以了。 

*如果集群上下文名称不对,

#列出当前的 contexts:
kubectl config get-contexts#使用 kubectl config rename-context 命令重命名 context。例如,将 old-context-name 重命名为 new-context-name:kubectl config rename-context old-context-name new-context-name#验证修改是否成功:kubectl config get-contexts

  

*两个集群都会创建clustermesh-apiserver。一个在集群之前上的管理平面。

        5、 Cilium-验证-Cluster-mesh

cilium clustermesh status --context $CLUSTER1cilium clustermesh status --context $CLUSTER2

 

        6、打通逻辑集群

cilium clustermesh connect --context $CLUSTER1 --destination-context $CLUSTER2

*在“全局”终端上单向完成即可。 

*执行这条命令的终端需要可以拥有访问两个集群的use-text.下篇这篇我写的博客可以帮助你完成。

Kubernetes-使用不同主机终端访问k8s 集群。-CSDN博客文章浏览阅读61次。通常,`kubeconfig` 文件位于用户主目录下的 `.kube` 目录中,文件名为 `config`。打开 `kubeconfig` 文件,找到 `clusters`、`users` 和 `contexts` 部分。要获取 Kubernetes 集群的 CA 证书、客户端证书和客户端密钥,通常需要访问集群的配置文件(如 `kubeconfig` 文件)。要在 `kubectl` 中添加一个新的 context,可以使用 `kubectl config set-context` 命令。https://blog.csdn.net/weixin_46510209/article/details/142720273?spm=1001.2014.3001.5501 

        7、通过Cilium验证

cilium clustermesh status --context $CLUSTER1 --wait

*在01集群上执行可以看到 rke-sec集群。

五、Demo-App

        1、DemoApp-简单介绍

我搞了一个非常简单的web应用,访问/hello的路径返回:“Hello, Kubernetes from rke-top!”

like this:

因为每个电脑的CPU架构不一致,为了避免因为base image编译问题,我放在Github仓库,地址如下。

https://github.com/kodyssss/my-go-projecticon-default.png?t=O83Ahttps://github.com/kodyssss/my-go-project

**busybox是为了方便调试测试。

*执行dockerfile打包。

docker build -t cilium_go:v1 .

*然后进入/k8s部署即可,按需修改configmap.会影响curl返回的显示。

kubectl apply -f ./

        2、DemoApp-部署

                1、两个集群都要部署。

                2、本地测试

kubectl exec -it pod/busybox-debug-7b9495dc89-ptmk4 -n  ciliumgo -- /bin/sh

 **两个集群都要测试。

*A集群用cluster-Ip 

 

*B集群用DNS

六、 部署全局Service

        1、两个集群的svc添加注解

  annotations:
    service.cilium.io/global: "true"

apiVersion: v1
kind: Service
metadata:name: cilium-goannotations:service.cilium.io/global: "true"
spec:selector:app: cilium-goports:- protocol: TCPport: 80targetPort: 8080

        2、 在集群1进行测试。

**可以看到在集群1 进行wget -qO- cilium-go/hello,返回的是两个集群的后端pod的响应。

        **到这里就已经实现了全局的LB。

七、特殊注解

#打了注释的集群的SVC不共享自己的pod。
service.cilium.io/shared: "false"
#打了注释的集群的SVC本地优先。
service.cilium.io/affinity: "local"

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com