k8s pod deployment service ingress 关系

需求:

  • 在搭建好k8s 后搭建对应的服务

  • 在搭建服务之前需要对每个模板有一个基本的认知不然搭起来感觉莫名其妙的

  • 做了一个demo k8s 配置ingress 并做一个demo

进程:

  • 初始搭建服务最基础的单位是pod

  • pod 就相当于是 Docker 的一个容器,可以认为这是一个微服务比如:mysql,redis 等

  • daemonSet 是pod 上的一个守护进程,正常流程下我们可以忽略这个东西都存在,因为他是自动的,但如果你要进行日志收集等行为,可以通过这个来实现

  • pod 可以通过 Deployment 直接创建,也可以通过 Service 来创建,Deployment 和 Service有不一样的权能

  • Deployment 可以进行弹性伸缩,动态部署服务,回滚等服务

kind: Deployment
apiVersion: apps/v1
metadata:
  name: JavaApp #selector 关联的lable
spec: #pod 相关的配置
  replicas: 1 #pod 的个数
  selector:
    matchLabels:
      test: JavaApp #查找pod 匹配的标签
  template: #pod 的模板信息
    metadata:
      labels:
        test: JavaApp #pod 的标签要和上面保持一致
    spec: #容器信息
      strategy: 
        type: RollingUpdate
        rollingUpdate:  # 滚动更新策略
          maxUnavailable: 2 # 先下线两个
          maxSurge: 0
      containers:
      - image: nginx
        name: JavaApp
        ports:  
        - containerPort: 8080 #容器暴露的端口
        readinessProbe:
          httpGet:
            port: 80
            path: /
          initialDelaySeconds: 60 #容器启动后第一次执行探测是需要等待多少秒
          periodSeconds: 10 #执行探测的频率。默认是 10 秒,最小 1 秒
          timeoutSeconds: 10 #探测超时时间。默认 1 秒,最小 1 秒。
          failureThreshold: 10 #探测成功后,最少连续探测失败多少次才被认定为失败。默认是 3。最小值是 1。
  • 正常更新修改yaml 文件里的镜像地址, 然后 重新 apply 一下就会动态更新

  • service 只要是提供一个负载均衡的作用并作为一个服务的唯一入口

apiVersion: v1
kind: Service
metadata:
  name: myapp
  namespace: default
spec:
  selector:
    app: myapp
    rel: stable
  ports:
  - name: http
    port: 80 #service的端口
    targetPort: 80 #pod 容器的端口
    nodePort: 30008 #NodeIP联合使用的端口
  • 以上的都是对集群内部的服务,顶多service 暴露一个nodePort 可以让外部访问一下,但也不是什么优解

  • ingress 对外提供的服务

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: ingress-myapp
  namespace: default
  annotations:
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
  - host: www.myapp.com # 主机名,只能是域名,修改为项目域名
    http:
      paths:
      - path: /
        backend:
          serviceName: myapp # 后台部署的 Service Name
          servicePort: 80 # 后台部署的 Service Port

你可能感兴趣的:(k8s,k8s)