1,
apiVersion: extensions/v1beta1 kind: Deployment metadata: name: alpine7-deploy labels: app: alpine7-deploy spec: replicas: 3 selector: matchLabels: name: alpine7-deploy template: metadata: labels: name: alpine7-deploy spec: containers: - name: alpine7 image: harbor.studeylinux.com/superjia/alpine-jdk7-tomcat7 ports: - containerPort: 8080 imagePullSecrets: - name: harbor
这里有一点要注意,containerPORT 是指容器内部tomcat运行时的端口,也就是说,server.xml上配置的什么端口,这里就要写什么
2,
apiVersion: v1 kind: Service metadata: name: alpine7-deploy labels: name: alpine7-deploy spec: selector: name: alpine7-deploy ports: - protocol: TCP port: 80 targetPort: 8080 type: NodePort
这里有必要区分下端口:
port:是集群内部访问的端口,也就是说,集群内部其他服务用clusterip+port来进行访问
targetPort: 实际上是pod 端口就是容器映射在pod 上的访问端口(这里要注意一下,端口号一定要和containerPORT的值一样,因为他俩实际上是会回事)
nodeport:这个就好理解了,就是容器映射在node节点上的端口,我这里并没有指定直接随机生成
在生产环境里最好指定一下,毕竟需要外部调用,不能总换端口