云盘算-容器云-摆设jumpserver 版本2

[复制链接]
发表于 2025-9-18 07:33:42 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
应用摆设:堡垒机堡垒机摆设
  1. # 使用提供的软件包配置Yum源,通过地址将jumpserver.tar.gz软件包下载至Jumpserver节点的/root目录下
  2. [root@jumpserver ~]# tar -zxvf jumpserver.tar.gz -C /opt/
  3. [root@jumpserver ~]# cp /opt/local.repo /etc/yum.repos.d/
  4. [root@jumpserver ~]# tar -zxvf /opt/jumpserverrepo
  5. [root@jumpserver ~]# yum clean all && yum makecache
  6. # 安装Python数据库
  7. [root@jumpserver ~]# yum install python2 -y
  8. [root@jumpserver opt]# mv docker-compose /usr/local/bin/docker-compose
  9. [root@jumpserver opt]# chmod +x docker-compose
  10. [root@jumpserver opt]# ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  11. # 安装Jumpserver服务
  12. # 创建Jumpserver服务组件目录
  13. [root@jumpserver opt]#docker build -t jumpserver/jms_mysql:v1.0 -f Dockerfile-mysql .
  14. [root@jumpserver opt]#docker build -t jumpserver/jms_redis:v1.0 -f Dockerfile-redis .
  15. [root@jumpserver opt]#docker build -t jumpserver/jms_core:v1.0 -f Dockerfile-core .
  16. [root@jumpserver opt]#docker build -t jumpserver/jms_koko:v1.0 -f Dockerfile-koko .
  17. [root@jumpserver opt]#docker build -t jumpserver/jms_guacamole:v1.0 -f Dockerfile-guacamole .
  18. [root@jumpserver opt]#docker build -t jumpserver/jms_nginx:v1.0 -f Dockerfile-nginx .
  19. [root@localhost opt]# docker-compose up -d
  20. curl -sSL https://resource.fit2cloud.com/jumpserver/jumpserver/releases/latest/download/quick_start.sh | bash
复制代码
2.2.6 安装 GitLab 环境
  1. 新建命名空间 kube-ops,将 GitLab 部署到该命名空间下,然后完成 GitLab 服务的配置。
  2. 上传CICD-Runner.tar.gz包
  3. [root@k8s-master-node1 ~]#tar -zxvf CICD-Runner.tar.gz
  4. [root@k8s-master-node1 ~]#cd cicd-runner/
  5. [root@k8s-master-node1 cicd-runner]# docker load -i images/image.tar
  6. [root@k8s-master-node1 cicd-runner]# kubectl create ns kube-ops
  7. namespace/kube-ops created
  8. [root@k8s-master-node1 cicd-runner]# vim gitlab.yaml
  9. apiVersion: apps/v1
  10. kind: Deployment
  11. metadata:
  12.   creationTimestamp: null
  13.   labels:
  14.     app: gitlab
  15.   name: gitlab
  16.   namespace: kube-ops
  17. spec:
  18.   replicas: 1
  19.   selector:
  20.     matchLabels:
  21.       app: gitlab
  22.   #strategy: {}
  23.   template:
  24.     metadata:
  25.       #creationTimestamp: null
  26.       labels:
  27.         app: gitlab
  28.     spec:
  29.       containers:
  30.       - image: yidaoyun/gitlab-ce:v1.0
  31.         imagePullPolicy: IfNotPresent
  32.         name: gitlab-ce
  33.         ports:
  34.         - containerPort: 80
  35.         env:
  36.         - name: GITLAB_ROOT_PASSWORD
  37.           value: 'admin123456'
  38. [root@k8s-master-node1 cicd-runner]# kubectl apply -f gitlab.yaml
  39. deployment.apps/gitlab created
  40. [root@k8s-master-node1 cicd-runner]# kubectl get pod -n kube-ops
  41. NAME                     READY   STATUS    RESTARTS   AGE
  42. gitlab-df897d46d-vcjf6   1/1     Running   0          7s
  43. [root@k8s-master-node1 cicd-runner]# vim gitlab.yaml
  44. apiVersion: v1
  45. kind: Service
  46. metadata:
  47.   creationTimestamp: null
  48.   labels:
  49.     app: gitlab
  50.   name: gitlab
  51.   namespace: kube-ops
  52. spec:
  53.   ports:
  54.   - port: 80
  55.     protocol: TCP
  56.     nodePort: 30880
  57.   selector:
  58.     app: gitlab
  59.   type: NodePort
  60. [root@k8s-master-node1 cicd-runner]# kubectl apply -f gitlab.yaml
  61. service/gitlab created
  62. [root@k8s-master-node1 cicd-runner]# kubectl get svc -n kube-ops
  63. NAME     TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
  64. gitlab   NodePort   10.96.133.116   <none>        80:30880/TCP   14s
