当前位置:网站首页 > R语言数据分析 > 正文

hprof文件生成原因(hprof文件怎么看)



系列文章

第一章:✨ k8s入门:裸机部署 k8s 集群 第二章:✨ k8s入门:部署应用到 k8s 集群 第三章:✨ k8s入门:service 简单使用 第四章:✨ k8s入门:StatefulSet 简单使用 第五章:✨ k8s入门:存储(storage) 第六章:✨ K8S 配置 storageclass 使用 nfs 动态申领本地磁盘空间 第七章:✨ k8s入门:配置 ConfigMap & Secret 第八章:✨ k8s入门:k8s入门:Helm 构建 MySQL 第九章:✨ k8s入门:kubernetes-dashboard 安装 第十章:✨ k8s入门:kube-prometheus-stack 全家桶搭建(Grafana + Prometheus)


文章目录

  • 系列文章
  • 一、简介
  • 二、pod 和 deployment 关系
  • 三、k8s 使用本地镜像部署
  • 四、上传镜像到仓库
  • 五、公共镜像部署
  • 六、私人镜像部署
  • 1、创建阿里云验证
  • 2、私人镜像创建 pod
  • ①、kubectl port-forward 临时暴露端口访问测试
  • ②、错误: open /run/flannel/subnet.env: no such file or directory`
  • ③、创建 pod 暴露端口
  • 3、创建 Deployment
  • 4、历史版本控制
  • 5、其他命令
  • 七、小妙招
  • 八、遗留问题

参考文章: https://k8s.easydoc.net/

一、简介

接上篇裸机部署 k8s 集群:

基础环境:

  • 系统⭐Linux、centos 7.9 、3 台虚拟机
  • 虚拟机IP⭐master:192.168.25.100,node1:192.168.25.101,node2:192.168.25.102
  • k8s 版本⭐1.23.1
  • docker 版本⭐20.10.16

官方文档

  • Kubernetes 官方文档:https://kubernetes.io/zh/docs/setup/
  • Kubernetes 中文社区 | 中文文档:http://docs.kubernetes.org.cn/
  • spring-cloud-kubernetes:https://docs.spring.io/spring-cloud-kubernetes/docs/current/reference/html/
  • kubectl 命令:https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands
二、pod 和 deployment 关系
  • pod
  • Pod 是 k8s 的最小调度单位
  • 一个 Pod 代表集群上正在运行的一个进程
  • Pod 中运行一个容器,可以将 Pod 视为单个封装的容器,但是 K8s 是直接管理 Pod 而不是容器
  • Pod 中运行多个容器,这些容器可以形成一个单一的内部service单位,可以相互通信,共享数据
  • 一个 Pod 被分配一个独立的IP地址,Pod中的每个容器共享 IP 地址和网络端口,Pod 内的容器可以使用 localhost 相互通信。
  • Pod 中的容器与Pod 外部通信时,他们必须协调如何使用共享网络资源(如端口)。
  • deployment
  • 创建 deployment 的时候一定会创建Pod
  • Deployment 可以新建及管理多副本应用(即多个副本 Pod)
  • deployment 可以部署多个Pod,所有 Pod 的名字后面会随机带一串随机数避免重复
  • Deployement 会配合 RC 调度保障定量的 Pod 数量。
三、k8s 使用本地镜像部署

使用 Dockerfile 在本地生成的镜像,不用上传到仓库,该方法不常用

k8s默认会从远端拉取镜像,其默认配置参数 imagePullPolicy 为 Always,我们可以将该参数设置为Never 或者 IfNotPresent,k8s 就会从本地拉取镜像了。

master 节点 pod 配置

注意:

python 自动生成k8s yaml文件_docker

四、上传镜像到仓库

将准备好的 jar 制作成镜像上传到私人仓库,可参考我另一篇博客

上传成功可以拉取镜像测试一下,jar 包中接口如下

python 自动生成k8s yaml文件_kubernetes_02

五、公共镜像部署

对于公共镜像可以直接使用 kubectl run 创建 pod

使用公共镜像创建 pod,公共镜像可以直接 docker pull 拉取,不需要登陆

在可以使用 kubectl 工具的节点(一般建议 master 节点)新建 k8s-pod-dockerhub-public.yaml 文件,添加如下内容

使用 部署 pod

  • kubectl get pod -o wide 查看 pod 状态以及部署详情
  • python 自动生成k8s yaml文件_linux_03

  • kubectl describe pod nginx 查看 pod 部署日志
  • python 自动生成k8s yaml文件_k8s_04

  • kubectl logs -f test-pod 查看 pod 中指定容器启动日志
  • python 自动生成k8s yaml文件_linux_05

  • kubectl exec -it test-pod /bin/sh 进入容器
  • python 自动生成k8s yaml文件_容器_06

六、私人镜像部署

dockerhub 和阿里云仓库操作类似

1、创建阿里云验证

登陆阿里云仓库 ,登陆成功会生成 ~/.docker/config.json 验证文件

k8s 集群中通过 ~/.docker/config.json 文件制作 secret 凭证

python 自动生成k8s yaml文件_k8s_07

新建一个 secret 的 yaml 文件,就叫 registry-secret.yaml

创建并检查 secret 凭证

python 自动生成k8s yaml文件_docker_08

2、私人镜像创建 pod

新建 aliyun-private-springboot-pod.yaml 文件,添加 secret 验证拉取私人镜像

创建并查看 pod 信息

查看 pod 状态已启动,部署到了 node1 节点,拉去镜像用时 14 s,查看 pod 启动日志发现端口 8080

①、kubectl port-forward 临时暴露端口访问测试

把集群内 8080 端口映射到节点 8090,在 master 节点执行(在可以使用 kubectl 命令的节点都可以执行)

  • 本机访问
    默认只能本地访问 127.0.0.1(IPv4) 和 ::1 (IPv6)

重新打开一个 master 连接,因为使用 kubectl port-forward 是临时的,不能关闭,关闭即不起作用

  • 所有地址
    使用 --address 0.0.0.0 指定所有地址都可访问

在宿主机使用虚拟机 master IP地址访问 http://192.168.25.100:8090/k8s/test

python 自动生成k8s yaml文件_kubernetes_09

②、错误: open /run/flannel/subnet.env: no such file or directory`

