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

阳泉市网站建设_网站建设公司_展示型网站_seo优化

钦州房产网站建设,网站一直显示建设中,电商流量平台,ip138域名网址查询Gitlab官方提供了 Helm 的方式在 Kubernetes 集群中来快速安装#xff0c;但是在使用的过程中发现 Helm 提供的 Chart 包中有很多其他额外的配置#xff0c;所以我们这里使用自定义的方式来安装#xff0c;也就是自己来定义一些资源清单文件。 Gitlab主要涉及到3个应用但是在使用的过程中发现 Helm 提供的 Chart 包中有很多其他额外的配置所以我们这里使用自定义的方式来安装也就是自己来定义一些资源清单文件。 Gitlab主要涉及到3个应用Redis、Postgresql、Gitlab 核心程序实际上我们只要将这3个应用分别启动起来然后加上对应的配置就可以很方便的安装 Gitlab 了我们这里选择使用的镜像不是官方的而是 Gitlab 容器化中使用非常多的一个第三方镜像sameersbn/gitlab基本上和官方保持同步更新地址Docker GitLab by sameersbn 如果我们已经有可使用的 Redis 或 Postgresql 服务的话那么直接配置在 Gitlab 环境变量中即可如果没有的话就单独部署。 创建namespace  kubectl create namespace kube-ops 创建一个用于存储密码的secret文件(可能不生效建议使用文件secret.yaml 来创建: 创建username和password文件: $ echo -n admin ./username $ echo -n 123456 ./password 用kubectl生成secret对象: $ kubectl create secret generic git-user-pass --from-file./username --from-file./password secret git-user-pass created 通过yaml文件创建管理员账号和密码(其他创建secret方式还有 secret.yaml apiVersion: v1 kind: Secret metadata:name: git-user-passnamespace: kube-ops type: Opaque stringData:username: adminpassword: 123456 kubectl apply -f secret.yaml 创建PVC和storageclass做持久化: 创建pv svc-pv.yaml 这里使用本地存储如果需要使用nfs存储把 hostPath:     path: /nfs/data/gitlab/redis  改成 nfs:   path: /nfs/data/gitlab/redis   server: 192.168.1.114 # 定义持久卷信息 apiVersion: v1 kind: PersistentVolume metadata:# pv是没有namespace属性的它是一种跨namespace的共享资源name: gitlab-redis-pvnamespace: kube-ops spec:capacity:storage: 5GiaccessModes:- ReadWriteMany# 存储类具有相同存储类名称的pv和pvc才能进行绑定storageClassName: nfshostPath:path: /nfs/data/gitlab/redis#nfs:# path: /nfs/data/gitlab/redis# server: 192.168.1.114---# 定义持久卷信息 apiVersion: v1 kind: PersistentVolume metadata:# pv是没有namespace属性的它是一种跨namespace的共享资源name: gitlab-postgresql-pv spec:capacity:storage: 5GiaccessModes:- ReadWriteMany# 存储类具有相同存储类名称的pv和pvc才能进行绑定storageClassName: nfshostPath:path: /nfs/data/gitlab/postgresql#nfs:# path: /nfs/data/gitlab/postgresql# server: 192.168.1.114---# 定义持久卷信息 apiVersion: v1 kind: PersistentVolume metadata:# pv是没有namespace属性的它是一种跨namespace的共享资源name: gitlab-pv spec:capacity:storage: 50GiaccessModes:- ReadWriteMany# 存储类具有相同存储类名称的pv和pvc才能进行绑定storageClassName: nfshostPath:path: /nfs/data/gitlab/data#nfs:# path: /nfs/data/gitlab/data# server: 192.168.1.114 kubectl apply -f svc-pv.yaml 创建pvc 绑定pvsvc-pvc.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata:name: gitlab-redis-pvcnamespace: kube-ops spec:accessModes:- ReadWriteManystorageClassName: nfsresources:requests:storage: 5Gi ---apiVersion: v1 kind: PersistentVolumeClaim metadata:name: gitlab-postgresql-pvcnamespace: kube-ops spec:accessModes:- ReadWriteManystorageClassName: nfsresources:requests:storage: 5Gi---apiVersion: v1 kind: PersistentVolumeClaim metadata:name: gitlab-pvcnamespace: kube-ops spec:storageClassName: nfsaccessModes:- ReadWriteManyresources:requests:storage: 50Gi kubectl apply -f svc-pvc.yaml 部署需要的 Redis 服务对应的资源清单文件如下(gitlab-redis.yaml) apiVersion: apps/v1 kind: Deployment metadata:name: redisnamespace: kube-ops spec:selector:matchLabels:name: redistemplate:metadata:labels:name: redisspec:containers:- name: redisimage: sameersbn/redisimagePullPolicy: IfNotPresentports:- name: rediscontainerPort: 6379volumeMounts:- mountPath: /var/lib/redisname: datalivenessProbe:exec:command:- redis-cli- pinginitialDelaySeconds: 30timeoutSeconds: 5readinessProbe:exec:command:- redis-cli- pinginitialDelaySeconds: 5timeoutSeconds: 1volumes:- name: datapersistentVolumeClaim:claimName: gitlab-redis-pvc --- apiVersion: v1 kind: Service metadata:name: redisnamespace: kube-opslabels:name: redis spec:ports:- name: redisport: 6379targetPort: redisselector:name: redis kubectl apply -f gitlab-redis.yaml 然后是数据库 Postgresql对应的资源清单文件如下(gitlab-postgresql.yaml) apiVersion: apps/v1 kind: Deployment metadata:name: postgresqlnamespace: kube-opslabels:name: postgresql spec:selector:matchLabels:name: postgresqltemplate:metadata:labels:name: postgresqlspec:containers:- name: postgresqlimage: sameersbn/postgresqlimagePullPolicy: IfNotPresentenv:- name: DB_USERvalue: gitlab- name: DB_PASSvalue: passw0rd- name: DB_NAMEvalue: gitlab_production- name: DB_EXTENSIONvalue: pg_trgmports:- name: postgrescontainerPort: 5432volumeMounts:- mountPath: /var/lib/postgresqlname: datalivenessProbe:exec:command:- pg_isready- -h- localhost- -U- postgresinitialDelaySeconds: 30timeoutSeconds: 5readinessProbe:exec:command:- pg_isready- -h- localhost- -U- postgresinitialDelaySeconds: 5timeoutSeconds: 1volumes:- name: datapersistentVolumeClaim:claimName: gitlab-postgresql-pvc --- apiVersion: v1 kind: Service metadata:name: postgresqlnamespace: kube-opslabels:name: postgresql spec:ports:- name: postgresport: 5432targetPort: postgresselector:name: postgresql kubectl apply -f  gitlab-postgresql.yaml 然后就是我们最核心的 Gitlab 的应用对应的资源清单文件如下(gitlab.yaml) apiVersion: apps/v1 kind: Deployment metadata:name: gitlabnamespace: kube-ops spec:selector:matchLabels:name: gitlabtemplate:metadata:labels:name: gitlabspec:containers:- name: gitlabimage: sameersbn/gitlab:12.1.6imagePullPolicy: IfNotPresentenv:- name: TZvalue: Asia/Shanghai- name: GITLAB_TIMEZONEvalue: Beijing- name: GITLAB_SECRETS_DB_KEY_BASEvalue: long-and-random-alpha-numeric-string- name: GITLAB_SECRETS_SECRET_KEY_BASEvalue: long-and-random-alpha-numeric-string- name: GITLAB_SECRETS_OTP_KEY_BASEvalue: long-and-random-alpha-numeric-string- name: GITLAB_ROOT_PASSWORDvalueFrom:secretKeyRef:name: git-user-passkey: password# value: admin321- name: GITLAB_ROOT_EMAILvalue: tp126.com- name: GITLAB_HOSTvalue: git.qikqiak.com- name: GITLAB_PORTvalue: 80- name: GITLAB_SSH_PORTvalue: 30022- name: GITLAB_NOTIFY_ON_BROKEN_BUILDSvalue: true- name: GITLAB_NOTIFY_PUSHERvalue: false- name: GITLAB_BACKUP_SCHEDULEvalue: daily- name: GITLAB_BACKUP_TIMEvalue: 01:00- name: DB_TYPEvalue: postgres- name: DB_HOSTvalue: postgresql- name: DB_PORTvalue: 5432- name: DB_USERvalue: gitlab- name: DB_PASSvalue: passw0rd- name: DB_NAMEvalue: gitlab_production- name: REDIS_HOSTvalue: redis- name: REDIS_PORTvalue: 6379ports:- name: httpcontainerPort: 80- name: sshcontainerPort: 22volumeMounts:- mountPath: /home/git/dataname: datalivenessProbe:httpGet:path: /port: 80initialDelaySeconds: 180timeoutSeconds: 5readinessProbe:httpGet:path: /port: 80initialDelaySeconds: 5timeoutSeconds: 1volumes:- name: datapersistentVolumeClaim:claimName: gitlab-pvc --- apiVersion: v1 kind: Service metadata:name: gitlabnamespace: kube-opslabels:name: gitlab spec:ports:- name: httpport: 80targetPort: 80- name: sshport: 22targetPort: sshnodePort: 30022type: NodePortselector:name: gitlab--- apiVersion: networking.k8s.io/v1 kind: Ingress metadata:name: gitlabnamespace: kube-opsannotations:kubernetes.io/ingress.class: traefik spec:rules:- host: git.qikqiak.comhttp:paths:- path: /pathType : Prefixbackend:service :name: gitlabport:number: 80 kubectl apply -f  gitlab.yaml 我们这里应用数据都做数据持久化还有敏感数据用了secret引入到环境变量,比如添加 PV/PVC 或者 StorageClass。 要注意的是其中 Redis 和 Postgresql 相关的环境变量配置另外我们这里添加了一个 Ingress 对象来为我们的 Gitlab 配置一个域名git.qikqiak.com这样应用部署完成后我们就可以通过该域名来访问了然后直接部署即可 $ kubectl create -f gitlab-redis.yaml gitlab-postgresql.yaml gitlab.yaml 创建完成后查看 Pod 的部署状态 $ kubectl get pods -n kube-ops NAME                                           READY     STATUS    RESTARTS   AGE gitlab-7d855554cb-twh7c                        1/1       Running   0          10m postgresql-8566bb959c-2tnvr                    1/1       Running   0          17h redis-8446f57bdf-4v62p                         1/1       Running   0          17h 可以看到都已经部署成功了然后我们可以通过 Ingress 中定义的域名git.qikqiak.com(需要做 DNS 解析或者在本地 /etc/hosts 中添加映射)来访问 Portal gitlab portal 使用用户名 root和部署的时候指定的超级用户密码GITLAB_ROOT_PASSWORD123456即可登录进入到首页 gitlab homepage Gitlab 运行后我们可以注册为新用户并创建一个项目还可以做很多的其他系统设置比如设置语言、设置应用风格样式等等。 点击Create a project创建一个新的项目和之前 Github 使用上没有多大的差别 create gitlab project 创建完成后我们可以添加本地用户的一个SSH-KEY这样我们就可以通过 SSH 来拉取或者推送代码了。SSH 公钥通常包含在~/.ssh/id_rsa.pub 文件中并以ssh-rsa开头。如果没有的话可以使用ssh-keygen命令来生成id_rsa.pub里面的内容就是我们需要的 SSH 公钥然后添加到 Gitlab 中。 由于平时使用的 ssh 默认是 22 端口现在如果用默认的 22 端口去连接是没办法和 Gitlab 容器中的 22 端口进行映射的因为我们只是通过 Service 的 22 端口进行了映射要想通过节点去进行 ssh 链接就需要在节点上一个端口和容器内部的22端口进行绑定所以这里我们可以通过 NodePort 去映射 Gitlab 容器内部的22端口比如我们将环境变量设置为GITLAB_SSH_PORT30022将 Gitlab 的 Service 也设置为 NodePort 类型 apiVersion: v1 kind: Service metadata:name: gitlabnamespace: kube-opslabels:name: gitlab spec:ports:- name: httpport: 80targetPort: http- name: sshport: 22targetPort: sshnodePort: 30022type: NodePortselector:name: gitlab 注意上面 ssh 对应的 nodePort 端口设置为 30022这样就不会随机生成了重新更新下 Deployment 和 Service更新完成后现在我们在项目上面 Clone 的时候使用 ssh 就会带上端口号了 gitlab ssh 现在就可以使用Clone with SSH的地址了由于上面我们配置了 SSH 公钥所以就可以直接访问上面的仓库了 $ git clone ssh://gitgit.qikqiak.com:30022/root/gitlab-demo.git Cloning into gitlab-demo... warning: You appear to have cloned an empty repository. Checking connectivity... done. 然后随便在该项目下面添加一些资源 $ echo # hello world  README.md $ git add . $ git commit -m hello world [master (root-commit) 63de7cb] hello world  1 file changed, 1 insertion()  create mode 100644 README.md $ git push origin master Counting objects: 3, done. Writing objects: 100% (3/3), 224 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To ssh://gitgit.qikqiak.com:30022/root/gitlab-demo.git  * [new branch]      master - master 然后刷新浏览器就可以看到刚刚创建的 Git 仓库中多了一个 README.md 的文件 参考https://blog.csdn.net/zhangjunli/article/details/108437032
http://www.lebaoying.cn/news/92490.html