复制代码
2.2.7 摆设 GitLab Runner(x)
将 GitLab Runner 摆设到 kube-ops 定名空间下,并完成 GitLab Runner 在 GitLab 中的注册。
百度打开192.168.59.200:30880
root        admin123456

#在这里获取摆设runner的URL和令牌 48XdJ5KYGoJPYjaa71gi
  1. [root@k8s-master-node1 cicd-runner]# cd manifests/
  2. [root@k8s-master-node1 manifests]# vim runner-configmap.yaml
  3. apiVersion: v1
  4. data:
  5.   REGISTER_NON_INTERACTIVE: "true"
  6.   REGISTER_LOCKED: "false"
  7.   METRICS_SERVER: "0.0.0.0:9100"
  8.   CI_SERVER_URL: "http://192.168.59.200:30880"
  9.   RUNNER_REQUEST_CONCURRENCY: "4"
  10.   RUNNER_EXECUTOR: "kubernetes"
  11.   KUBERNETES_NAMESPACE: "kube-ops"
  12.   KUBERNETES_PRIVILEGED: "true"
  13.   KUBERNETES_CPU_LIMIT: "1"
  14. [root@k8s-master-node1 manifests]#echo -n "48XdJ5KYGoJPYjaa71gi" | base64
  15. NDhYZEo1S1lHb0pQWWphYTcxZ2k=
  16. # 进入添加labels字段即可
  17. [root@k8s-master-node1 manifests]# vim runner-statefulset.yaml
  18. apiVersion: v1
  19. data:
  20.   GITLAB_CI_TOKEN: NDhYZEo1S1lHb0pQWWphYTcxZ2k=
  21. kind: Secret
  22. metadata:
  23.   name: gitlab-ci-runner
  24.   namespace: kube-ops
  25.   labels:
  26.     app: gitlab-ci-runner
  27. ---
  28. apiVersion: apps/v1
  29. kind: StatefulSet
  30. metadata:
  31.   name: gitlab-ci-runner
  32.   namespace: kube-ops
  33.   labels:
  34.     app: gitlab-ci-runner
  35. spec:
  36.   serviceName: gitlab-ci-runner
  37.   updateStrategy:
  38.     type: RollingUpdate
  39.   replicas: 2
  40.   selector:
  41.     matchLabels:
  42.       app: gitlab-ci-runner
  43.   template:
  44.     metadata:
  45.       labels:
  46.         app: gitlab-ci-runner
  47.     spec:
  48.       securityContext:
  49.         runAsNonRoot: true # 则容器会以非 root 用户身份运行
  50.         runAsUser: 999
  51.         supplementalGroups: [999]
  52.       containers:
  53.       - image: yidaoyun/gitlab-runner:v1.0
  54.         imagePullPolicy: IfNotPresent
  55.         name: gitlab-runner
  56.         ports:
  57.         - containerPort: 9100
  58.         command:
  59.         - /scripts/run.sh
  60.         envFrom:
  61.         - configMapRef:
  62.             name: gitlab-ci-runner-cm
  63.         - secretRef:
  64.             name: gitlab-ci-token
  65.         env:
  66.         - name: RUNNER_NAME
  67.           valueFrom:
  68.             fieldRef:
  69.               fieldPath: metadata.name
  70.         volumeMounts:
  71.         - name: gitlab-ci-runner-scripts
  72.           mountPath: /scripts
  73.           readOnly: true # 将卷只读挂载到容器内
  74.       volumes:
  75.       - name: gitlab-ci-runner-scripts
  76.         projected:
  77.           sources:
  78.           - configMap:
  79.               name: gitlab-ci-runner-scripts
  80.               items:
  81.               - key: run.sh
  82.                 path: run.sh
  83.                 mode: 0775
  84.       restartPolicy: Always
  85. # 依次启动
  86. [root@k8s-master-node1 manifests]# kubectl apply -f runner-configmap.yaml
  87. configmap/gitlab-ci-runner-cm created
  88. [root@k8s-master-node1 manifests]# kubectl apply -f runner-scripts-configmap.yaml
  89. configmap/gitlab-ci-runner-scripts created
  90. [root@k8s-master-node1 manifests]# kubectl apply -f runner-statefulset.yaml
  91. secret/gitlab-ci-token created
  92. statefulset.apps/gitlab-ci-runner created
  93. [root@k8s-master-node1 manifests]# kubectl get pod -n kube-ops
  94. NAME                     READY   STATUS    RESTARTS   AGE
  95. gitlab-ci-runner-0       1/1     Running   0          14s
  96. gitlab-ci-runner-1       1/1     Running   0          12s
  97. gitlab-df897d46d-vcjf6   1/1     Running   0          16h
