官網:https://about.gitlab.com/install/#centos-7;官網說明安裝gitlab的機器至少要有4G的記憶體,因為gitlab比較消耗記憶體;這個要搭建的朋友要注意
一、安裝必要的依賴
sudo yum install -y curl policycoreutils-python openssh-server
sudo systemctl enable sshd
sudo systemctl start sshd
sudo firewall-cmd --permanent --add-service=http
sudo systemctl reload firewalld
二、如果想要傳送郵件,就跑一下下面的內容
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
三、新增gitlab的倉庫地址
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash
注意:這個下載倉庫可能速度會很慢,此時可以用國內的倉庫地址
新建檔案 /etc/yum.repos.d/gitlab-ce.repo
內容為
[gitlab-ce]
name=Gitlab CE Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el$releasever/
gpgcheck=0
enabled=1
四、設定gitlab的域名和安裝gitlab
sudo EXTERNAL_URL="https://gitlab.ghy.com" yum install -y gitlab-ee
如果用的是國內倉庫地址,則執行以下命令,其實區別就是ee和ce版
sudo EXTERNAL_URL="https://gitlab.ghy.com" yum install -y gitlab-ce
此時要麼買一個域名,要麼在本地的hosts檔案中設定一下
安裝gitlab伺服器的ip地址 gitlab.ghy.com
假如不想設定域名,可以直接安裝 yum install -y gitlab-ee
五、重新configure
如果沒有成功,可以執行gitlab-ctl reconfigure
六、檢視gitlab執行的情況
gitlab-ctl status可以看到執行gitlab服務所需要的程式
七、訪問
瀏覽器輸入gitlab.ghy.com,此時需要修改root賬號的密碼
八、配置已經安裝好的gitlab
vim /etc/gitlab/gitlab.rb
修改完成之後一定要gitlab-ctl reconfigure
九、jenkins的搭建及流水線指令碼
jenkins的搭建及各種指令碼我在我的jenkins的篇幅中都有寫和說明,這裡我就不再重複說明了,好像我的jenkins篇幅中沒有分享流水線的搭建方式,後面我看下,如果沒寫我到時候再把流水線釋出流程在jenkins篇幅中分享下。
十、Kubernetes拉取映象執行
通過git+jenkins+docker就可以構建一個映象,並將映象推送到映象倉庫中。下面的操作就是基於已經把映象推送到映象倉庫後的操作
1)編寫springboot-demo.yaml檔案
在/root/.jenkins/workspace/scripts/目錄下建立springboot-demo.yaml
# 以Deployment部署Pod apiVersion: apps/v1 kind: Deployment metadata: name: springboot-demo spec: selector: matchLabels: app: springboot-demo replicas: 1 template: metadata: labels: app: springboot-demo spec: containers: - name: springboot-demo image: ghy/springboot-demo:v1.0 ports: - containerPort: 8080 --- # 建立Pod的Service apiVersion: v1 kind: Service metadata: name: springboot-demo spec: ports: - port: 80 protocol: TCP targetPort: 8080 selector: app: springboot-demo --- # 建立Ingress,定義訪問規則 apiVersion: extensions/v1beta1 kind: Ingress metadata: name: springboot-demo spec: rules: - host: springboot.ghy.com http: paths: - path: / backend: serviceName: springboot-demo servicePort: 80
2)編寫k8s-deploy-springboot-demo.sh檔案
vi /root/.jenkins/workspace/scripts/k8s-deploy-springboot-demo.sh
kubectl delete -f springboot-demo.yaml
kubectl apply -f /root/.jenkins/workspace/scripts/springboot-demo.yaml
echo "k8s deploy success!"
3)編寫pipeline;我這裡面沒詳細寫,原因是我預設看這文章的朋友有jenkins流水線釋出專案基礎的朋友看的;在流水線指令碼下追加下面一句話
stage('K8S Deploy') {
sh "/root/.jenkins/workspace/scripts/k8s-deploy-springboot-demo.sh"
}
這樣一來,全流水線在k8s上釋出專案流程就完成了