K8s实战4-使用Helm在Azure上部署Ingress-Nginx和Tokengateway

手动发布Ingress-Nginx

1 登录到aks(dfinder-gw-aks)

az login

az account set --subscription ${sub ID}

az aks get-credentials --resource-group ${groupname} --name ${aks name}

2 下载 ingress-nginx-4.2.5.tgz

curl -LO https://github.com/kubernetes/ingress-nginx/releases/download/helm-chart-4.7.1/ingress-nginx-4.7.1.tgz

3 解压,修改文件

sudo tar -xvf ingress-nginx-4.2.5.tgz && sudo cd ingress-nginx

commonLabels: {}controller:name: controllerimage:registry: registry.cn-hangzhou.aliyuncs.com # 根据自己情况修改image: google_containers/nginx-ingress-controller # 同上  tag: "v1.3.0"# digest: sha256:31f47c1e202b39fadecf822a9b76370bd4baed199a005b3e7d4d1455f4fd3fe2      # 注释掉dnsPolicy: ClusterFirstWithHostNet                     # 修改好的hostNetwork: true         # 改成true        kind: DaemonSet                          # 已经修改好的nodeSelector:kubernetes.io/os: linuxingress: "true"                              # 改成truepatch:enabled: trueimage:registry: registry.cn-hangzhou.aliyuncs.com # 根据自己情况修改image: google_containers/kube-webhook-certgen # 同上tag: v1.3.0# digest: sha256:64d8c73dca984af206adf9d6d7e46aa550362b1d7a01f3a0a91b20cc67868660      # 注释掉

4 安装ingress-nginx

#创建命名空间

kubectl create ns ingress-nginx-public

# 使用helm进行安装

helm install ingress-nginx-public -f values.yaml -n ingress-nginx-public .

helm install ingress-nginx-public -f values.yaml -n ingress-nginx-public . --set controller.service.loadBalancerIP="159.27.190.62" --set controller.service.annotations."service\.beta\.kubernetes\.io/azure-load-balancer-resource-group"="cn-prdcnn3-dfinder-pubip-rg"

其他命令

helm list -n ingress-nginx-public

kubectl -n ingress-nginx-public get pods  -o wide

kubectl -n ingress-nginx-public get svc -o wide

# 删除ingress-nginx

helm delete ingress-nginx-public -n ingress-nginx-public

# 更新ingress-nginx

helm upgrade ingress-nginx-public -n -f values.yaml -n ingress-nginx-public .

错误处理1

错误描述:Ingress-nginx发布后,Load Balancer,Frontend IP configuration中没有生成申请的public ip的记录,只有自动生成的public ip记录

错误信息:

