k8s——通过暴漏端口实现外部访问服务

通过nodeport暴漏端口

    修改nginx-service.yaml文件
apiVersion: v1
kind: Service
metadata:
  name: nginxdeploy
spec:
  type: NodePort
  ports:
  - port: 82
    protocol: TCP
    targetPort: 80
    name: http
    nodePort: 30055
  selector:
    name: nginxdeploy

创建service

kubectl create -f nginx-service.yaml

查看

kubectl get svc

访问

    任意节点IP+端口号

通过ingress暴露端口

安装ingress

    编写ingress.yaml

创建ingress

kubectl create -f ingress.yaml
解析一个域名到任意node节点,访问域名将得到一个404页面

创建nginx-service.yanl

apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  selector:
    app: nginx
  ports:
  - name: nginx
    protocol: TCP
    port: 80
    targetPort: 80
kubectl create -f nginx-service.yaml

创建nginx-ingress.yaml

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: my-ingress-for-nginx  # Ingress 的名字,仅用于标识
spec:
  rules:                      # Ingress 中定义 L7 路由规则
  - host: node   # 根据 virtual hostname 进行路由(使用自己的域名)
    http:
      paths:                  # 按路径进行路由
      - path: /
        backend:
          serviceName: nginx  # 指定后端的 Service 为之前创建的 nginx-service
          servicePort: 80
kubectl create -f nginx-ingress.yaml
    配置dns解析,在浏览器输入域名即可
经验分享 程序员 微信小程序 职场和发展