高端母婴网站模板网络营销渠道

news/2025/9/29 18:07:08/文章来源:
高端母婴网站模板,网络营销渠道,手机网站开源模板,网站ui设计学的是什么云原生专栏大纲 文章目录 准备工作项目结构介绍配置安全测试ConfigMapSecret使用Secret中数据的方式Deployment使用Secret配置Secret加密 kustomize部署清单ConfigMap改造SecretSealedSecretDeployment改造Serviceistio相关资源DestinationRuleGatewayVirtualServiceServiceAc…云原生专栏大纲 文章目录 准备工作项目结构介绍配置安全测试ConfigMapSecret使用Secret中数据的方式Deployment使用Secret配置Secret加密 kustomize部署清单ConfigMap改造SecretSealedSecretDeployment改造Serviceistio相关资源DestinationRuleGatewayVirtualServiceServiceAccount kustomize-bookinfo-appsrootapp.yamlbookinfo-productpage.yamlbookinfo-gateway.yamlbookinfo-details.yamlbookinfo-reviews-v1.yamlbookinfo-reviews-v2.yamlbookinfo-ratings.yaml 通过argocd一键部署bookinfo在argocd中创建app查看部署情况查看istio资源查看项目日志删除Argocd部署删除k8s中部署资源访问测试 Istio流量加密回顾ingress入口流量加密istio-gateway暴露服务istio-gateway配置https 通过gitops部署项目 准备工作 安装gitlab将https://gitee.com/zhouwei1996/spring-cloud-bookinfo.git迁移至gitlabgitlab中创建全局变量如镜像仓库账号密码保证gitlab-ci.yaml中内容安全共享runner创建获取token如下glrt-wfzAecJmszsZb3GorS8J 安装gitlab-runner参考22.云原生之GitLab CICD实战及解析 #以下两个在gitlab页面获取 gitlabUrl: http://192.168.31.3:83/ runnerRegistrationToken: glrt-wfzAecJmszsZb3GorS8J #gitlab-runner注册用到的tockenconcurrent: 10 #最大作业并发数 checkInterval: 30 #新作业检查间隔 tags: shared #runner的标签 #rbac权限打开 rbac:create: trueresources: [pods, pods/exec, secrets,configmaps]verbs: [get, list, watch, create, patch, delete,update]修改ConfigMap下config.template.toml配置 [[runners]]builds_dir /builds[runners.kubernetes]namespace baseimage alpinepull_policy if-not-present # 拉取镜像策略本地有是有本地无需拉取[[runners.kubernetes.volumes.pvc]] # 挂载数据卷持久化name k8s-running-pod-datamount_path /builds[[runners.kubernetes.volumes.host_path]] # 使用docker命令需要配置引擎name dockermount_path /var/run/docker.sockhost_path /var/run/docker.sock[[runners.kubernetes.host_aliases]] # 用于解析内网中的harbor域名ip 192.168.31.11hostnames [harbor域名][[runners.kubernetes.host_aliases]] # 用于解析k8s集群中Kubernetes API Server 的地址ip 192.168.31.21 # k8s集群master iphostnames [lb.kubesphere.local]安装harbor此处小编使用阿里云镜像仓库安装sealed-secrets参考24.云原生ArgoCD高级之数据加密seale sealed | 使用 Sealed Secrets 在 Kubernetes 中管理密钥安全开启istio自动注入参考29.云原生KubeSphere服务网格实战之Istio安装配置 项目结构介绍 整个微服务应用中包含了5个组件 productpage 是一个由 react 开发的前端组件 gateway 是一个由 spring-cloud-gateway 提供的 API 网关服务 details 是一个 spring-cloud 微服务提供了书籍详情 API reviews提供了基础的书籍评论信息 review-v2 在 review-v1 的基础之上额外的提供了评分数据依赖 ratings 服务 ratings 是一个 golang 开发的微服务组件 配置安全测试 改造Springcloud-bookinfo中Gateway网关将reviews权重加密从Secret中获取权重值进行测试 ConfigMap ConfigMap 主要用于存储非敏感的配置数据application.yml中经常会配置账号密码这些此时资源清单中这些内容就不能以明文暴露到gitlab中 server:port: ${SERVER_PORT:8080} spring:application:name: gatewaycloud:gateway:routes:- id: ratingsuri: lb://ratingspredicates:- Path/api/v1/reviews/*/ratings- id: detailsuri: lb://detailspredicates:- Path/api/v1/products/*- id: reviews-v1uri: lb://reviews-v1predicates:- Path/api/v1/products/*/reviews- Weightreviews, ${reviews-v1:0}- id: reviews-v2uri: lb://reviews-v2predicates:- Path/api/v1/products/*/reviews- Weightreviews, ${reviews-v2:100}management:endpoints:web:exposure:include: *此时访问页面一直是红星 Secret Secret 用于存储敏感数据例如密码、API 密钥等。 kind: Secret apiVersion: v1 metadata:name: gatewaynamespace: spring-cloudannotations:kubesphere.io/creator: admin data:reviews-v1: NTAreviews-v2: NTA type: Opaque明文数据如下 使用Secret中数据的方式 通过环境变量传递Secret中的数据 在 Pod 的配置文件中将 Secret 中的数据通过环境变量传递给容器。你可以在 Pod 的 spec.containers.env 部分中设置环境变量将 Secret 中的数据作为值传递给容器。示例 env:- name: server.portvalueFrom:secretKeyRef:name: detailskey: server-port通过卷挂载Secret中的数据 你还可以将 Secret 中的数据作为文件挂载到 Pod 中。在 Pod 的配置文件中可以通过 volumes 和 volumeMounts 将 Secret 中的数据挂载到容器中。示例 volumes:- name: secret-volumesecret:secretName: my-secret containers:volumeMounts:- name: secret-volumemountPath: /etc/my-app这样你可以在 ConfigMap 中引用这些环境变量或挂载的文件间接地使用 Secret 中的数据。记住Secret 中的数据是加密存储的应该小心处理以确保安全性。 Deployment使用Secret配置 env:- name: reviews-v1valueFrom:secretKeyRef:name: gatewaykey: reviews-v1- name: reviews-v2valueFrom:secretKeyRef:name: gatewaykey: reviews-v2访问页面测试多次访问出现v1和v2版本页面 Secret加密 创建bookinfo-gateway-secret.yaml kind: Secret apiVersion: v1 metadata:name: gatewaynamespace: spring-cloudannotations:kubesphere.io/creator: admin data:reviews-v1: MAreviews-v2: MTAw type: Opaque加密bookinfo-gateway-secret.yaml # 备份公钥 kubeseal --fetch-cert public-cert.pemkubeseal --formatyaml --cert ./public-cert-0.26.0.pem bookinfo-gateway-secret.yaml bookinfo-gateway-secret-sealed.yaml查看bookinfo-gateway-secret-sealed.yaml apiVersion: bitnami.com/v1alpha1 kind: SealedSecret metadata:creationTimestamp: nullname: gatewaynamespace: spring-cloud spec:encryptedData:reviews-v1: AgCQ1PwFXeAitYGhDd5PzVFZYzsKsGUEqhK/mSQk/3Fhxutz7lX8fZReEAtCPGpOObdHvTwPMeT9eCD3KrKulUgRfLU0ViJw5oU8ESXfoHOIcmAFi58ChtW3vA6Ww6bKoPmdtbKH8OVkLou8Rw/BG3NH3NqSeBvLE7ITv2ZCX2eaH0pOARWG8vQfw65eAnwuYb7LyRoizlAO7eXdJ1V4r7mhqvYGIPMISFw7h3P229ZRYoXwZpOdPyfA3fb6eKQU2JBXUNWpIT9iNImEt8j6ZGbH/Q49CtvDRb27Yw13OzAf0QCy88ZbQr4ZixhWi7qUHv3Lhfso/Ps8/V6svzp2Ecfsb/2B7cpBvTLeIH3s6IEhm7OomnnyQT5wEenBchflsf4/PWd6AuJBm94rtquy5QmPplpy4mig3C68anSYe2fARgK4CPBgczqeVjUJVmOd0HuNjsGXnssC5j8C10y92pXNvu9f7txIANEj5UCulovIUZslqof3wMs7OCGsDpJTXVHCL6fF4N0EAHTgjHJgaZQIvjPm1CGmG1igK6wM4QyGmfSGtfc9mn68v1xVKFqAE3eWJsoWuMOaZ09HGwNfS8oMN1DUUjTZfZbR7iJgtAkUcrwoSKfxe4kKrXAa3RDff/9WK/WzQl5/beLNOT5XwcC8lXK43xcILH1MNqrP5zYdverIH3DOreviews-v2: AgBtPBz/ANesC/HP7UVhtJbZ2g5oyI08RWck3tQ78pCJzF1w7r9s4p1YWB3zbZxgLrjCnl6IVlaB5UBwsYG1EgkT/g5e0Nfxy0aUigcKu87Qvaj1zmtn3rzP/xZ1RNmcKfK8MRiU4NTj8OwhyjKYe/Qy/pPX7D53880wTdZsuhLFTyF5egZCnRdJekq297hwGHB7cp4pCbfxoZmTjO5b8jim2YGmc1hEMFKhqObb1AyqMMTJ1G3kF2dmVenlUjTDRGAlndZLRO9HbeGjBPtjhZuLO4sOLPp6Nd0Cjzzkxe9CylzsTT4SynKN6cgpWcYRweYnelMnVDBoa58X47quMc6LTvo7UmYobfIk//NT34r6qDZ4MR160onHxYUxtGyI3k6ZQJn2wqdDIJEWdMaYr/DYqG7pgM4XGickNtgKS8o1UFh7fip71a5HGy0q/dPb9URtbKzzABcd91SsVnxK9QYFDFqsUblmpDkCcWm7hMSClAvE8wvC5s1bq6V6QO21coXMqoulU3DVujh0zJE8VSuxIbKvzeVOs0peCNSRpxfF53DCf5JSawseKFkwNn2E47zPHSsHZ2sxQy9Wm7lrfIIsc26oyFhwBhDR416bZ7mRNyJbvjSKWN2iUtF7cLrWMU2LFszroQMbwkBlciWA9W9pgTrV3TvZi10yTq199KxShuZ09rcEGsoXWtqQtemplate:metadata:annotations:kubesphere.io/creator: admincreationTimestamp: nullname: gatewaynamespace: spring-cloudtype: Opaque删除bookinfo-gateway-secret.yaml部署 部署bookinfo-gateway-secret-sealed.yaml kubectl apply -f bookinfo-gateway-secret-sealed.yaml执行上述命令会创建原始的secret生成如下 重新部署Gateway 访问页面测试 此时无论怎么访问都是显示红色星 kustomize部署清单 https://gitee.com/zhouwei1996/kustomizekustomize-bookinfo-reviews通过Istio实现金丝雀部署结构中资源与其他项目有区别下述以reviews项目为例其他项目类似可编写为kustomize资源清单通过app of apps模式一键部署。 ├─kustomize父kustomize │ ├─kustomize-bookinfo-reviewsbookinfo-reviews部署清单 │ ├─├─base公用资源 │ ├─├─├─kustomization.yaml组织资源 │ ├─├─├─svc.yaml │ ├─├─├─dr.yaml │ ├─├─├─sa.yaml │ ├─├─├─vs.yaml │ ├─├─buildcicd过程生成汇总资源 │ ├─├─├─build.yaml │ ├─├─├─kustomization.yaml │ ├─├─overlay补丁路径 │ ├─├─├─v1 │ ├─├─├─configmap.yaml存放springboot的application.yml配置 │ ├─├─├─deployment.yaml │ ├─├─├─kustomization.yaml │ ├─├─├─v2 │ ├─├─├─configmap.yaml存放springboot的application.yml配置 │ ├─├─├─deployment.yaml │ ├─├─├─kustomization.yaml ------------------------------------ │ ├─kustomize-bookinfo-productpagebookinfo-productpage部署清单 │ ├─├─base公用资源 │ ├─├─├─kustomization.yaml组织资源 │ ├─├─├─istio-gateway.yaml │ ├─├─├─svc.yaml │ ├─├─├─dr.yaml │ ├─├─├─sa.yaml │ ├─├─├─vs.yaml │ ├─├─├─deployment.yaml │ ├─├─buildcicd过程生成汇总资源 │ ├─├─├─build.yaml │ ├─├─├─kustomization.yaml │ ├─├─overlay补丁路径 │ ├─├─├─dev │ ├─├─├─kustomization.yaml ---------------------------------------- │ ├─kustomize-bookinfo-gatewaybookinfo-productpage部署清单 │ ├─├─base公用资源 │ ├─├─├─kustomization.yaml组织资源 │ ├─├─├─configmap.yaml │ ├─├─├─svc.yaml │ ├─├─├─dr.yaml │ ├─├─├─sa.yaml │ ├─├─├─vs.yaml │ ├─├─├─deployment.yaml │ ├─├─buildcicd过程生成汇总资源 │ ├─├─├─build.yaml │ ├─├─├─kustomization.yaml │ ├─├─overlay补丁路径 │ ├─├─├─dev │ ├─├─├─kustomization.yaml --------------下述结构类似查看gitee--------------------- |--kustomize-bookinfo-admin |--kustomize-bookinfo-ratings |--kustomize-bookinfo-detailsConfigMap改造 假设配置中ratings下所有内容为需加密数据改造如下 kind: ConfigMap apiVersion: v1 metadata:name: reviewsnamespace: spring-cloudannotations:kubesphere.io/creator: admin data:application.yml: |-server:port: ${SERVER_PORT:8080}spring:application:name: reviewsratings:enabled: ${ratings_enabled:false}server-addr: ${ratings_server_addr:http://ratings}color: ${ratings_color:red}management:endpoints:web:exposure:include: *Secret bookinfo-reviews-secret.yaml kind: Secret apiVersion: v1 metadata:name: reviewsnamespace: spring-cloudannotations:kubesphere.io/creator: admin data:ratings_color: cmVkratings_enabled: dHJ1ZQratings_server_addr: aHR0cDovL3JhdGluZ3M type: OpaqueSealedSecret 加密Secret kubeseal --formatyaml --cert ./public-cert-0.26.0.pem bookinfo-reviews-secret.yaml bookinfo-reviews-secret-sealed.yaml加密后SealedSecret替换部署清单中Secret apiVersion: bitnami.com/v1alpha1 kind: SealedSecret metadata:creationTimestamp: nullname: reviewsnamespace: spring-cloud spec:encryptedData:ratings_color: AgCfoIXX43E/KCSqtmC2HPXqUky2tOMs5ZrOesM7c19eeGSLSZUJiZ58mv407couvVTAKy0f5HazHeGOvQzW5QmMQtFM38yrKrNrwInuWal8XGMRUo/pwbxlPQ2K5X8L9g/jJg7eykaXHoYA/n0r1XRq0ZgN3M8IuhZqrABhtT7oxbyQB2w2BCOdfCpnogblgfZQkgEiYoBqfmMH4SZUz//fi3EKekIItBq94ZvjpaS/wG1DE7suhsYp4gKRUwcJBY9D6qWJc4LBXwOGKfKI6Lg5cKOs6UYi0qAUPeU0fUzpp3uyFia2ghWuXHUhe2E4zwEFbMJ/CFiQO76bHHblo4aLWi0SQHLVDR6h0jtNTjRkIkxMwFlxji2UqHa5J6giCJwMpTx44UHicQ5RPbwbVCtpog/UvjTejszxRZDU0SWeIlH2gHRtFdIIl8uKy2/SFhjE6i/0NN2F1hXGHfCGE7rLZXGXUxNRvvMa/IPHKahn/HfunURXODo/kwdqoEuaoRnEjk4LD1oWdhUZxume/jC2riTMTTcQBEEyNWJIwdJzooACj7Z0Qn5AG0Gs/A23yea6WCL5ZCn0b0k8KzHQHZRcIPWddZStYaqO5l2B4F8rblL7XwpDk9lXXbPgktKlou19HMcUmZu3Vuu7DNuehrAr0K5bUR8qiillfOLbO5RFmZsr7rOSAe4bhGCE2Uratings_enabled: AgBsOa0HGRim/KArc1WZcHOB6pouyq4inkfDXUpKkOkZXhhJsk97qr/dTBQCae7eymyUPPWpQhJLjcXFzE/f0lk0jRklZvUV8tdYUE6njMKmDHFf/tpe4buB4nhcKOXsjzgBheuElXqObNmXaDxnHOdyDJJarG1eL3v/cbcZmYPEmZQ4fzCSvLGQuN37ZKljjM5Mq5S6UhL8VK/2Niy7weQZkVg5B/4P5L8I5n77//fUR5SNP79PxaeiY5dFgHU1CiITTuC5igBTyqTFUrStZlo/pfbTtBDuAa//I1hgQhFF3l0RbHdySv1nrgbL6aWcJojpxIw3JJe4aEv/DGoF7jGRMsFPrSHk18DtO0g0pLJ9SRxLCX8nNHDCynVFZfF6PIQx56kEFzv4I6zQEichstkTZq7rFPqjK7ROy8ctmJQHyVx3jbW4kBqAzwT5UhbVk0Kk/uwXjthgbSA6EQoN5PNhcgtcU4YRxXgsmiy7r73qa5monqEBITD9icAVE2Ni8qtKDwUq6j8L1qsSe2BM74JEeKmRQUTJYj2uzZjUCtS077BYAEQ6mts2eNOEIskHaDK09YwnZHThQ78Sslqv52scrHM65AT7UV1GVG/v010z9AWX8c0bRfObbFtYkxwy3l9GTWsyUw3ShJrGGY35jROsKBtlNdIg4Y6AOqSRyQ7Hksz9CbkWA2Qaejqratings_server_addr: AgBpinPNNUcEwEQqAKnMZKrGLDr7f3RFJZTtDxJcjPX5/nWJ2W4Wo2OKu/7Cj9qp7LKddEELPpuXZP5BfFfjHJrq/QOUAIQYxQnwof/rem6lWMsbxN3GTzsVakBwW1zi9oLAbpWjB8mblFnskbtRFF7r7jAFX7UFi5Ad6WyF0Bxitys9Jb64trjhhDeb4yzV61raLjqs3dhU/ObFPHmu6XIb0I4EUEy2IHPfWkL3gIn2rEpLzX71Tp1WfOjHLPFuOK81jaqgVQOtempQ8USsZQMJ2K4Lft9Sm2XoUfYjDCl56RnGYqtUKYQfDRr/YV5wFhOt15VBO/M0xsaYTYFKoyUw8SS85slkPe5nIyoRe5MdCjsWlQsVWS/nCo3ZCwPzEzsPMDGf0k8mNg2POgRFARr8iFy4Zp1uTxhy2h1ohw9TRDkD6U/gyjETCXdlRGRC8UFuVOHXz4H8aXMMmPeIlCZ3t/6HU4xFc9TOghZQQqxgEtlQU8aBNJKmHFUqIdtG01OdZ39aYSK0kGUqdpGh8UdE/JXa4aXV0u5EWUt5gcPg8sAjstyWeozr1cg/26KvKj3JfcGflmMIg0CWZxc/Rm1acuM4LuCFKgkGPg5dWuTo3ZbXVz4d8WZxRpXgBsd6VGCCDDOfFPvuwpsOmC7yMVsQo4mbiP3gBqfpl8zP7PbART/5puvBODGBMGUYNXvTyTVst1zQlQtemplate:metadata:annotations:kubesphere.io/creator: admincreationTimestamp: nullname: reviewsnamespace: spring-cloudtype: Opaque Deployment改造 apiVersion: apps/v1 kind: Deployment metadata:name: reviewslabels:app: reviewsversion: v1 spec:replicas: 1revisionHistoryLimit: 3selector:matchLabels:app: reviewsversion: v1template:metadata:labels:app: reviewsversion: v1spec:containers:- image: registry.cn-hangzhou.aliyuncs.com/yxymzw/reviews:latestname: reviewsports:- containerPort: 8080env:# 将secret加密配置引入- name: ratings_enabledvalueFrom:secretKeyRef:name: reviewskey: ratings_enabled - name: ratings_server_addrvalueFrom:secretKeyRef:name: reviewskey: ratings_server_addr- name: ratings_colorvalueFrom:secretKeyRef:name: reviewskey: ratings_colorService svc.yaml apiVersion: v1 kind: Service metadata: name: reviewslabels:app: reviewsservice: reviews spec: ports: - port: 80 targetPort: 8080selector: app: reviewsistio相关资源 DestinationRule dr.yaml apiVersion: networking.istio.io/v1alpha3 kind: DestinationRule metadata:name: reviews spec:host: reviewssubsets:- name: v1labels:version: v1Gateway istio-gateway.yaml流量入口建议放在bookinfo-productpage项目中或者通过ArgoCD的app of apps放在顶级app中 apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata:# 指定了这个 Gateway 的名称name: kustomize-bookinfo-gateway spec:# 指定了这个 Gateway 的目标选择器为 istio: ingressgateway表示这个网关将指向 Istio 中的 Ingress Gatewayselector:istio: ingressgatewayservers: # 定义了网关监听的端口信息- port:number: 99name: httpprotocol: HTTPhosts:- *该资源会与istio-ingressgateway绑定 VirtualService vs.yaml apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata:name: reviews spec:hosts:- reviewshttp: # 定义了虚拟服务的 HTTP 路由规则- route: # 定义了路由规则指定了流量的目的地- destination: # 指定了路由的目的地即将流量发送到的服务host: reviews # 指定了目标服务的主机为 reviewssubset: v1 # 指定了要发送流量到的服务的子集为 v1这表示将流量路由到 reviews 服务的 v1 版本ServiceAccount sa.yaml apiVersion: v1 kind: ServiceAccount metadata:name: bookinfo-reviewslabels:account: reviews在 Istio 中ServiceAccount 用于定义服务在 Istio 网格中的身份。Istio 构建在 Kubernetes 上并扩展了 Kubernetes 的功能包括对服务身份和访问控制的增强支持。使用 ServiceAccount 可以为服务提供以下几个重要用途 身份验证ServiceAccount 可以用于验证服务的身份。在 Istio 中每个服务都有一个关联的 ServiceAccount可以使用该 ServiceAccount 来验证服务的身份确保只有经过身份验证的服务才能相互通信。授权和访问控制通过 ServiceAccount可以为服务定义访问控制策略。在 Istio 中可以使用 ServiceAccount 来定义哪些服务可以与其他服务通信以及允许的通信方式和权限级别。安全策略ServiceAccount 可以与 Istio 的安全功能结合使用如基于角色的访问控制RBAC和网络策略以实现微服务之间的安全通信。通过为每个服务分配特定的 ServiceAccount并为这些 ServiceAccount 配置适当的权限可以确保服务之间的通信是安全的。跟踪和监控使用 ServiceAccount 可以帮助跟踪和监控服务在 Istio 网格中的活动。通过为每个服务分配独特的 ServiceAccount可以更容易地跟踪服务的活动、生成日志和监控指标。 总的来说ServiceAccount 在 Istio 中扮演着关键的角色用于定义和管理服务在 Istio 网格中的身份和访问权限从而确保服务之间的通信是安全、可控和可管理的。 kustomize-bookinfo-apps 通过该项目可以一键部署bookinfohttps://gitee.com/zhouwei1996/kustomize kustomize-bookinfo-apps |--root-app|--rootapp.yaml # 指定apps位置 |--apps # 指定各个项目位置|--bookinfo-productpage.yaml|--bookinfo-gateway.yaml|--bookinfo-details.yaml|--bookinfo-reviews.yaml|--bookinfo-ratings.yaml如何编写Application部署一个测试Application查看部署后生成的Application资源yaml kubectl get app -n argocd kubectl get app application -n argocd -o yamlrootapp.yaml apiVersion: argoproj.io/v1alpha1 # Application 资源用于定义应用程序的部署配置 kind: Application metadata:name: root-applicationnamespace: argocd spec:# 指定了应用程序所属的项目为 defaultproject: default# 指定了应用程序的源码信息source:repoURL: https://gitee.com/zhouwei1996/kustomize.git# 指定了要部署的代码版本为 HEADtargetRevision: HEAD# 指定了部署时的目录配置path: ./kustomize-bookinfo-apps/appsdirectory:# 指定了不递归处理目录recurse: false# 指定了应用程序的部署目的地destination:server: https://kubernetes.default.svc# 指定了部署到的命名空间为 defaultnamespace: defaulttargetRevision: HEAD 在软件开发中targetRevision: HEAD 表示在版本控制系统如 Git中使用最新的提交作为部署的目标版本。在 Git 中HEAD 是指向当前所在分支最新提交的指针。 具体来说当在部署流程中指定 targetRevision: HEAD 时系统会将部署目标设置为当前所在分支的最新提交。这意味着每次部署时都会使用当前分支的最新代码版本确保部署的是最新的代码更改。 使用 targetRevision: HEAD 可以确保部署的应用程序始终是基于最新的代码提交构建的有助于保持部署的应用程序与代码仓库的同步并确保部署的应用程序包含了最新的功能和修复。 bookinfo-productpage.yaml apiVersion: argoproj.io/v1alpha1 kind: Application metadata:# 指定了 Application 资源的名称name: bookinfo-ratings# 指定了资源所在的命名空间为 argocdnamespace: argocd spec:# 指定了应用程序的部署目的地destination:# 指定了部署到的命名空间namespace: spring-cloud# 指定了部署到的 Kubernetes 集群的 API 服务器地址server: https://kubernetes.default.svc# 指定了应用程序所属的项目为 defaultproject: defaultsource:# 指定了应用程序的路径path: kustomize-bookinfo-ratings# 指定了应用程序的源代码存储库的 URLrepoURL: https://gitee.com/zhouwei1996/kustomize.git# 指定了要部署的代码版本为 main (分支名称)targetRevision: HEAD# 指定了同步策略syncPolicy:# 指定了应用程序的同步策略为自动化以便 Argo CD 可以自动监视并同步应用程序的状态。automated: {} syncOptions: # 指定了同步选项# 启用了创建命名空间的选项即在部署应用程序时会创建指定的命名空间- CreateNamespacetruebookinfo-gateway.yaml apiVersion: argoproj.io/v1alpha1 kind: Application metadata:name: bookinfo-gatewaynamespace: argocd spec:destination:namespace: spring-cloudserver: https://kubernetes.default.svcproject: defaultsource:path: kustomize-bookinfo-gateway/baserepoURL: https://gitee.com/zhouwei1996/kustomize.gittargetRevision: HEADsyncPolicy:automated: {}syncOptions:- CreateNamespacetruebookinfo-details.yaml apiVersion: argoproj.io/v1alpha1 kind: Application metadata:name: bookinfo-detailsnamespace: argocd spec:destination:namespace: spring-cloudserver: https://kubernetes.default.svcproject: defaultsource:path: kustomize-bookinfo-details/baserepoURL: https://gitee.com/zhouwei1996/kustomize.gittargetRevision: HEADsyncPolicy:automated: {}syncOptions:- CreateNamespacetruebookinfo-reviews-v1.yaml apiVersion: argoproj.io/v1alpha1 kind: Application metadata:name: bookinfo-reviewsnamespace: argocd spec:destination:namespace: spring-cloudserver: https://kubernetes.default.svcproject: defaultsource:path: kustomize-bookinfo-reviews/overlay/v1repoURL: https://gitee.com/zhouwei1996/kustomize.gittargetRevision: HEADsyncPolicy:automated: {}syncOptions:- CreateNamespacetruebookinfo-reviews-v2.yaml apiVersion: argoproj.io/v1alpha1 kind: Application metadata:name: bookinfo-reviewsnamespace: argocd spec:destination:namespace: spring-cloudserver: https://kubernetes.default.svcproject: defaultsource:path: kustomize-bookinfo-reviews/overlay/v2repoURL: https://gitee.com/zhouwei1996/kustomize.gittargetRevision: HEADsyncPolicy:automated: {}syncOptions:- CreateNamespacetruebookinfo-ratings.yaml apiVersion: argoproj.io/v1alpha1 kind: Application metadata:name: bookinfo-ratingsnamespace: argocd spec:destination:namespace: spring-cloudserver: https://kubernetes.default.svcproject: defaultsource:path: kustomize-bookinfo-ratings/baserepoURL: https://gitee.com/zhouwei1996/kustomize.gittargetRevision: HEADsyncPolicy:automated: {}syncOptions:- CreateNamespacetrue通过argocd一键部署bookinfo 在argocd中创建app kubesphere中安装devops组件参考16.云原生之kubesphere组件安装卸载暴露argocd参考19.云原生CICD之ArgoCD入门CD过程实战登录argocd配置仓库地址 创建应用参考23.云原生之ArgoCD CICD实战 查看部署情况 查看ArgoCD部署情况 查看kubesphere部署情况 注意通过上述观察发现我们部署的svc资源带上了前缀跟我们VirtualService中使用的hosts不一致这儿需要修改 查看istio资源是否也添加了前缀 # kubectl get gw -A NAMESPACE NAME AGE bookinfo bookinfo-gateway 7d2h spring-cloud devops-web-gateway 6m10s spring-cloud gateway 6m10s spring-cloud kustomize-devops-web-gateway 27m spring-cloud kustomize-gateway 27m spring-cloud reviews-gateway 6m10s spring-cloud v2-kustomize-reviews-gateway 27m删除所有资源 kubectl delete all --all -n namespace kubectl delete all --all -n spring-cloud查看istio资源 Istio 是一个服务网格解决方案它引入了许多自定义资源Custom Resource DefinitionsCRDs来管理服务间的通信、流量控制和安全策略等。以下是 Istio 中常见的一些资源类型 VirtualService定义了服务之间的路由规则允许你控制流量的路由和转发。DestinationRule定义了服务的目标规则用于指定服务的负载均衡策略、连接池设置等。Gateway定义了入口网关允许外部流量访问 Istio 网格中的服务。ServiceEntry允许你将外部服务引入 Istio 网格或者定义对外部服务的访问规则。VirtualServiceSubset用于定义虚拟服务的子集可以用于进一步细化路由规则。IstioOperator用于配置和管理 Istio 控制平面的自定义资源。AuthorizationPolicy定义了服务间的访问控制策略用于实现服务级别的安全控制。Sidecar用于配置 Envoy sidecar 代理的自定义资源。 所有命名空间中的 Istio 资源 kubectl get virtualservices --all-namespaces kubectl get destinationrules --all-namespaces kubectl get gw --all-namespaces kubectl get ServiceAccount --all-namespaceskubectl get serviceentries --all-namespaces kubectl get istiooperators --all-namespaces kubectl get authorizationpolicies --all-namespaces kubectl get sidecars --all-namespaces查看项目日志 gateway该错误是服务账户没有访问权限配置如下 删除Argocd部署 在 Argo CD 中删除应用程序app时可以选择不同的删除策略包括 Foreground、Background 和 Non-cascading。这些策略决定了删除操作的行为方式。下面是它们的区别 Foreground前台 在 Foreground 删除策略下Argo CD 将首先删除应用程序的资源对象然后再删除应用程序本身。这意味着删除应用程序的操作会等待所有资源对象被删除后才会完成这可能会导致删除操作需要一些时间才能完成。Foreground 删除策略通常用于确保资源对象被正确清理以避免可能的冲突或问题。 Background后台 在 Background 删除策略下Argo CD 将直接删除应用程序本身而不等待资源对象被删除。这意味着删除应用程序的操作会立即返回而资源对象的删除将在后台进行不会阻塞删除操作的完成。Background 删除策略通常用于快速删除应用程序而不需要等待资源对象的清理。 Non-cascading非级联 Non-cascading 删除策略指示 Argo CD 仅删除应用程序本身而不会删除应用程序创建的任何资源对象。这意味着应用程序关联的资源对象将保留在集群中不会被删除。Non-cascading 删除策略通常用于保留应用程序创建的资源对象以便稍后重新使用或进行其他操作。 在使用 Argo CD 删除应用程序时根据具体需求选择适合的删除策略是很重要的。根据是否需要等待资源对象的删除以及是否需要级联删除资源对象选择合适的删除策略可以更好地管理应用程序的生命周期。 删除k8s中部署资源 删除指定空间所有资源 kubectl delete all --all -n spring-cloud删除 Istio 资源 kubectl delete virtualservice virtualservice-name -n namespace kubectl delete destinationrule destinationrule-name -n namespace kubectl delete gw gateway-name -n namespace kubectl delete serviceentry serviceentry-name -n namespace kubectl delete istiooperator istiooperator-name -n namespace kubectl delete authorizationpolicy authorizationpolicy-name -n namespace kubectl delete sidecar sidecar-name -n namespace删除查询到的资源 kubectl get gw -n spring-cloud | awk {print $1} | xargs kubectl delete gw -n spring-cloudkubectl get virtualservice -n spring-cloud | awk {print $1} | xargs kubectl delete virtualservice -n spring-cloudkubectl get ServiceAccount -n spring-cloud | awk {print $1} | xargs kubectl delete ServiceAccount -n spring-cloudkubectl get destinationrule -n spring-cloud | awk {print $1} | xargs kubectl delete destinationrule -n spring-cloud访问测试 通过nodeport方式暴露istio-ingressgateway流量入口访问页面若是访问出错检查bookinfo-productpage部署时环境变量API_SERVER是否配置 Istio流量加密 回顾ingress入口流量加密 参考下述文章进行配置4. 服务暴露方式5.云原生安全之kubesphere应用网关配置域名TLS证书验证结果如下bookinfo安全暴露服务修改爱快软路由暴露192.168.31.12内网ip访问测试 istio-gateway暴露服务 配置LoadBalancer暴露 ip访问测试 配置爱快映射内网ip 这个内网和外网端口保持一致端口为istio-ingressgateway服务端口如下 域名访问 istio-gateway配置https 官网理解 TLS 配置 apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata:name: kustomize-bookinfo-gateway spec:selector:istio: ingressgatewayservers:- port:number: 99name: httpprotocol: HTTPhosts:- *# 重定向到https上tls:httpsRedirect: true- port:number: 77name: httpsprotocol: HTTPStls:mode: SIMPLE# 配置证书secretcredentialName: your-cert-secret-namehosts:- *mode选项介绍在 Istio 中当配置 Gateway 的 TLS 设置时tls.mode 选项用于指定 TLS 连接的模式。tls.mode 可以设置为以下几种模式之一 SIMPLE: 这是最基本的 TLS 模式用于启用基本的 TLS 加密和解密。在 SIMPLE 模式下必须提供证书和私钥以便进行 TLS 握手和加密通信。MUTUAL: 在 MUTUAL 模式下除了要求客户端验证服务器的证书外还要求服务器验证客户端的证书。这种模式也称为双向 TLS 或 mTLSmutual TLS。在这种模式下客户端和服务器之间的通信将进行双向身份验证增强了通信的安全性。ISTIO_MUTUAL: 这是 Istio 特定的一种 TLS 模式类似于 MUTUAL 模式但是 Istio 自动处理证书的生成和分发。在 ISTIO_MUTUAL 模式下Istio Pilot 会自动为服务生成证书并确保双向 TLS 通信的安全性。 在 Istio Gateway 中配置 TLS 模式时根据您的安全需求和环境选择适当的 tls.mode 设置是很重要的。您可以根据实际情况选择 SIMPLE、MUTUAL 或 ISTIO_MUTUAL 模式以保障通信的安全性和完整性。 此处配置访问测试【问题暂时还未解决】 通过gitops部署项目 案例项目地址https://gitee.com/zhouwei1996/spring-cloud-bookinfo.git 此处小编不进行演示给出关键gitlab-ci.yml流水线脚本可根据实际情况改造 variables:KUBECONFIG: /etc/deploy/configMAVEN_OPTS: --Dmaven.repo.local/builds/maven-Dorg.slf4j.simpleLogger.showDateTimetrue-Djava.awt.headlesstrueMAVEN_CLI_OPTS: ---batch-mode--errors--fail-at-end--show-version--no-transfer-progress-DinstallAtEndtrue-DdeployAtEndtrue# 设置自定义的镜像源# DOCKER_REGISTRY_MIRROR: https://registry.example.comDOCKER_IMAGE_NAME: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUGDOCKER_DRIVER: overlay stages:- package- build- deploypackage:stage: packageimage: maven:3.6.3-jdk-8tags:- k8sscript:- mvn clean package -Dmaven.test.skiptrue- rm -rf /builds/project-target/reviews- rm -rf /builds/project-target/productpage- cp -rf ./reviews /builds/project-target- cp -rf ./productpage /builds/project-targetdocker-build:image: docker:cliservices:- docker:lateststage: buildtags:- k8sscript:- cd /builds/project-target- docker login -u $aliimarepo_user -p $aliimarepo_password registry.cn-hangzhou.aliyuncs.com- docker build -t registry.cn-hangzhou.aliyuncs.com/yxymzw/productpage:latest -f ./productpage/Dockerfile ./productpage/- docker push registry.cn-hangzhou.aliyuncs.com/yxymzw/productpage:latest- docker build -t registry.cn-hangzhou.aliyuncs.com/yxymzw/reviews:latest -f ./reviews/Dockerfile ./reviews/- docker push registry.cn-hangzhou.aliyuncs.com/yxymzw/productpage:latestdeploy:stage: deployimage: cnych/kustomize:v1.0before_script:- git config --global user.email gitlabgit.k8s.local- git config --global user.name GitLab CI/CDscript:- cd /builds/project-target- rm -rf ./kustomize- git clone http://$gitlab_user:$gitlab_password192.168.31.3:83/root/kustomize.git- cd ./kustomize/kustomize-bookinfo-productpage/overlay/dev- kustomize edit set image registry.cn-hangzhou.aliyuncs.com/yxymzw/productpage:latest- kustomize build ../../build/build.yaml- cd ./kustomize/kustomize-bookinfo-reviews/overlay/dev- kustomize edit set image registry.cn-hangzhou.aliyuncs.com/yxymzw/reviews:latest- kustomize build ../../build/build.yaml- git add /builds/project-target/kustomize/kustomize-productpage/- git add /builds/project-target/kustomize/kustomize-reviews/- git commit -am image update- git push -u origin main

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/922097.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenLayers地图交互 -- 章节十一:拖拽材料交互详解