Error syncing load balancer: failed to ensure load balancer:

  findMatchedPIPByLoadBalancerIP: failed to listPIP: Retriable: false,

  RetryAfter: 0s, HTTPStatusCode: 403, RawError:

  {"error":{"code":"AuthorizationFailed","message":"The client

  '9f32426d-729e-4d88-8c62-d9d3b6ad4921' with object id

  '9f32426d-729e-4d88-8c62-d9d3b6ad4921' does not have authorization to perform

  action 'Microsoft.Network/publicIPAddresses/read' over scope

  '/subscriptions/fc10f621-0a92-4106-941e-cb7c63b9295a/resourceGroups/cn-prdcnn3-dfinder-pubip-rg/providers/Microsoft.Network'

  or the scope is invalid. If access was recently granted, please refresh your

  credentials."}}

执行命令:

这个需要有subcriptions权限才能执行成功,haidi执行未成功,但liuxiao执行成功,haidi再次执行helm install,Load Balancer中就有两条记录了。

az role assignment create --assignee <object ID> --scope <resource ID of the Vnet> --role “Network Contributor”

5 测试是否DNS是否通了

1 通过在DNS的public endpoint页面点击health check按钮,如果status变为绿色,implemented,则为通过

 

2 通过命令测试

openssl s_client -crlf -connect 159.27.190.62:443 -servername dfdr-nonprod.query.api.dvb.corpinter.net.cn

curl -X GET -k -I --resolve dfdr-nonprod.query.api.dvb.corpinter.net.cn:443:159.27.190.62 https://dfdr-nonprod.query.api.dvb.corpinter.net.cn


 

手动发布Tokengateway

1 下载tokengateway的helm模版

git clone https://dev.azure.com/daimler-mic/IAMS/_git/mic-gateway

git pull -r

cd mic-gateway/helm-chart

2 通过Helm部署到Aks

helm upgrade \

    --install ${NAME} . \

    --namespace ${NAMESPACE} \

    --values ${VALUES_FILE} \

    --set "global.clientsecret=${CLIENT_SECRET}"

upgrade前准备工作,需要修改Values.yaml中的

region

stage

pullPolicy

clientid

clientsecret

aksversion

dockerPullID: "${dockerPullID}"

dockerPullSecret: "${dockerPullSecret}"

acrValues: "gas:strong"

requestedScopes:

      - "groups"  # standard OIDC scope

      - "openid"  # standard OIDC scope

      - "profile" # standard OIDC scope

      - "email"   # standard OIDC scope

      - "offline_access"

项目总结:

这个项目是要接入一个字节的埋点系统,目前的Step是要在公司的AKS上部署Ingress-Nginx和TokenGateway来打通域名解析,为后面接入第三方系统提供支持。

我刚开始接到这个工作时,还是觉得有些挑战的。

挑战1 没有实际用helm部署过应用。只是部署了一个简单的nginx(幸好动手部署一次,这次省了很多事),还有就是在配置pipeline时,对helm有一些了解。

挑战2 对配置DNS,IP这些心里没底。之前都是同事配置的,我负责把开发的应用,部署到搭建好的环境,真正可以在浏览器访问到,需要其他同事支持。

挑战3 对K8s中的一些知识点理解的还不深。比如Ingress-nginx(之前以为是个简单的nginx,心里还想我部署过,其实还是有区别的),Deamset,endpoint,Load banlancer,K8s开发工具lens.

挑战4 对这个部署的套路不熟悉。部署Ingress-Nginx之前有个pipeline,但当我部署是禁用了,于是负责的同事给我推荐了好几种其他方案,本来简单的事,需要尝试好几种方案。再有tokengateway之前也是有pipeline,但具体项目需要重新建立,这个项目目前不需要pipeline,只能参考。虽然部署不需要写代码,但部署不成功,需要找原因解决,也是需要工具,需要有方法的。Lens比直接在portal看到更多的信息,修改也更方便。

挑战5 对不熟悉的事情需要请教很多人。这个其实还好,现在回顾一下,之前做前后端开发,可能一两人交流一下就搞定了。这次部署涉及到了Li(部署套路结束和细节问题解决),liu(整体需求,整体解决方案,问题找人,最后的联调),zou(权限的配置),ma(账户开通,提供了一些解决方案),zhang and xiong(经验提供者,APP组有类似配置经验),XX(没记住名字,腾讯云部署经验,提供最后调试阶段的支持),Li(微软case接口人,解决了一个权限问题)。

上周五刚开始具体工作时,有点压力山大,那那都不顺,经过本周三天的努力,已经成功部署,并测试跑通,Happy。。。

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

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

相关文章

电商项目part04 微服务拆分

微服务架构拆分 微服务介绍 英文:https://martinfowler.com/articles/microservices.html 中文:http://blog.cuicc.com/blog/2015/07/22/microservices 微服务拆分时机 如下场景是否需要进行微服务拆分&#xff1f; 代码维护困难&#xff0c;几百人同时开发一个模块&…

怎么压缩视频?一分钟学会视频压缩技巧

现在拍摄的视频文件体积都比较大&#xff0c;如果再加上后期的剪辑处理&#xff0c;动不动就是几个GB起步&#xff0c;这样一来不仅占用空间&#xff0c;还不方便传输&#xff0c;今天就围绕这个问题给大家分享几个压缩视频的方法&#xff0c;需要的朋友可以参考下。 方法一&am…

视频云存储/安防监控/视频汇聚EasyCVR平台新增设备经纬度选取

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同&#xff0c;支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强&#xff0c;视频能力丰富&#xff0c;具体可实现视频监控直播、视频轮播、视频录像、…

分布式链路追踪——Dapper, a Large-Scale Distributed Systems Tracing Infrastructure

要解决的问题 如何记录请求经过多个分布式服务的信息&#xff0c;以便分析问题所在&#xff1f;如何保证这些信息得到完整的追踪&#xff1f;如何尽可能不影响服务性能&#xff1f; 追踪 当用户请求到达前端A&#xff0c;将会发送rpc请求给中间层B、C&#xff1b;B可以立刻作…

vue3 基础知识

vue3创建一个项目 PS D:\code> npm init vuelatestVue.js - The Progressive JavaScript Framework√ Add TypeScript? ... No / Yes √ Add JSX Support? ... No / Yes √ Add Vue Router for Single Page Application development? ... No / Yes √ Add Pinia for sta…

Echarts、js编写“中国主要城市空气质量对比”散点图 【亲测】

本次实验通过可视化工具Echarts来对全国主要城市的&#xff30;&#xff2d;2.5的值进行直观的展示&#xff0c;使人们可以快速的发现信息的关键点&#xff0c;从而对各个城市的空气质量情况有直观的了解。 先看效果 上代码&#xff1a; <!DOCTYPE html> <html>&…

大数据平台需要做等保测评吗?怎么做?

大数据时代的数据获取方式、存储规模、访问特点、关注重点都有了很大不同&#xff0c;所以保证大数据平台数据安全尤其重要。因此不少人在问&#xff0c;大数据平台需要做等保测评吗&#xff1f;怎么做&#xff1f; 大数据平台需要做等保测评吗&#xff1f; 大数据平台是需要做…

Springboot 自定义 Mybatis拦截器,实现 动态查询条件SQL自动组装拼接(玩具)

前言 ps&#xff1a;最近在参与3100保卫战&#xff0c;战况很激烈&#xff0c;刚刚打完仗&#xff0c;来更新一下之前写了一半的博客。 该篇针对日常写查询的时候&#xff0c;那些动态条件sql 做个简单的封装&#xff0c;自动生成&#xff08;抛砖引玉&#xff0c;搞个小玩具&a…

软件测试学术顶会——ISSTA 2023 论文(网络安全方向)清单、摘要与总结

总结 本次会议涵盖的安全研究主题广泛,包括源代码分析、二进制代码分析、恶意软件检测、漏洞检测、模糊测试、程序验证等。一些热门的研究方向包括:基于机器学习的漏洞检测、大型语言模型在软件安全中的应用、区块链智能合约安全分析。这些方向都在最近几年持续发展。一些较冷门…

每日一题leetcode--使循环数组所有元素相等的最少秒数

相当于扩散&#xff0c;每个数可以一次可以扩散到左右让其一样&#xff0c;问最少多少次可以让整个数组都变成一样的数 使用枚举&#xff0c;先将所有信息存到hash表中&#xff0c;然后逐一进行枚举&#xff0c;计算时间长短用看下图 考虑到环形数组&#xff0c;可以把首项n放…

安全学习DAY17_信息打点-语言框架组件识别

信息打点-WEB打点-语言框架&开发组件 文章目录 信息打点-WEB打点-语言框架&开发组件本节涉及链接&工具本节知识&思维导图基础概念介绍框架&#xff1a;组件&#xff1a;Web架构 对应Web测试手法后端&#xff1a;前端组件&#xff1a;java居多&#xff0c;框架&…

线段树详解——影子宽度

OK&#xff0c;今天来讲一讲线段树~~ 线段树是什么线段树的实现线段树的时间复杂度线段树的应用线段树的节点结构其他操作和优化例题——影子宽度输入输出格式输入格式输出格式 输入输出样例输入样例输出样例 例题讲解 线段树是什么 线段树&#xff08; S e g m e n t Segmen…