003--【K8S】进行nginx服务(Deployment)

1、写作背景

购买HUAWEI云进行K8S集群尝试,上一次已经安装kubectl,现在进行正式的服务创建

2、参考网址

  • 使用kube-proxy让外部网络访问K8S service的ClusterIP:https://my.oschina.net/lykops/blog/1616538

3、核心概念

  • 创建nginx_deployment.yaml
  • 创建nginx_service.yaml(ClusterIP)
  • 创建nginx_service.yaml(NodePort)
  • 创建nginx_service.yaml(LoadBalance)

4、核心操作

4.1)创建nginx_deployment负载服务

  • 1、创建nginx_deployment.yaml
  • 进行yaml格式化
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  strategy:
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - image: nginx
          imagePullPolicy: Always
          name: nginx
      imagePullSecrets:
        - name: default-secret

  • 2、执行创建命令
kubectl create -f nginx_deployment.yaml
  • 3、测试功能使用

4.2) 创建nginx_service.yaml(ClusterIP)

创建了pod之后,可以进行正常访问,但是有一个问题:我要的是负载,并不是单个服务访问,此时要使用service进行映射

  • 常见service(ClusterIP)进行负载
apiVersion: v1
kind: Service
metadata:
  name: nginxservice
spec:
  type: ClusterIP
  selector:
    app: nginx
  ports:
    - name: http
      protocol: TCP
      port: 8080
      targetPort: 80
    - name: https
      protocol: TCP
      port: 443
      targetPort: 443
  • 查看service负载的pod
kubectl get endpoints nginxservice

  • 到这里已经完成了pod负载

但是这个IP是集群内部IP,外部没有办法进行访问,但是这个私有IP没有那么简单直接和大网IP挂载一起,要用service其他类型进行暴露


4.3) 创建nginx_service.yaml(NodePort)

  • 创建nginx_service.yaml(NodePort)
apiVersion: v1
kind: Service
metadata:
  name: nginxservice
spec:
  type: NodePort
  selector:
    app: nginx
  ports:
    - name: http
      nodePort: 30001
      protocol: TCP
      port: 8080
      targetPort: 80
    - name: https
      nodePort: 30002
      protocol: TCP
      port: 443
      targetPort: 443
  • 查看service状态
  • 查看service负载
  • 测试外网联通性
  • 测试外网访问
  • 此时service的外网访问已经配置完成,可以进行pod的负载了

4.3) 创建nginx_service.yaml(LoadBalance)
4.4) 创建Ingress进行负载(后续补充)


5、操作总结

至此:我们已经完成了deployment创建pod,然后用 service进行服务负载,让外部API进行访问

  • 博客内容已经上传到百度云,需要的朋友自行下载

链接:https://pan.baidu.com/s/1v6oWBK59UHwmXqnKvFwkFA
提取码:vfyt

你可能感兴趣的:(003--【K8S】进行nginx服务(Deployment))