复制代码
2.2.8 设置 GitLab
在 GitLab 中新建公开项目并导入离线项目包,然后将 Kubernetes 集群添加 到 GitLab 中。
  1. [root@k8s-master-node1 cicd-runner]# cd springcloud/
  2. [root@k8s-master-node1 springcloud]# git config --global user.name "Administrator"
  3. [root@k8s-master-node1 springcloud]# git config --global user.email "[email protected]"
  4. [root@k8s-master-node1 springcloud]# git remote remove origin
  5. [root@k8s-master-node1 springcloud]# git remote add origin http://192.168.59.200:30880/root/springcloud.git
  6. [root@k8s-master-node1 springcloud]# git add .
  7. warning: You ran 'git add' with neither '-A (--all)' or '--ignore-removal',
  8. whose behaviour will change in Git 2.0 with respect to paths you removed.
  9. Paths like '.gitlab-ci.yml' that are
  10. removed from your working tree are ignored with this version of Git.
  11. * 'git add --ignore-removal <pathspec>', which is the current default,
  12.   ignores paths you removed from your working tree.
  13. * 'git add --all <pathspec>' will let you also record the removals.
  14. Run 'git status' to check the paths you removed from your working tree.
  15. [root@k8s-master-node1 springcloud]# git commit -m "Initial commit"
  16. [master db17cb0] Initial commit
  17. 1 file changed, 2 insertions(+)
  18. [root@k8s-master-node1 springcloud]# git push -u origin master
  19. Username for 'http://10.24.206.143:30880': root  # gitlab用户
  20. Password for 'http://[email protected]:30880':(admin123456)  # gitlab密码
  21. Counting objects: 1355, done.
  22. Delta compression using up to 4 threads.
  23. Compressing objects: 100% (1000/1000), done.
  24. Writing objects: 100% (1355/1355), 4.05 MiB | 0 bytes/s, done.
  25. Total 1355 (delta 269), reused 1348 (delta 266)
  26. remote: Resolving deltas: 100% (269/269), done.
  27. To http://10.24.206.143:30880/root/springcloud.git
  28. * [new branch]      master -> master
  29. Branch master set up to track remote branch master from origin.