OpenLayers地图交互 -- 章节十一:拖拽材料交互详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

2025年人工智能与智能装备国际学术会议(AIIE 2025)

2025年人工智能与智能装备国际学术会议(AIIE 2025) 2025 International Conference on Artificial Intelligence and Intelligent Equipment 在这里看会议官网详情 时间:2025年11月7日-9日 地点:中国西安 本轮截稿…

详细介绍:衡石HQL深度解析:如何用类SQL语法实现跨源数据的高效联邦查询?

详细介绍:衡石HQL深度解析:如何用类SQL语法实现跨源数据的高效联邦查询?2025-09-29 18:00 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x:…

通过IDOR实现权限提升导致未授权用户注入

本文详细介绍了作者在公开漏洞赏金项目中发现的IDOR漏洞,通过修改contactId参数实现权限提升,能够将任意用户添加到设备管理组中,获得了相应的漏洞赏金。通过IDOR实现权限提升导致未授权用户注入 再次问候,我是Oma…

APUE学习笔记之基础知识(一) - Invinc

本文记录《UNIX环境高级编程》第3版中第1章 基础知识 的一些知识点。 包括UNIX体系结构和登录、文件和目录、输入和输出、程序和进程、出错处理、用户标识、信号、时间值、系统调用和库函数等基本概念。本文记录《UNIX…

