- Dockerfile文件编写
#基础镜像,如果本地仓库没有,会从远程仓库拉取 openjdk:8
FROM openjdk:8
#暴露端口
EXPOSE 9301
#容器中创建目录
RUN mkdir -p /usr/local/java
#编译后的jar包copy到容器中创建到目录内 ../../realize-gateway
COPY realize-auth.jar /usr/local/java/realize-auth.jar
#指定容器时区
RUN rm -f /etc/localtime \
&& ln -sv /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
&& echo "Asia/Shanghai" > /etc/timezone
#指定容器启动时要执行的命令
ENTRYPOINT ["java","-jar","-Dspring.profiles.active=server","/usr/local/java/realize-auth.jar"]
- kubectl 定义资源文件
apiVersion: v1
kind: Service
metadata:
name: $IMG_NAME
namespace: rz
labels:
app: $IMG_NAME
spec:
type: ClusterIP
ports:
- name: tcp-9301-9301
port: 9301
protocol: TCP
targetPort: 9301
selector:
app: $IMG_NAME
---
apiVersion: apps/v1
kind: Deployment #对象类型
metadata:
name: $IMG_NAME #名称
namespace: rz
labels:
app: $IMG_NAME #标注
spec:
replicas: 1 #运行容器的副本数,修改这里可以快速修改分布式节点数量
selector:
matchLabels:
app: $IMG_NAME
template:
metadata:
labels:
app: $IMG_NAME
spec:
containers: #docker容器的配置
- name: $IMG_NAME
# env:
# - name: aliyun_logs_catalina
# value: stdout
image: rz-image-server-registry-vpc.cn-shanghai.cr.aliyuncs.com/rz-real/$IMG_NAME:$IMG_TAG # pull镜像的地址 ip:prot/dir/images:tag
imagePullPolicy: Always #pull镜像时机,
ports:
- containerPort: 9301 #容器对外开放端口,需与springboot配置文件一致
volumeMounts:
- name: time-config
mountPath: /etc/localtime
readOnly: true
- name: volume-logs
mountPath: /logs
subPath: logs
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 10m
memory: 50Mi
#从私有仓库拉取镜像凭证
imagePullSecrets:
- name: miyue-vpc
volumes:
- name: time-config
hostPath:
path: /usr/share/zoneinfo/Asia/Shanghai
- name: volume-logs
persistentVolumeClaim:
claimName: nas-volume-claim-real
- 一键shell脚本部署pod
echo "开始制作镜像..."
image_name=realize-auth
image_tag=`date +%Y-%m-%d-%H-%M-%S` #_%H%M
echo "当前时间版本号:$image_tag"
docker build -t ${image_name}:${image_tag} .
echo "制作镜像成功!"
echo "登录"
sudo docker login --username=aliyun03 rz-dt-image-server-registry-vpc.cn-shanghai.cr.aliyuncs.com --password=1234
echo "镜像最新版本提交"
docker tag ${image_name}:${image_tag} rz-dt-image-server-registry-vpc.cn-shanghai.cr.aliyuncs.com/rz-dt-real/${image_name}:${image_tag}
docker push rz-dt-image-server-registry-vpc.cn-shanghai.cr.aliyuncs.com/rz-dt-real/${image_name}:${image_tag}
echo "k8s一键部署"
export IMG_TAG=${image_tag}
export IMG_NAME=${image_name}
envsubst < ${image_name}'-real'.yaml | kubectl --kubeconfig ~/.kube-rz-real/config apply -f -