入职了一个新公司,搞k8s的,此博客记录遇到的问题,和如何处理

1. 公司实现无感知进行发布,也相当于项目不进行中中断,使用的资源是deploy,配置文件如下:健康检查就暂时不进行填写了

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: nginx
  name: nginx
spec:
  replicas: 4
  selector:
    matchLabels:
      app: nginx
  strategy:
    type: RollingUpdate # 配置滚动更新
    rollingUpdate:
      maxSurge: 100% # 期望ready的副本数比
      maxUnavailable: 0 # 可以理解为不可调度资源副本数为0个
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - image: nginx
        name: nginx
        resources:
          limits:
            cpu: 1536m             #限制pod申请最大的cpu数量为1个cpu
            memory: 1024Mi        #申请内存最大值
          requests:
            cpu: 200m            # 最小使用限制
            memory: 200Mi        # 限制
        startupProbe:	# 启动探针
          httpGet:
            path: /monitor/info 
            port: 80
            scheme: HTTP
          initialDelaySeconds: 400 # 初始化时间,这个主要是看业务启动的时候是否出现慢的情况,需要进行加载一些配置
          timeoutSeconds: 10 # 超时间
          periodSeconds: 10 # 检测间隔
          successThreshold: 1 # 检测成功一次代表可以接受接收浏览数据
          failureThreshold: 5 # 检测2此访问失败测拒绝流量数据
        readinessProbe: # 就绪探针
          httpGet: # 通过访问的方式进行检测
            path: /monitor/info # 默认页面
            port: 80    # 访问80端口
            scheme: HTTP # http请求
          initialDelaySeconds: 400 # 初始化时间,这个主要是看业务启动的时候是否出现慢的情况,需要进行加载一些配置
          timeoutSeconds: 10 # 超时间
          periodSeconds: 10 # 检测间隔
          successThreshold: 1 # 检测成功一次代表可以接受接收浏览数据
          failureThreshold: 5 # 检测2此访问失败测拒绝流量数据
        livenessProbe: # 存活探针
          tcpSocket:
            port: 80
          initialDelaySeconds: 400 # 初始化时间,这个主要是看业务启动的时候是否出现慢的情况,需要进行加载一些配置
          timeoutSeconds: 10 # 超时间
          periodSeconds: 10 # 检测间隔
          successThreshold: 1 # 检测成功一次代表可以接受接收浏览数据
          failureThreshold: 5 # 检测2此访问失败测拒绝流量数据

docker 安装成功之后,出现无法使用的情况,如下:docker有的版本已经废弃掉这个参数了

因为公司使用的xfs的磁盘导致的。xfs文件系统却不支持d-type,需要在配置文件中进行添加:“storage-driver”:“devicemapper”,即可,如下图所示:

在这里插入图片描述

在这里插入图片描述

公司测试环境k8s内部pod要和办公环境进行打通

  1. 第一种方式可以参考:http://www.caotama.com/1941670.html
  2. 第二种方式受用openvpn进行打通 # 测试是可以的,openvpn在k8s可以访问到pod节点中进行配置即可,
    可以在百度网盘中进行下载:失效请联系我
链接:https://pan.baidu.com/s/1Ej7a8Ug-_5ApeV0bCN_Ddg?pwd=zudx 
提取码:zudx 
--来自百度网盘超级会员V4的分享
 

如图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

ingres转发txt文件

场景描述:
公司架构是ingress》svc》deploy》pod,pod镜像相当于直接是java -jar启动的,(没有静态文件,所以无法在nginx层进行配置)

一,让开发进行修改在代码层面进行配置

二,进行配置ingress-nginx参数:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    nginx.ingress.kubernetes.io/server-snippet: | # 这个参数也是一个大佬进行指点的才知道的,官网有说明这个参数,但是没有找到直接配置location
      location = /union.txt {
          default_type    text/plain;
          return 200 "6ed645f4a97ad2fd887c01abdc8802d7";
      }
  name: www.lu0601.top # ingress-nginx的名字
spec:
  ingressClassName: nginx
  rules:
  - host: www.lu0601.top
    http:
      paths:
      - path: /
        pathType: ImplementationSpecific
        backend:
          service:
            name: jenkins # 模拟java启动的页面
            port:
              number: 8080

公司java下项目莫名其妙挂掉,日志也没有显示什么有用的问题

Dockerfile打包命令如下:此方式相当于默认是21MB,需要修改大一点:
在这里插入图片描述
修改后在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