服务yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: link-web
namespace: tophc
spec:
replicas: 1
strategy:
type: RollingUpdate
template:
metadata:
labels:
app: link-web
spec:
imagePullSecrets:
- name: tophc-harbor
containers:
- name: link-web
env:
- name: springProfiles
value: prod
- name: TZ
value: CST-8
image: harzzzzzozphc.top/tophc/link-web:latest
imagePullPolicy: Always
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
labels:
app: link-web
name: link-web
namespace: tophc
spec:
ports:
- name: http
port: 80
targetPort: 80
selector:
app: link-web
type: ClusterIP
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
labels:
env: prod
project: tophc
service: link-web
name: link-web-80
namespace: tophc
spec:
rules:
- host: link.tophc.top
http:
paths:
- backend:
serviceName: link-web
servicePort: 80
path: /
打包脚本
#!/bin/bash
sh -x
echo "打包构建"
docker build . -t hazzzzz.top/tophc/link-web:${BUILD_NUMBER}
docker push hazzzhc.top/tophc/link-web:${BUILD_NUMBER}
docker rmi -f hzzzzztzzphc.top/tophc/link-web:${BUILD_NUMBER}
#!/bin/bash
sh -x
echo "自动发布"
CLUSTER_NAME="tks-nodepool-37065081.dc2.tophc.top"
NAMESPACE="txxxhc"
kubectl --context ${CLUSTER_NAME} set image deployment/link-web link-web=harborxxxc.top/txxxhc/link-web:${BUILD_NUMBER} --namespace=${NAMESPACE}
kubectl --context ${CLUSTER_NAME} rollout status deployment link-web --namespace=${NAMESPACE}
if [ $? -ne 0 ];then
echo "发布失败"
exit 1
else
echo "..."
fi
#!/bin/bash
sh -x
echo "自动清理镜像"
harbor_url="harbor.txxx.top"
USER="jenkins"
PASSWD="Txxxx!@#"
project1="xxxx"
project2="link-web"
if [ $BUILD_NUMBER -gt 30 ]; then
tag=$(($BUILD_NUMBER-30))
echo "$BUILD_NUMBER great than 30, ${tag}'s image will be deleted!"
curl -u "$USER:$PASSWD" -X DELETE -H "Content-Type: application/json" -k "https://${harbor_url}/api/repositories/${project1}/${project2}/tags/${tag}"
elif [ $BUILD_NUMBER -lt 30 ]; then
echo "$BUILD_NUMBER less than 30"
else
echo $BUILD_NUMBER equal 30
fi