整體流程:html
在第四十三章 微服務CICD(5)- gitlab + jenkins + docker中,實現了前兩步。本節實現第三步java
1、打通jenkins與k8s-master兩臺機器之間的ssh無密碼訪問node
參考:第四十二章 微服務CICD(4)- jenkins + gitlab + webhooks + publish-over-ssh(2)git
添加ssh server:web
說明:因爲不須要拷貝jenkins機器上的文件到10.211.55.6,因此Remote Directory不填。docker
2、jenkins服務配置api
選擇機器,執行命令。瀏覽器
3、k8s-master(10.211.55.6)bash
一、在/data/目錄下建立rc和svc文件app
1.一、myservice1-docker-rc.yaml
1 apiVersion: v1 2 kind: ReplicationController 3 metadata: 4 name: myservice1-docker 5 spec: 6 replicas: 2 7 selector: 8 app: myservice1-docker 9 template: 10 metadata: 11 labels: 12 app: myservice1-docker 13 spec: 14 containers: 15 - name: myservice1-docker 16 image: 10.211.55.4:5000/com.xxx/myservice1-docker:1.0-SNAPSHOT 17 imagePullPolicy: Always 18 ports: 19 - containerPort: 8080
說明:imagePullPolicy:
1.二、myservice1-docker-svc.yaml
1 apiVersion: v1 2 kind: Service 3 metadata: 4 name: myservice1-docker 5 spec: 6 type: NodePort 7 ports: 8 - port: 8080 9 nodePort: 30001 10 selector: 11 app: myservice1-docker
二、在/data/script/目錄下建立service_start.sh腳本
1 #!/bin/bash 2 export service_name=$1 3 sleep_second=3 4 5 echo 'kubectl delete rc ${service_name}' 6 kubectl delete rc ${service_name} 7 8 echo 'kubectl delete service ${service_name}' 9 kubectl delete service ${service_name} 10 11 echo 'kubectl delete pods -l app=${service_name}' 12 kubectl delete pods -l app=${service_name} 13 14 sleep ${sleep_second} 15 16 echo 'create rc' 17 kubectl create -f /data/${service_name}-rc.yaml 18 19 echo 'create service' 20 kubectl create -f /data/${service_name}-svc.yaml
說明:
3、測試
一、本地:
二、查看jenkins的console
三、瀏覽器訪問http://10.211.55.8:30001/docker/hello