相关文章:

  • 深圳品牌网站建设哪个网站做视频有收益
  • 微商网站模板沈阳网站推广¥做下拉去118cr
  • 网站内容 内链企业网站的制作成本
  • 做 视频在线观看网站百度游戏
  • ps设计素材网站wordpress custom fields
  • 好的漂亮的淘宝客网站模板创建公司为什么必须三个人
  • 哪有做网站的 优帮云最新军事动态
  • 产品网站建设多少钱培训课程总结
  • 免费推广网站58建设一个很大的视频网站需要多少钱
  • 怎么做网站导航条建设电影推荐网站的项目背景
  • 推荐10个网站什么网站可以做网站
  • 用代理访问永久域名抖音seo优化排名
  • 开锁公司网站模板短链接在线生成官网
  • 论坛平台seo资源网
  • 广州骏域网站给别人建设网站怎么收费
  • 东营 微信网站建设本地装修网
  • 如何查看网站的外链网站建设框架都有哪些内容
  • 网站开发语儿童 网站 设计
  • 丝路建设网站宣传软文范例
  • 深圳专门做网站的公司开发网站和电脑软件的区别
  • 论坛网站平台建设方案wordpress首页特效
  • 华为云专业网站定制广告公司创意广告语
  • 广州网站设计公司招聘wordpress 文章多了
  • 怎么注册域名免费wordpress 百度优化 插件
  • 国内永久免费crm系统网站推荐大全拖式网站建设
  • 网站丢失了怎么办华为公司电子商务网站建设策划书
  • 建筑品牌网站网站轮播广告
  • 开源商城网站高级网站开发软件
  • 一个域名怎么做多个网站中国机械加工最多的地方
  • 电商平台建设做网站软件开发培训机构排名