03 2021 档案
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 staticPod 即静态 Pod。k8s 系统组件的 Pod 都是以静态 Pod 的方式启动的。 示例 Pod.yaml apiVersion: v1 kind: Pod metadata: name: sp
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 shareProcessNamespace 表示 Pod 中的容器需要共享命名空间。 示例 Pod.yaml apiVersion: v1 kind: Pod metadata: name: spring-k8
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 在 Pod 配置容器的时候,containers 字段是一个数组,也就是说,可以在一个 Pod 中配置多个容器。 示例 Pod.yaml apiVersion: v1 kind: Pod metadata: n
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 对于 QoS 类为 Guaranteed 的 Pod: Pod 中的每个容器,包含初始化容器,必须指定内存请求和内存限制,并且两者要相等。 Pod 中的每个容器,包含初始化容器,必须指定 CPU 请求和 CPU
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 如果满足下面条件,将会指定 Pod 的 QoS 类为 Burstable: Pod 不符合 Guaranteed QoS 类的标准。 Pod 中至少一个容器具有内存或 CPU 请求。 示例 Pod.yaml a
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 Pod 中的容器没有设置内存和 CPU 限制或请求,则就是 BestEffort。 示例 Pod.yaml apiVersion: v1 kind: Pod metadata: name: spring-k8s
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 qosClass 表示服务质量类型(Quality of Service),这个字段是根据请求的内存和 CPU 来进行确定的。 其中包含三种类型:Guaranteed,Burstable 和 BestEffor
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 除了之前学习过的四种条件外,readinessGates 可以自定义 Pod 条件信息。 示例 Pod.yaml apiVersion: v1 kind: Pod metadata: name: spring-
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 Pod 的 containerStatuses 代表了其中运行的容器的状态。 示例 Pod.yaml apiVersion: v1 kind: Pod metadata: name: spring-k8s sp
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 Pod 的 conditions 表示了 Pod 的一些条件,是一个数组。 里面包含一些 Pod 必须满足的条件,只有所有的条件为 True 时,Pod 才可以提供服务。 示例 Pod.yaml apiVers
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 Pod 的状态字段都是一些只读的字段,可以给我们提供额外的信息。 示例 Pod.yaml apiVersion: v1 kind: Pod metadata: name: spring-k8s spec: co
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 topologySpreadConstraints 表示拓扑分布约束,可以控制 Pod 在某些节点的分布。 示例 设置地点分布 [root@master ~]# kubectl get nodes --show
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 terminationGracePeriodSeconds 可以定义优雅关闭的宽限期,即在收到停止请求后, 有多少时间来进行资源释放或者做其它操作,如果到了最大时间还没有停止,会被强制结束。 默认值:30。 示
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 前面发现将 Pod 调度到 master 节点的时候,有个污点,不能被调度上去。 tolerations 即容忍度,可以容忍污点,直接调度上去。 示例 Pod.yaml apiVersion: v1 kind:
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 nodeSelector 可以将 Pod 指定到某个节点运行,和 nodeName 不同的是它使用标签选择。 示例 Pod.yaml apiVersion: v1 kind: Pod metadata: nam
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 nodeName 可以直接指定一个调度的节点。 示例 Pod.yaml apiVersion: v1 kind: Pod metadata: name: spring-k8s spec: containers:
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 hostname 可以指定主机的名称。 示例 Pod.yaml apiVersion: v1 kind: Pod metadata: name: spring-k8s spec: containers: - n
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 hostPID 可以设置容器里是否可以看到宿主机上的进程。 示例 Pod.yaml apiVersion: v1 kind: Pod metadata: name: spring-k8s spec: conta
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 hostNetwork 可以直接使用宿主机的网络。 示例 Pod.yaml apiVersion: v1 kind: Pod metadata: name: spring-k8s spec: container
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 hostAliases 可以在 /etc/host 文件中设置别名。 示例 Pod.yaml apiVersion: v1 kind: Pod metadata: name: spring-k8s spec:
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 enableServiceLinks 表示是否将 Service 的相关信息注入到 Pod 的环境变量中,默认是 true。 示例 Pod.yaml apiVersion: v1 kind: Pod metad
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 activeDeadlineSeconds 表示 Pod 可以运行的最长时间,达到设置的该值后,Pod 会自动停止。 示例 Pod.yaml apiVersion: v1 kind: Pod metadata:
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 直接创建一个 Pod,查看其 metadata 字段的值。 示例 Pod.yaml apiVersion: v1 kind: Pod metadata: name: spring-k8s spec: conta
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 默认情况容器退出时,退出信息会从文件中读取。可以通过 terminationMessagePolicy 来修改。 将 terminationMessagePolicy 修改为:FallbackToLogsOnE
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 terminationMessagePath 表示容器的异常终止消息的路径,默认在 /dev/termination-log 下。 当容器退出时,可以通过容器的状态看到退出信息。 示例 Pod.yaml api
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 startupProbe 表示启动探针,和之前学习的两种探针字段一致。 启动探针在成功之前,另外的探针不会启动。这个主要用于启动事件长且不固定的容器。 在探测到成功之后,启动探针不会再进行探测了。 示例 Pod
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 之前学习到了存活探针(livenessProbe),readinessProbe 表示就绪探针,它们的字段一样。 就绪探针表示的意思是:就绪探针成功了,才会将流量转发到容器里,否则不会有流量进来。 示例 Pod
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 将容器中的服务暴露到宿主机的端口上时,可以指定绑定的宿主机 IP。 示例 Pod.yaml apiVersion: v1 kind: Pod metadata: name: spring-k8s spec: c
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 在指定容器的端口时,可以指定 hostPort 字段,这样就可以将服务暴露到宿主机的端口上进行访问。 不过这样有一些缺点,首先是多个服务不能使用同一个端口,其次是只能访问调度宿主机的 IP。 示例 Pod.ya
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 在指定容器的端口时,可以指定一个名称,其它地方使用这个端口时,可以直接通过名称引用。 protocol 在指定端口时,可以定义协议,默认情况下,是 TCP 协议。 示例 Pod.yaml apiVersion:
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 容器的 ports 字段是一个数组,可以指定多个端口。需要注意的是,未指定的端口也不会被阻拦, 指定端口只是提供了一种信息,方便查看。 示例 Pod.yaml apiVersion: v1 kind: Pod
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 workingDir 可以设置进入容器的目录,没有设置的情况下,默认进入根目录。 示例 Pod.yaml apiVersion: v1 kind: Pod metadata: name: busybox spe
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 容器的 tty 字段表示是否需要给容器分配一个终端。 示例 Pod.yaml apiVersion: v1 kind: Pod metadata: name: busybox spec: containers:
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 容器的 stdin 字段表示是否需要给容器分配一个标准输入。 示例 Pod.yaml apiVersion: v1 kind: Pod metadata: name: busybox spec: contain
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 timeoutSeconds 执行探测的超时的秒数,默认值 1,最小值 1。 示例 Pod.yaml 定义一个探针需要两秒的命令。 apiVersion: v1 kind: Pod metadata: name
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 successThreshold 表示探针的成功的阈值,在达到该次数时,表示成功。 默认值为 1,表示只要成功一次,就算成功了。 示例 Pod.yaml apiVersion: v1 kind: Pod met
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 failureThreshold 表示探针的最大失败次数,如果达到了最大的失败次数, 在存活性探针的情况,容器将重新启动。 示例 Pod.yaml apiVersion: v1 kind: Pod metada
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 新建 Spring Boot 项目,提供一个 GET 请求来修改项目的存活探针。 示例 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 periodSeconds 表示探针的探测周期,默认情况下是 10 秒。 下面演示将周期修改成 5 秒。 示例 Pod.yaml apiVersion: v1 kind: Pod metadata: name:
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 在查看 Spring Boot 项目输出的时候,看到时间不正确,比当前时间少 8 个小时, 这是由于时区不对导致的,可以通过环境变量的方式,设置正确的时区。 示例 Pod.yaml apiVersion: v1
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 initialDelaySeconds 表示在容器启动后,延时多少秒才开始探测。 之前出现过进行存活探测时失败,就是因为容器启动后直接进行探测,里面的服务还未启动好。 下面演示延时 30 秒进行探测。 示例 P
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 livenessProbe 是一个存活性探针,可以通过多种方式定义存活性探针。 下面通过 httpGet 的方式定义一个存活性探针,Spring Boot 2.3 之后内置了存活性探针。 示例 Pod.yaml
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 livenessProbe 是一个存活性探针,可以通过多种方式定义存活性探针。 下面通过 tcpSocket 的方式定义一个存活性探针。 示例 Pod.yaml apiVersion: v1 kind: Pod
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M3 目标 livenessProbe 是一个存活性探针,可以通过多种方式定义存活性探针。 下面通过 exec 的方式定义一个存活性探针,并且让其失败。 示例 Pod.yaml apiVersion: v1 kind: P
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M2 目标 在容器结束前,访问一个 HTTP 的 GET 请求。 示例 Pod.yaml apiVersion: v1 kind: Pod metadata: name: busybox spec: containers:
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M2 目标 在容器启动后,访问一个 HTTP 的 GET 请求。 示例 Pod.yaml apiVersion: v1 kind: Pod metadata: name: busybox spec: containers:
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M2 目标 在容器结束前,执行一个命令。 执行命令 Pod.yaml apiVersion: v1 kind: Pod metadata: name: busybox spec: containers: - name: b
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M2 目标 在容器启动后,执行一个命令。 执行命令 Pod.yaml apiVersion: v1 kind: Pod metadata: name: busybox spec: containers: - name: b
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M2 目标 将镜像拉取策略设置成 Never 的情况下,不会主动拉取镜像。 镜像拉取策略 Pod.yaml apiVersion: v1 kind: Pod metadata: name: busybox spec: co
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M2 目标 将镜像拉取策略设置成 IfNotPresent 的情况下,只有镜像不存在的情况下,才会去拉取镜像。 如果未指定,默认值为 IfNotPresent。 如果镜像的 tag 为 latest 或者省略,未指定拉取策
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M2 目标 将镜像拉取策略设置成 Always 的情况下,每次启动 Pod 都会拉取镜像。 镜像拉取策略 Pod.yaml apiVersion: v1 kind: Pod metadata: name: busybox
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M2 目标 通过 env 设置环境变量,将 k8s 的资源信息写入环境变量。 注入资源信息 支持的资源 limits.cpu limits.memory limits.ephemeral-storage requests.
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M2 目标 通过 env 设置环境变量,将 k8s 的字段信息写入环境变量。 注入字段信息 支持的字段 metadata.name metadata.namespace metadata.labels[''] metada
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M2 目标 通过前面的【Kubernetes】Spring Boot 开发与生产配置分离生成了一个开发与生产配置分离的 Spring Boot 项目,通过 args 的方式来激活生产配置。 激活生产配置 Pod.yaml
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M2 目标 通过前面的【Kubernetes】Spring Boot 开发与生产配置分离生成了一个开发与生产配置分离的 Spring Boot 项目,通过 command 的方式来激活生产配置。command 可以重新定义
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M2 目标 通过前面的【Kubernetes】Spring Boot 开发与生产配置分离生成了一个开发与生产配置分离的 Spring Boot 项目,通过 env 的方式来激活生产配置。 激活生产配置 Pod.yaml a
阅读全文
摘要:环境 kubernetes 1.20.4 Spring Boot 2.5.0-M2 目标 新建 Spring Boot 项目,将开发与生产配置进行分离。在将配置分离后,不用每次打包时都额外修改配置文件。 创建 Spring Boot 项目 pom.xml <?xml version="1.0" en
阅读全文
摘要:环境 kubernetes 1.20.2 Spring Boot 2.5.0-M1 目标 前面我们测试过服务名和 IP 是对应的,现在通过 Spring Boot 项目,通过名称访问数据库验证。 创建 Spring Boot 项目 pom.xml <?xml version="1.0" encodi
阅读全文
摘要:环境 kubernetes 1.20.2 Spring Boot 2.5.0-M1 目标 之前,我们看到通过 Service 名称组合而成的环境变量访问的问题。通过名称访问应该是较好的方式, 但是怎么解决动态更新的问题?那就是使用 DNS。 测试名称访问 查看当前 Pod [root@master
阅读全文