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节点上的端口,我这里并没有指定直接随机生成

                        在生产环境里最好指定一下,毕竟需要外部调用,不能总换端口