Syslog日志集成搭建

搭建一个完整的 syslog → Filebeat → Elasticsearch → Kibana 测试环境,详细的分步骤配置手册,包括 Linux (Filebeat) 和 Windows (Elasticsearch + Kibana) 的安装和配置。 部署架构 Filebeat:运行在 Linux 服务…

拿别的公司名字做网站工业互联网平台首先要提高数据的挖掘能力

当string,number函数不被用作构造函数的可以当成转换函数 如 string(false),number(‘3’),boolean([]) Object(3) new number(3); 除了NULL和undefined以外任何值都具有toString()方法 JS 在执行程序的时候会自动检测表达式来进行变量转换。 显示转换变量&#xf…

定义工业生产新范式!网易灵动发布全球首款全域智能无人装载机“灵载”

近日,在全球最具影响力的工程机械盛会——BICES 2025现场,网易旗下工程机械智能化品牌网易灵动隆重召开无人装载机智能解决方案发布会,正式推出全球首款面向全域场景的具身智能无人装载机——“灵载”。 此次发布标…

国有银行人力资源数字化转型的合规突围与效能跃迁

在数字化浪潮下,金融行业正面临深刻变革。作为数字中国建设的重要支撑,国家金融数字化战略明确要求银行体系充分应用数字技术,优化服务模式、提升管理效能。国有银行作为金融体系的中流砥柱,不仅需要驱动外部服务数…