报错:如果你运行 报错错误

python 自动生成k8s yaml文件_容器_10

③、创建 pod 暴露端口

使用 DockerHub 镜像 redis:latest,创建一个 redis,暴露节点 6379 端口

创建 pod

python 自动生成k8s yaml文件_容器_11

3、创建 Deployment

Deployment 示例,新建 aliyun-private-springboot-deployment.yaml 文件添加如下内容,使用阿里云私人镜像部署三个 pod

创建 Deployment 查看运行状态

python 自动生成k8s yaml文件_容器_12

命令行指定 pod 副本数量,可用于伸缩扩展副本

python 自动生成k8s yaml文件_k8s_13

如果想访问测试可以使用

4、历史版本控制
  • 新增一个镜像版本 registry.cn-zhangjiakou.aliyuncs.com/k8s-private/springboot:1.1
  • 修改 aliyun-private-springboot-deployment.yaml 文件指定镜像版本为 1.1
  • 重新使用 kubectl apply -f aliyun-private-springboot-deployment.yaml 部署

python 自动生成k8s yaml文件_linux_14

查看部署详情 ,可以看到拉取 1.1版本

python 自动生成k8s yaml文件_linux_15

查看历史版本:,可以发现有两个版本

python 自动生成k8s yaml文件_k8s_16

版本回滚可以使用如下命令

5、其他命令
七、小妙招

在使用vim进行文档操作时,粘贴多行时,会出现错位、错乱(行注释极为明显)

八、遗留问题
  • 每次只能访问一个 pod,没有负载均衡自动转发到不同 pod
  • 访问还需要端口转发
  • Pod 重新创建后 IP 变了,名字也变了

下一篇使用 Service 解决这些问题

到此这篇hprof文件生成原因(hprof文件怎么看)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • propram怎么读(prom怎么读音)2025-11-15 11:18:09
  • st7735rproteus仿真(protues仿真stm32)2025-11-15 11:18:09
  • story怎么读(story time怎么读)2025-11-15 11:18:09
  • 苹果promax价格256官网价格(苹果pro max价格)2025-11-15 11:18:09
  • redhat官网注册(redhat注册过程)2025-11-15 11:18:09
  • raise a suilen动画(《rise and fall》)2025-11-15 11:18:09
  • top18女rapper(top18女rapper云南)2025-11-15 11:18:09
  • rasie me up是什么意思(rasmus什么意思)2025-11-15 11:18:09
  • 连接redis为啥不用写用户名和密码(redis 为什么默认不用密码)2025-11-15 11:18:09
  • cephrbd存储(ceph存储中osd的作用)2025-11-15 11:18:09
  • 全屏图片