当前位置: 首页 > news >正文

电脑版和手机版网站怎么做好的网站页面

电脑版和手机版网站怎么做,好的网站页面,正阳县网站建设,中山网站运营本篇目录 1. 问题背景2. 部署gitlab 17.52.1 添加repo源2.2 添加repo源 下载17.5.0的charts包2.3 修改values文件2.3.1 hosts修改如下2.3.2 appConfig修改如下2.3.3 gitlab下的sidekiq配置2.3.4 certmanager修改如下2.3.5 nginx-ingress修改如下2.3.6 <可选> prometheus修…

本篇目录

    • 1. 问题背景
    • 2. 部署gitlab 17.5
      • 2.1 添加repo源
      • 2.2 添加repo源 下载17.5.0的charts包
      • 2.3 修改values文件
        • 2.3.1 hosts修改如下
        • 2.3.2 appConfig修改如下
        • 2.3.3 gitlab下的sidekiq配置
        • 2.3.4 certmanager修改如下
        • 2.3.5 nginx-ingress修改如下
        • 2.3.6 <可选> prometheus修改如下
        • 2.3.7 <可选> runner配置
        • 2.3.8 <可选> 数据库连接数配置
        • 2.3.9 创建webservice新的service yaml
        • 2.3.10 腾讯云上配置lb,并配置后端转发的服务
      • 2.4 部署gitlab
        • 2.4.1 查看密码
      • 2.5 访问gitlab
    • 3. 解决
      • 3.1 技术调研
      • 3.2 解决方案
    • 4. 验证
      • 4.1 gitlab 请求验证
      • 4.2 runner 请求验证
    • 5. 思考

该实践来自于客户的一个真实需求

1. 问题背景

  • gitlab是基于混合架构部署
  • gitlab没有使用ingress
  • gitlab的webservice的service类型为nodeport,然后通过lb来转发实现,域名挂在lb上

关于 gitlab的webservice的service类型为nodeport 可以稍微展开一下,其实就是通过创建一个新的webservice的service yaml文件,然后修改该service的类型是 nodeport,这样可避免后续通过helm upgrade 升级/更新 gitlab的时候,导致service又还原为配置中默认的ClusterIP或LoadBalancer而是的gitlab访问出现问题。

2. 部署gitlab 17.5

在k8s集群中搭建gitlab17.5,不启用ngix-ingress,同时将webservice的service类型使用nodeport的方式。

2.1 添加repo源

## 添加gitlab-jh源
helm repo add gitlab-jh https://charts.gitlab.cn
## 更新gitlab-jh源
helm repo update
## 查看gitlab-jh的charts包,包含了gitlab和gitlab-runner
helm search repo gitlab-jh -l

2.2 添加repo源 下载17.5.0的charts包

## 拉取对应版本的charts包
helm fetch gitlab-jh/gitlab --version 8.5.0
## 解压
tar -xf gitlab-8.5.0.tgz
cd gitlab

2.3 修改values文件

2.3.1 hosts修改如下
  • 添加gitlab的域名
  • 禁用https
  • 配置externalIP
  hosts:domain: bdeet.top # 添加域名...https: false # 禁用httpsexternalIP:- 43.133.36.192 #配置externalIP
2.3.2 appConfig修改如下
  • 添加sidekiq的路由规则
  appConfig:sidekiq:routingRules:- ["feature_category=source_code_management","code"]- ["feature_category=integrations","integrations"]- ["feature_category=continuous_integration,continuous_delivery", "pipeline"]- ["feature_category=code_review","code_review"]- ["*", "default"]
2.3.3 gitlab下的sidekiq配置
  • 添加sidekiq的队列组
gitlab:sidekiq:concurrency: 25pods:- name: codequeues: code- name: integrationsqueues: integrations- name: pipelinequeues: pipeline- name: code-reviewqueues: code-review- name: default
2.3.4 certmanager修改如下
  • installCRDs设置为false,不安装
  • install设置为false,不安装
certmanager:installCRDs: false...install: false
2.3.5 nginx-ingress修改如下
  • enabled设置false,不用自带的nginx
nginx-ingress: &nginx-ingressenabled: falsetcpExternalConfig: "false"
2.3.6 <可选> prometheus修改如下
  • install设置为false,不安装
prometheus:install: false
2.3.7 <可选> runner配置
  • 禁用runner,单独部署
gitlab-runner:install: false
2.3.8 <可选> 数据库连接数配置
  • 调整数据库的连接数
postgresql:install: true...primary:extendedConfiguration: |max_connections = 500
2.3.9 创建webservice新的service yaml
apiVersion: v1
kind: Service
metadata:labels:app: gitlab-shellname: gitlab-server-gitlab-shell-nodeportnamespace: gitlab
spec:internalTrafficPolicy: ClusteripFamilies:- IPv4ipFamilyPolicy: SingleStackports:- name: sshport: 22protocol: TCPtargetPort: 2222selector:app: gitlab-shelltype: NodePort
---
apiVersion: v1
kind: Service
metadata:labels:app: webservicename: gitlab-server-webservice-nodeportnamespace: gitlabspec:internalTrafficPolicy: ClusteripFamilies:- IPv4ipFamilyPolicy: SingleStackports:- name: http-workhorseport: 8181protocol: TCPtargetPort: http-workhorseselector:app: webservicetype: NodePort
2.3.10 腾讯云上配置lb,并配置后端转发的服务

