山东做网站找哪家好中铁建设集团门户网站登录
山东做网站找哪家好,中铁建设集团门户网站登录,百度文库网页版登录入口,网站排名优化外包价钱前面文章已经演示过#xff0c;将我们的示例微服务程序DaprTest1部署到k8s上并运行。当时用的k8s是Docker for desktop 自带的k8s#xff0c;只要在Docker for desktop中启用就可以了。但是我发现#xff0c;启用了k8s后#xff0c;Docker for desktop会消耗大量的系统资源… 前面文章已经演示过将我们的示例微服务程序DaprTest1部署到k8s上并运行。当时用的k8s是Docker for desktop 自带的k8s只要在Docker for desktop中启用就可以了。但是我发现启用了k8s后Docker for desktop会消耗大量的系统资源导致系统变得很慢。据说windows 上的WSL 2 性能不错这次我尝试在WSL Linux上安装K8s并部署我们的微服务看看还会不会出现系统资源消耗过大的情况。 关于网络我用的是外企公司的VPN。关于系统我用的是Windows 11 1000.22000.168.01在WSL上安装k8s集群1.1 从微软商店安装“Windows Terminal”Windows Terminal用来连接管理WSL中的Linux Ubuntu。 1.2 在本地电脑安装“Lens”Lens用来连接管理k8s集群启动界面如下 1.3 启用Windows功能“虚拟机平台”启用虚拟机平台是安装WSL 2 的必要条件 1.4 从微软商店安装“Ubuntu”安装WSL兼容的Linux Ubuntu 安装完成后从开始菜单打开Ubuntu应用命令窗口提示用户输入用户和密码设置好后我们需要设置root用户的密码命令为sudo passwd root1.5安装Docker for desktop 并启用WSL集成为了更好的性能和程序开发方便微软不建议在 WSL Ubuntu 中直接安装Docker而是通过Docker for desktop与WSL 互操作的方式在Ubuntu中使用Docker。安装地址Docker Desktop for Mac and Windows | Docker 1.6 在Ubuntu 中安装Kind通过Windows terminal 连接 Ubuntu 通过su命令切换到root用户然后执行更新apt工具命令apt update apt upgrade -y 安装Kind最新版本需要依次执行如下命令# 下载 KinD 二进制文件
curl -Lo ./kind https://github.com/kubernetes-sigs/kind/releases/download/v0.11.1/kind-$(uname)-amd64# 标记为可执行文件chmod x ./kind# 移动到 PATH 目录下去mv ./kind /usr/local/bin/#查看kind版本kind version#输出kind v0.11.1 go1.16.4 linux/amd641.7在Ubuntu 中安装 Kubectl 工具本步骤可选因为我们也可以从本地电脑kubectl工具或者lens来管理k8s集群.安装步骤如下和Kind的安装步骤类似curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectlchmod x ./kubectlsudo mv ./kubectl /usr/local/bin/kubectlkubectl version1.8 在Ubuntu 中用Kind 创建K8s 集群首先创建k8s集群创建配置文件该集群包含一个控制面板节点和一个工作节点# 创建一个2节点集群的配置文件
cat EOF kind-3nodes.yamlapiVersion: kind.x-k8s.io/v1alpha4kind: Clusternodes:- role: control-planeextraPortMappings:- containerPort: 30000hostPort: 30000listenAddress: 0.0.0.0 # Optional, defaults to 0.0.0.0protocol: tcp # Optional, defaults to tcp- role: workerEOF注意文件中“extraPortMappings” 配置节是用来将Ubuntu上的k8s容器30000端口暴漏给localhostkind是通过容器来运行k8s 节点, 这样我们就可以通过localhost:30000访问k8s集群中的服务。然后根据配置文件创建k8s集群# 使用配置文件创建新的集群kind create cluster --name wslk8s --config ./kind-3nodes.yaml 创建完成后我们可用命令kubectl cluster-info 查看集群信息如果我们在Ubuntu上安装了Kubectl工具的话。1.9 用Lens和本地Kubectl 工具连接k8s集群在Ubuntu中打开k8s连接配置文件并拷贝文件内容。cat $HOME/.kube/config将文件内容拷贝到本地电脑的C:\Users\[用户名]/.kube/cofnig 文件。然后就可以在本地电脑用kubectl cluster-info 查看集群信息也可以打开Lens, 看到集群信息。 2 在k8s集群上部署微服务2.1 在本地电脑用Dapr cli 安装 Dapr 到K8s 集群因为我们的微服务示例程序是基于Dapr的我们也能够从本地电脑连接到k8s集群我们需要从本地电脑上通过Dapr Cli 安装Dapr 到 k8s集群。Dapr init -k2.2 在本地电脑从微服务项目生成镜像和以前一样我们从本地电脑的项目文件中生成镜像运行./build-docker-images.ps12.3 在Ubuntu 中用Kind将镜像加载到k8s集群因为Kind 是把K8s的node放到容器中运行导致k8s找不到我们自己生成的镜像错误ImagePullError我们需要通过Kind把我们的镜像加载到k8s集群。kind load docker-image dapr-test1/blazorweb:3.0 --name wslk8skind load docker-image dapr-test1/serviceapi1:3.0 --name wslk8s2.4 在本地电脑用Kubectl工具部署微服务在项目的Deploy 文件中运行 ./Deploy.ps1命令即可部署我们的微服务到K8s集群/容器运行后可通过http://localhost:30000访问我们的示例微服务。 查看任务管理器发现通过WSL运行k8s的系统资源消耗比以前用Docker for desktop少了系统运行也流畅了。3遗留待处理问题3.1Kind 部署K8s的 Nodeport问题因为Kind是将K8s节点放到容器中运行需要通过对localhost暴漏端口的方式来访问微服务微服务Nodeport配置的暴端口必须和k8s节点的暴漏端口一致才可以访问。但是如果我们的集群上有多个微服务系统怎么访问呢目前的想法是微服务通过Ingress的方式提供对外访问为每个微服务系统配置不同的域名。参考kind – Ingress (k8s.io) 和Kubernetes ingress same path multiple ports - Stack Overflow3.2 公共服务的访问问题。我们每个微服务系统都会用到redis,RabbitMQ和zipkin等没有必要每个微服务系统都配置这些基础服务容器来运行计划把这些基础服务以通过Docker容器暴漏localhost 端口的方式运行其它微服务系统通过定义Serivice 和Endpoints的方式来访问这些基础服务。参考mongodb - How to access hosts localhost from inside kubernetes cluster - Stack Overflow 需要测试用域名kubernetes.docker.internal 是否可以从k8s集群内部访问localhost上的容器暴漏端口。相关文章BlazorDaprK8s微服务之服务调用BlazorDaprK8s微服务之开发环境调试BlazorDaprK8s微服务之状态管理BlazorDaprK8s微服务之事件发布订阅浅析 Dapr 里的云计算设计模式Dapr——云原生开发的新思路一起学Dapr云原生开发
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91731.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!