使用k8s部署第一个应用

创建一个nginx.yaml文件

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  # 指定 label,便于检索
  labels:
    app: nginx
spec:
  containers:
    - name: nginx
      # 指定镜像
      image: nginx:alpine
      # 指定暴露端口
      ports:
        - containerPort: 80

---
# 创建网络服务
apiVersion: v1
kind: Service
metadata:
  name: kube-node-service
  labels:
    name: kube-node-service
spec:
  type: NodePort      #这里代表是NodePort类型的
  ports:
    - port: 80          #这里的端口和clusterIP(10.97.114.36)对应,即10.97.114.36:80,供内部访问。
      targetPort: 80  #端口一定要和container暴露出来的端口对应,nodejs暴露出来的端口是8081,所以这里也应是8081
      protocol: TCP
      nodePort: 32143   # 所有的节点都会开放此端口,此端口供外部调用。

  selector:
    app: nginx          #这里选择器一定要选择容器的标签,之前写name:kube-node是错的。

执行指令:

sudo kubectl create -f nginx.yaml

查看 服务

sudo kubectl get service

查看 pod

sudo kubectl get pod

访问:

ip:32143

就可以看到ngixn的欢迎页面啦

同一个service开启多个端口

一般我们只有一个端口的时候,在service的yaml文件:

ports:
  - nodePort: 8482
    port: 8080
    protocol: TCP
    targetPort: 8080

而如果你想开两个端口,直接复制粘贴可不行,k8s会提示你必须要加上name。所以,如果要开多端口,要为每个port都指定一个name,如:

ports:
  - name: http
    nodePort: 8482
    port: 8080
    protocol: TCP
    targetPort: 8080

--完--