深圳网站商城定制设计邯郸招聘网最新招聘信息2023

本页包含内容: 术语赋值运算符算术运算符组合赋值运算符比较运算符三目运算符空合运算符区间运算符逻辑运算符 运算符是检查、改变、合并值的特殊符号或短语。例如,加号()将两个数相加(如 let i 1 2)。更…

Java 类类型

Note: This article has been written with the assistance of AI.普通类 (Regular Class) 类的定义和基本结构 类的定义语法 [访问修饰符] class 类名 [extends 父类] [implements 接口1, 接口2, ...] {// 成员变量//…

有口碑的南通网站建设潜江资讯网免费发布信息

【SA8295P 源码分析】121 - MAX9295A 加串器芯片手册分析 及初始化参数分析 一、MAX9295A 芯片特性1.1 GPIO 引脚说明1.2 功能模块框图1.3 时序分析1.3.1 GMSL2 Lock Time:25 ms1.3.2 视频初始化延时:1.1ms + 17000 x t(PCLK)1.3.3 High-Speed Data Transmission in Bursts1.…

OpenFeign 继承FeignClient客户端注意事项

问题 起因是希望打印部分FeignClient的日志,不希望修改全局OpenFeign的日志打印。 因此不能使用 feign.client.config.default.logger-level=FULL 也不能使用全局的 @Bean public Logger.Level openFeignFullLog() { …

合肥 网站制作公司建设网站费用如何入帐

合合信息亮相CSIG AI可信论坛,全面拆解视觉内容安全的“终极防线”! 🐯 AI伪造泛滥,我们还能相信“眼见为实”吗? 近期,由中国图象图形学学会主办的CSIG青年科学家会议 AI可信论坛在杭州成功举办。本次论…

详细介绍:Redis 核心数据类型:从命令、结构到实战应用

详细介绍:Redis 核心数据类型:从命令、结构到实战应用2025-09-29 17:44 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; …

青海个人旅游网站建设抖音代运营工作怎么样

安装gdal 安装gdal,真是一波三折哇。pip、conda、c编译了等等,网上各种大佬的解决方法都试了试。咱就是说,都不行,很扯淡。甚至 使用conda install gdal 都显示安装成功了,但是 from osgeo import gdal; i…

9月29日

学习了java中的方法,讲解了使用静态导入和类方法的编写,以及如何生成随机数、怎样处理大数字浮点数,在课堂测试中编写生成四则运算题目程序

服装网站开发项目计划书电子工程王粟

简介: 快速排序也采用的是分而制之的思想。那么快速排序和归并排序的区别在什么地方呢? 归并排序是将所有的元素拆分成一个个排好序的数组,然后将这些数组再进行合并。 而快速排序虽然也是拆分,但是拆分之后的操作是从数组中选出一…

做网站一般会出现的问题wordpress 个人公众号

首先,为什么各种浏览器会产生兼容性问题? 产生这个问题的主要原因是市面上的浏览器的种类很多,但由于不同的浏览器的内核不一致,从而导致各个浏览器对网页的解析就产生了差异。 对于解决浏览器兼容性问题,我们要从三…

JVM调优实战及常量池详解

JVM调优实战及常量池详解 一、阿里巴巴 Arthas 工具 Arthas 是 Alibaba 开源的 Java 诊断工具(支持 JDK6+),采用命令行交互,可快速定位线上问题,核心内容如下: 1. 下载与启动 # GitHub下载 wget https://alibaba…