与k8s相关yaml文件
在gitlab所要发布的项目根目录中添加如下两个文件:
summer-deployment.tpl文件内容如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: {APP_NAME}-deployment
labels:
app: {APP_NAME}
spec:
replicas: 1
selector:
matchLabels:
app: {APP_NAME}
template:
metadata:
labels:
app: {APP_NAME}
spec:
containers:
- name: {APP_NAME}
image: {IMAGE_URL}:{IMAGE_TAG} #拉取镜像的地址
imagePullPolicy: IfNotPresent
ports:
- containerPort: 10000
imagePullSecrets:
- name: registry-harbor #这里是去拉取harbor镜像库的secret凭证,在上面“harbor部暑”中创建的
summer-svc.tpl文件内容如下:
apiVersion: v1
kind: Service
metadata:
name: {APP_NAME}-svc
labels:
name: {APP_NAME}
spec:
type: NodePort
ports:
- port: 10000 #k8s集群内部服务之间访问service的入口
protocol: TCP
targetPort: 10000 #pod上的端口
name: http
nodePort: 30000 #提供给外部流量访问k8s集群中service的入口
selector:
app: {APP_NAME} #关联Deployment的标签,注意别写错,要不service关联不上!
注意:service中的 selector一定要跟deployment中的labels一样,要不服务就关联不上pod,我就因为这个写错,出现的现状就是可以通过 podIP + targetPort 访问到项目,但通过集群的 nodeIP + nodeport 访问不到项目。
文档更新时间: 2020-07-01 10:35 作者:子木