此处 负载均衡快速入门,将lb的22和80/443 映射到后端服务的2222和8181即可,域名可以直接挂在lb上。

2.4 部署gitlab

 helm upgrade --install gitlab gitlab-jh/gitlab --timeout 600s --set certmanager-issuer.email=wkx_0422@163.com  --version 8.5.0 -f values.yaml
2.4.1 查看密码
kubectl get secret <name>-gitlab-initial-root-password -ojsonpath='{.data.password}' | base64 --decode ; echo

2.5 访问gitlab

经过测试发现确实webservice的log中的remote ip都是nodeport的ip,已经和用户的环境一致。

3. 解决

3.1 技术调研

关于 externalTrafficPolicy 的解释,参考如下:

  • https://kubernetes.io/zh-cn/docs/tasks/access-application-cluster/create-external-load-balancer/#preserving-the-client-source-ip
  • https://www.cnblogs.com/zhangmingcheng/p/17637712.html

3.2 解决方案

将webservice的service类型为nodeport的yaml中的 externalTrafficPolicy: Cluster 改成 externalTrafficPolicy: Local 即可。

关于 externalTrafficPolicy 的策略说明

  • Cluster 隐藏了客户端源 IP,可能导致第二跳到另一个节点,但具有良好的整体负载分布。
  • Local 保留客户端源 IP 并避免 LoadBalancer 和 NodePort 类型服务的第二跳, 但存在潜在的不均衡流量传播风险。

因此对 上面2.3.9的yaml文件修改如下(见红色字体):

apiVersion: v1
kind: Service
metadata:
labels:
app: gitlab-shell
name: gitlab-server-gitlab-shell-nodeport
namespace: gitlab
spec:
externalTrafficPolicy: Local
internalTrafficPolicy: Cluster
ipFamilies:

  • IPv4
    ipFamilyPolicy: SingleStack
    ports:
  • name: ssh
    port: 22
    protocol: TCP
    targetPort: 2222
    selector:
    app: gitlab-shell
    type: NodePort

apiVersion: v1
kind: Service
metadata:
labels:
app: webservice
name: gitlab-server-webservice-nodeport
namespace: gitlab
spec:
externalTrafficPolicy: Local
internalTrafficPolicy: Cluster
ipFamilies:

  • IPv4
    ipFamilyPolicy: SingleStack
    ports:
  • name: http-workhorse
    port: 8181
    protocol: TCP
    targetPort: http-workhorse
    selector:
    app: webservice
    type: NodePort

4. 验证

4.1 gitlab 请求验证

如下是本地ip
在这里插入图片描述
本地访问gitlab,查看日志
在这里插入图片描述

4.2 runner 请求验证

本地runner的IP
在这里插入图片描述
gitlab上跑一个流水线
在这里插入图片描述

综上所述,在gitlab的日志中,客户的端的请求都已经为真实的ip地址。

5. 思考

抛开gitlab本身,其实对于在k8s中部署的服务而言,如果走了ingress网络是不存在这个问题,而恰恰是因为绕过了ingress,通过nodeport的方式产生了这个问题,而externalTrafficPolicy 恰恰是可以解决这样的流量请求地址地址显示的问题。

http://www.yayakq.cn/news/469730/

相关文章:

  • 综合信息网站建设方案wordpress支持h5
  • 上海正规做网站公司寻加工厂合作订单
  • 公司网站建设维护的岗位上海有几个区最好
  • 谷歌排名网站优化wordpress图片自动打水印
  • 宁波哪里做网站的h5小程序制作平台
  • 建立一个公司网站 宣传企业文化优弊端做旅游的网站 是什么风格
  • 网站维护 网站建设属于什么河北邢台局长
  • 长沙高端网站建设服务器全球速卖通是正规平台吗
  • 西安私人网站空包网站做红章底单
  • 济南精品建站外包公司价格网站首页图片轮转
  • 南京网站设计优化公司阿里云虚拟主机怎么建设网站
  • 做app简单还是网站北京公交yy优化
  • 文明网站建设idc 网站备案
  • 郑州做网站推广资讯网页设计培训学些什么
  • 网站建设公司兴田德润专业连云港网站seo
  • 音乐网站页面设计网站开发要什么
  • 网站策划论坛无线设置网站
  • 宁波市铁路建设指挥部网站开发板arduino
  • 肇庆 网站建设wordpress 批量
  • 域名转移 网站访问什么是企业网站源码
  • 手机网站快速排名网站推广方式案例
  • 邯郸市有搞网站服服务的吗电子商务网站建设与管理第二版答案
  • 百度云怎么做网站成品网站货源1277
  • 网站制作营销型建设营销网站要什么
  • 成都网站优化及推广如何提高网站的知名度
  • 广告联盟网站建设平面设计和网页设计哪个工资高
  • 网站设计扁平化wordpress 重复标题
  • 做创业网站赚钱seo翻译
  • 公司做分享网站好吗wordpress为什么安装不了
  • 网站防注入做网站多少钱