复制代码


  1. # 获取CA证书
  2. [root@k8s-master-node1 springcloud]# cat /etc/kubernetes/pki/ca.crt
  3. -----BEGIN CERTIFICATE-----
  4. MIIC/jCCAeagAwIBAgIBADANBgkqhkiG9w0BAQsFADAVMRMwEQYDVQQDEwprdWJl
  5. cm5ldGVzMB4XDTI0MDIyNTAzNDAxNloXDTM0MDIyMjAzNDAxNlowFTETMBEGA1UE
  6. AxMKa3ViZXJuZXRlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJUJ
  7. Ps6NpgvLNhrdFFyAO3P8IRwNJM25ijz3rtdO46a1dXXsWN6nVBzmXcYr7QkK9l1V
  8. /X5o8dxS46LXVbwO5gtOtO6Zu0NO55msTVw+HEHoPj2fh9s1tN4WCmtaCzHLz7Cg
  9. w90ze4/SdVx60t58xjzo9vEr6lCb3A39Qqh7DUCyu6J9XuhsjdCx+nPZv6rrKqm1
  10. Fnq4bx4zc4WAfoT4pQ21EQnlLfzKsI34FZjEFXKYSZn+94XXouY5E3Z+DSp9QJOf
  11. /FJtQ5w5f+/58U5s1ja/iEnBOUupn+f5oKbzZHJbk5prPA+vzOce8hQ4+LUcnoJk
  12. fxrTK6KHi5UMQQOtjTMCAwEAAaNZMFcwDgYDVR0PAQH/BAQDAgKkMA8GA1UdEwEB
  13. /wQFMAMBAf8wHQYDVR0OBBYEFHY2aLho7/Eab1m6sJgCq4l/fwDfMBUGA1UdEQQO
  14. MAyCCmt1YmVybmV0ZXMwDQYJKoZIhvcNAQELBQADggEBAG91Daj4DylMJPkF1kba
  15. QsbC6w45gI0A8wqL5dF4Y6FyPNMwUO28t8WBvcsiZ34u5Z67bDx9joYme/0kf/0k
  16. D5w1uBewNt0ronpeTYDsOq+yILRyY5XEY3CdKTXzkst0BkMjttfTHKHOfDy+/Omp
  17. eDtIKopp/BcyRYEQih7Givp1ITqhBQQm8kp6TAU2m0QrtlhebN6349LGOz2CxoQs
  18. p0YikqnEoFjaFSvn40vI6ttdek3cyQAEoNTTQ+zwz80IXCt3ODk1qBYRZdc10aXL
  19. szNtZ0MN2vbKRsJjmvihWBEmjO58DyV/H2ebXMKStBzbK5v4mjKW1Jg9ilra6fGS
  20. H8I=
  21. -----END CERTIFICATE-----
  22. # 获取令牌
  23. [root@k8s-master-node1 springcloud]# kubectl describe secrets -n kube-system default-token-h8h7n
  24. Name:         default-token-tgz8r
  25. Namespace:    kube-system
  26. Labels:       <none>
  27. Annotations:  kubernetes.io/service-account.name: default
  28.               kubernetes.io/service-account.uid: d4111b82-49c8-481b-83ff-ff2619eb3d1b
  29. Type:  kubernetes.io/service-account-token
  30. Data
  31. ====
  32. ca.crt:     1099 bytes
  33. namespace:  11 bytes
  34. token:      eyJhbGciOiJSUzI1NiIsImtpZCI6IjN0Z3RzNDdfT3FGc0pHalJKWi1ZcHZ5TTF4cDB6X2duLWxhanViVkJXLVUifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkZWZhdWx0LXRva2VuLXRnejhyIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImRlZmF1bHQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJkNDExMWI4Mi00OWM4LTQ4MWItODNmZi1mZjI2MTllYjNkMWIiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06ZGVmYXVsdCJ9.RfWmtTwtY-WOXIibVOOsRjcvJRktI9O0pFOpR-VtjfJKVAuwwjxinQC8LaGvFZK9kooTvf1GKA261awk45uj-hZjN7T2rK9glea-D8YqwFRR5y7G6uU_SCqho2h1qC6T6ax30XCMuVgWe5RuvG0rXB1qnT72vy72K2iSCb9M7SuuqI-kElvf5M1l0zmrvN9xCvKebVtwt2hIuMAJW2fgNhiEMmHaXPVmVUYr_G5jrtP73HoDclGC2i2elJAySJXek7pxyzmaOlP7jWXYhaXjiU5BvX_PSUfLSt2PVpOEANNUyBowfZkOhIyoc0QQSd7-Wi0gx3Sd9hMwH7LXHRmt-w
