K8S学习(一)

布满荆棘的人生 2022-09-03 07:26 310阅读 0赞

1、部署Gitlab

1.1 部署Gitlab

  1. mkdir gitlab
  2. cd gitlab
  3. docker run -d \
  4. --name gitlab \
  5. -p 8443:443 \
  6. -p 9999:80 \
  7. -p 9998:22 \
  8. -v $PWD/config:/etc/gitlab \
  9. -v $PWD/logs:/var/log/gitlab \
  10. -v $PWD/data:/var/opt/gitlab \
  11. -v /etc/localtime:/etc/localtime \
  12. --restart=always \
  13. lizhenliang/gitlab-ce-zh:latest

访问地址:http://IP:9999

初次会先设置管理员密码 ,然后登陆,默认管理员用户名root,密码就是刚设置的。

1.2 创建项目,提交测试代码

进入后先创建项目,提交代码,以便后面测试。

  1. unzip tomcat-java-demo-master.zip
  2. cd tomcat-java-demo-master
  3. git init
  4. git remote add origin http://192.168.31.70:9999/root/java-demo.git
  5. git add .
  6. git config --global user.email "you@example.com"
  7. git config --global user.name "Your Name"
  8. git commit -m 'all'
  9. git push origin master

2、部署Harbor镜像仓库

2.1 安装docker与docker-compose

2.2 解压离线包部署

  1. # tar zxvf harbor-offline-installer-v2.0.0.tgz
  2. # cd harbor
  3. # cp harbor.yml.tmpl harbor.yml
  4. # vi harbor.yml
  5. hostname: reg.ctnrs.com
  6. https: # 先注释https相关配置
  7. harbor_admin_password: Harbor12345
  8. # ./prepare
  9. # ./install.sh

2.3 在Jenkins主机配置Docker可信任,如果是HTTPS需要拷贝证书

由于habor未配置https,还需要在docker配置可信任。

  1. # cat /etc/docker/daemon.json
  2. {"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"],
  3. "insecure-registries": ["192.168.31.70"]
  4. }
  5. # systemctl restart docker

3、部署Jenkins

3.1 准备JDK和Maven环境

将二进制包上传到服务器并解压到工作目录,用于让Jenkins容器挂载使用。

  1. # tar zxvf jdk-8u45-linux-x64.tar.gz
  2. # mv jdk1.8.0_45 /usr/local/jdk
  3. # tar zxf apache-maven-3.5.0-bin.tar.gz
  4. # mv apache-maven-3.5.0 /usr/local/maven

修改Maven源:

  1. vi /usr/local/maven/conf/setting.xml
  2. <mirrors>
  3. <mirror>
  4. <id>central</id>
  5. <mirrorOf>central</mirrorOf>
  6. <name>aliyun maven</name>
  7. <url>https://maven.aliyun.com/repository/public</url>
  8. </mirror>
  9. </mirrors>
  10. docker run -d --name jenkins -p 80:8080 -p 50000:50000 -u root \
  11. -v /opt/jenkins_home:/var/jenkins_home \
  12. -v /var/run/docker.sock:/var/run/docker.sock \
  13. -v /usr/bin/docker:/usr/bin/docker \
  14. -v /usr/local/maven:/usr/local/maven \
  15. -v /usr/local/jdk:/usr/local/jdk \
  16. -v /etc/localtime:/etc/localtime \
  17. --restart=always \
  18. --name jenkins jenkins/jenkins

访问地址:http://IP

3.2 安装插件

管理Jenkins->系统配置–>管理插件–>搜索git/pipeline,选中点击安装。

默认从国外网络下载插件,会比较慢,建议修改国内源:

  1. cd /opt/jenkins_home/updates
  2. sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.tuna.tsinghua.edu.cn\/jenkins/g' default.json && \
  3. sed -i 's/http:\/\/www.google.com/https:\/\/www.baidu.com/g' default.json
  4. docker restart jenkins

4、发布测试

4.1 创建项目并配置

New Item -> Pipeline -> This project is parameterized -> String Parameter

  • Name:Branch # 变量名,下面脚本中调用
  • Default Value:master # 默认分支
  • Description:发布的代码分支 # 描述

4.2 Pipeline脚本

  1. #!/usr/bin/env groovy
  2. def registry = "192.168.31.70"
  3. def project = "dev"
  4. def app_name = "java-demo"
  5. def image_name = "${registry}/${project}/${app_name}:${Branch}-${BUILD_NUMBER}"
  6. def git_address = "http://192.168.31.70:9999/root/java-demo.git"
  7. def docker_registry_auth = "796b3651-c0b1-4429-b32a-288e0fa66c77"
  8. def git_auth = "35ad5e6a-d132-4cac-9d74-d65223a2d8c0"
  9. pipeline {
  10. agent any
  11. stages {
  12. stage('拉取代码'){
  13. steps {
  14. checkout([$class: 'GitSCM', branches: [[name: '${Branch}']], userRemoteConfigs: [[credentialsId: "${git_auth}", url: "${git_address}"]]])
  15. }
  16. }
  17. stage('代码编译'){
  18. steps {
  19. sh """
  20. pwd
  21. ls
  22. JAVA_HOME=/usr/local/jdk
  23. PATH=$JAVA_HOME/bin:/usr/local/maven/bin:$PATH
  24. mvn clean package -Dmaven.test.skip=true
  25. """
  26. }
  27. }
  28. stage('构建镜像'){
  29. steps {
  30. withCredentials([usernamePassword(credentialsId: "${docker_registry_auth}", passwordVariable: 'password', usernameVariable: 'username')]) {
  31. sh """
  32. echo '
  33. FROM ${registry}/library/tomcat:v1
  34. LABEL maitainer lizhenliang
  35. RUN rm -rf /usr/local/tomcat/webapps/*
  36. ADD target/*.war /usr/local/tomcat/webapps/ROOT.war
  37. ' > Dockerfile
  38. docker build -t ${image_name} .
  39. docker login -u ${username} -p '${password}' ${registry}
  40. docker push ${image_name}
  41. """
  42. }
  43. }
  44. }
  45. stage('部署到Docker'){
  46. steps {
  47. sh """
  48. REPOSITORY=${image_name}
  49. docker rm -f tomcat-java-demo |true
  50. docker container run -d --name tomcat-java-demo -p 88:8080 ${image_name}
  51. """
  52. }
  53. }
  54. }
  55. }

上述脚本中,docker_registry_auth 和git_auth变量的值为Jenkins凭据ID,添加凭据后修改。

4.3 添加凭据

管理Jenkins->安全–>管理凭据->Jnekins->添加凭据->Username with password

  • Username:用户名
  • Password:密码
  • ID:留空
  • Description:描述

分别添加连接git和harbor凭据,并修改脚本为实际凭据ID。

讲师:李振良

官方网站: http://www.ctnrs.com

发表评论

表情:
评论列表 (有 0 条评论,310人围观)

还没有评论,来说两句吧...

相关阅读