复制代码

  • 将获取的信息分别填入

    2.2.9 构建 CI/CD
    在项目中编写流水线脚本,然后触发自动构建,要求完成构建代码、构建镜 像、推送镜像 Harbor、并发布服务到 Kubernetes 集群。


  1. 将tcp://localhost:2375改为tcp://docker-dind:2375
  2. [root@k8s-master-node1 springcloud]# kubectl edit -n kube-system cm coredns
  3. # 53后面添加一个gitlab
  4. # 添加映射
  5. [root@k8s-master-node1 ~]# cat /etc/hosts
  6. 192.168.100.23 apiserver.cluster.local # 选择这一行
  7. # 登录harbor仓库
  8. [root@k8s-master-node1 springcloud]# docker login 192.168.59.200
  9. Username: admin
  10. Password: (Harbor12345)
  11. WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
  12. Configure a credential helper to remove this warning. See
  13. https://docs.docker.com/engine/reference/commandline/login/#credentials-store
  14. [root@k8s-master-node1 springcloud]# cd ..
  15. [root@k8s-master-node1 cicd-runner]# vim Dockerfile
  16. FROM nginx:latest
  17. RUN echo "Hello Golang In Gitlab CI,go1.10.3,/bin/app" >> /usr/share/nginx/html/index.html
  18. [root@k8s-master-node1 cicd-runner]# docker build -t 10.24.206.143/library/springcloud:master -f Dockerfile .
  19. Sending build context to Docker daemon  2.892GB
  20. Step 1/2 : FROM nginx:latest
  21. ---> de2543b9436b
  22. Step 2/2 : RUN echo "Hello Golang In Gitlab CI,go1.10.3,/bin/app" >> /usr/share/nginx/html/index.html
  23. ---> Running in a5b69ead6f7f
  24. Removing intermediate container a5b69ead6f7f
  25. ---> 193d60448c3d
  26. Successfully built 193d60448c3d
  27. Successfully tagged 10.24.206.143/library/springcloud:master
  28. [root@k8s-master-node1 cicd-runner]# docker push 10.24.206.143/library/springcloud:master
  29. The push refers to repository [10.24.206.143/library/springcloud]
  30. 09c5777979b4: Pushed
  31. a059c9abe376: Pushed
  32. 09be960dcde4: Pushed
  33. 18be1897f940: Pushed
  34. dfe7577521f0: Pushed
  35. d253f69cb991: Pushed
  36. fd95118eade9: Pushed
  37. master: digest: sha256:95218b2f4822bdbe6f937c74b3fe7879998385cd04d74c241e5706294239ee29 size: 177
  38. [root@k8s-master-node1 cicd-runner]# kubectl create ns gitlab
  39. namespace/gitlab created
  40. # 使用刚刚生成的镜像
  41. [root@k8s-master-node1 cicd-runner]# vim deploymeng.yaml
  42. apiVersion: apps/v1
  43. kind: Deployment
  44. metadata:
  45.   creationTimestamp: null
  46.   labels:
  47.     app: gitlab-k8s-demo-dev
  48.   name: gitlab-k8s-demo-dev
  49.   namespace: gitlab
  50. spec:
  51.   replicas: 2
  52.   selector:
  53.     matchLabels:
  54.       app: gitlab-k8s-demo-dev
  55.   strategy: {}
  56.   template:
  57.     metadata:
  58.       creationTimestamp: null
  59.       labels:
  60.         app: gitlab-k8s-demo-dev
  61.     spec:
  62.       containers:
  63.       - image: 10.24.206.143/library/springcloud:master
  64.         name: springcloud
  65.         imagePullPolicy: IfNotPresent
  66.         ports:
  67.         - containerPort: 80
  68. ---
  69. apiVersion: v1
  70. kind: Service
  71. metadata:
  72.   name: gitlab-k8s-demo-dev
  73.   namespace: gitlab
  74. spec:
  75.   ports:
  76.   - port: 80
  77.     nodePort: 30800
  78.   selector:
  79.     app: gitlab-k8s-demo-dev
  80.   type: NodePort
  81. [root@k8s-master-node1 cicd-runner]# kubectl apply -f deploymeng.yaml
  82. deployment.apps/gitlab-k8s-demo-dev created
  83. service/gitlab-k8s-demo-dev configured
  84. [root@k8s-master-node1 cicd-runner]# kubectl get deployments.apps -n gitlab
  85. NAME                  READY   UP-TO-DATE   AVAILABLE   AGE
  86. gitlab-k8s-demo-dev   2/2     2            2           2m11s
  87. [root@k8s-master-node1 cicd-runner]# kubectl get pod -n gitlab
  88. NAME                                   READY   STATUS    RESTARTS   AGE
  89. gitlab-k8s-demo-dev-76c8494bdd-hcwwd   1/1     Running   0          101s
  90. gitlab-k8s-demo-dev-76c8494bdd-hfm2n   1/1     Running   0          101s
  91. [root@k8s-master-node1 cicd-runner]# kubectl get svc -n gitlab
  92. NAME                  TYPE       CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
  93. gitlab-k8s-demo-dev   NodePort   10.96.99.185   <none>        80:30800/TCP   31m
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表