- K8s核心概念介绍
一见不如故
kubernetskubernets
ClusterCluster是计算,存储和网络资源的集合,k8s利用这些资源运行各种基于容器的应用MasterMaster是Cluster的大脑,负责跳读,NodeNode的职责是运行容器应用,Node由Master管理,Node负责监控并汇报容器的状态,同时根据Master的要求管理容器的生命周期PodPod是Kubernets的最小工作单元,每个Pod包含一个或者多个容器,Pod中的容器会作为
- Kubernetes实战:通过ClusterIP方式访问springboot服务
道法自然 实事求是
Kuberneteskubernetesspringboot容器
目录一、准备工作1.1、yaml文件编写二、创建k8sService参考资料一、准备工作1.1、yaml文件编写创建kubernets-discovery-service_service.yaml文件,yaml文件内容如下apiVersion:v1kind:Servicemetadata:name:kubernets-discovery-servicenamespace:appspec:selec
- k8s搭建容器云平台
勇敢许牛牛在线大闯关
云计算kubernetes容器云原生云计算
平台部署–部署容器云平台部署kubernets1.22.1集群curl-Ohttp://...../chinaskills_cloud_paas_v2.0.2.isomountchinaskills_cloud_paas_v2.0.2.iso/mntcp-rvf/mnt/*/optcp/opt/kubeeasy/usr/binkubeeasy--help#[installdependenciesp
- openEuler-22.03-LTS-SP3 Kubernets集群部署实战
wanchengpeng
kubernetes容器linux
一、环境介绍1、Windows11专业版,VMwareWorkstation17,XShell、XFtp、openEuler-22.03-LTS-SP32、Kubernets集群节点规划节点名称节点IP地址集群角色处理器数量内存大小磁盘空间k8s-master1192.168.139.136master68G100Gk8s-node1192.168.139.137worker68G100Gk8s-
- CentOS7搭建k8s-v1.28.6集群详情
@TangXin
Kuberneteskubernetes容器
文章目录1.灌装集群节点操作系统1.1设置hosts1.2设置nameserver1.3关闭防火墙1.4关闭Selinux1.5关闭Swap分区1.6时间同步1.7调整内核参数1.8系统内核升级2.安装Docker2.1卸载旧Docker2.2配置Docker软件源2.3安装Docker3.部署Kubernets集群3.1设置K8s软件源3.2安装kubeadm,kubelet和kubectl3.
- k8s部署tomcat及web应用_kubernetes学习一:安装及部署第一个Web应用
weixin_39761558
准备工作首先准备Kubernets的环境,使用的是centos7.5关闭防火墙:#systemctldisablefirewalld#systemctlstopfirewalld安装etcd和kubernetes(会自动安装Docker软件)由于centosmini版本没有ifconfig和netstat的命令。所以安装了net-tools的工具#yum-yinstallnet-tools#yum
- 解析Kubernets pod DNS域名
深耕云原生
kuberneteskubernetes
k8sdns理解这个博主讲的很详细我的这篇文章主要是演示测试k8s的dnsnslookup怎么解析到k8spod域名创建一个busybox的pod,测试一下pod内是否可以解析1、流程验证cat>dns-Deployment.yaml..pod.格式的DNS域名kubectlapply-fdns-Deployment.yamlkubectlgetpods|grepbusyboxkubectlexe
- 【kubernets】由Evicted状态的Pod探讨k8s中pod的驱逐策略
margu_168
Kuberneteskubernetesdocker容器
背景某天突然发现自己的测试环境中有Evicted状态的pod,于是需要排查原因。先来看看大致情况:[root@k8s-m1~]#kubectlgetpod-A-owide|grepk8s-m1kube-systemcalico-kube-controllers-bcc6f659f-575mr1/1Running3177d10.244.42.148k8s-m1kube-systemcalico-no
- 【kubernets】kubelet证书单独更新
margu_168
Kuberneteskubernetes
前言说明接上一篇文章https://blog.csdn.net/margu_168/article/details/132584109关于kubernets中的证书管理。本篇文章将单独说明一下kubelet的证书更新。在1.19.16版本中,默认情况下使用kubeadmalphacertsrenewall不能更新kubelet的证书,其他版本请自行测试。但是某些情况下,我们需要立即对kubelet
- kubernets_实战篇(minikube)
Aring88
Linux运维dockerkubernetes后端linux运维开发
minikube一、前提准备1,安装工具二、启动集群1,启动集群2,暴露Pod(1)kubernetesService类型三、集群操作1,Pod操作2,启用插件3,清理集群资源一、前提准备本文环境是基于,在线k8s环境,linux,x86_641,安装工具安装minikube##下载curl-LOhttps://storage.googleapis.com/minikube/releases/la
- Kind 安装 kubernets集群
yuluo_YX
云原生javastudycloudnativekind云原生
Kind安装kubernets介绍kindisatoolforrunninglocalKubernetesclustersusingDockercontainer“nodes”.Kind是一个通过使用docker容器模拟节点来创建本地k8s集群的工具。repo:https://github.com/kubernetes-sigs/kindwebsite:https://kind.sigs.k8s.
- Kubernetes各组件工作原理 & Pod 生命周期
爱哭的毛毛虫*
kubernetes容器云原生
一、kubernets组件工作原理-概述:在集群管理方面,kubernetes将集群中的机器分为Master(主)节点和一些node(工作)节点。在Master节点上运行这一些集群管理相关的进程组件:kube-apiserver、kube-controller-manager和kube-scheduler,这些组件进程实现了整个集群的资源管理、pod调度、弹性伸缩、安全控制、系统监控和纠错等管理功
- Kubernets(K8S)启动和运行01 快速入门
Python私教
k8skubernetes容器云原生
简介Kubernetesisanopensourceorchestratorfordeployingcontainerizedapplications.ItwasoriginallydevelopedbyGoogle,inspiredbyadecadeofexperiencedeployingscalable,reliablesystemsincontainersviaapplication-or
- kubeadm实际搭建多节点的Kubernetes集群
海哥python
云原生kubernetes容器云原生
kubeadm是什么?kubadm官网:https://kubernetes.io/zh-cn/docs/reference/setup-tools/kubeadm/Kubernetes的独立部署工具:kubeadm让用户两条命令完成一个Kubernets集群的部署:#创建一个Master节点$kubeadminit#将一个Node节点加入到当前集群中$kubeadmjoin实验环境Kuberne
- Kubernets(K8S)启动和运行 01-02 Kubernetes的速度非常快
Python私教
kubernetes容器云原生
Kubernetes的速度非常快简介(Intoduction)Velocityisthekeycomponentinnearlyallsoftwaredevelopmenttoday.ThesoftwareindustryhasevolvedfromshippingproductsasboxedCDsorDVDstosoftwarethatisdeliveredoverthenetworkviaw
- 了解Ceph 分布式存储
小老虎追玉兔
ceph分布式网络
内容概括1、存储发展史随着OpenStack的快速发展,给Caph的发展注入了强心剂,越来越多的人使用Ceph作为OpenStack的底层共享存储,Ceph在中国的社区也蓬勃发展起来。近两年OpenStack火爆度不及当年,借助于云原生尤其是Kubernetes技术的发展,作为底层存储的基石,Ceph再次发力,为Kubernets有状态化业务提供了存储机制的实现。企业中使用存储按照其功能,使用场景
- Kubernets(K8S)启动和运行 01-01 Kubernetes简介
Python私教
kubernetes容器云原生
Kubernets(K8S)启动和运行01-01Kubernetes简介Kubernetesisanopensourceorchestratorfordeployingcontainerizedapplications.ItwasoriginallydevelopedbyGoogle,inspiredbyadecadeofexperiencedeployingscalable,reliablesy
- k8s-pod-基本概念
查士丁尼·绵
k8skubernetesdocker容器
什么是Pod?Pod是一组紧密关联的容器集合,也叫它容器组。它们共享PID、IPC、Network和UTSnamspace,是kubernets调度的基础单元。Pod的设计理念是支持多个容器在一个Pod中共享网络和文件系统,可以通过进程间通信和文件共享这种简单高效的方式组合完成服务。一个pod运行多个容器,又叫边车模式(SideCar)容器是一种资源隔离单位,比如隔离CPU、内存等,应用程序住在容
- k8s---kubernets
Lad1129
k8s
目录一、Kurbernetes1.2、K8S的特性:1.3、docker和K8S:1.4、K8S的作用:1.5、K8S的特性:二、K8S集群架构与组件:三、K8S的核心组件:一、master组件:1、kube-apiserver:2、kube-controller-manager:3、kube-scheduler:4、ETCD组件:二、node组件:1、kubelet:2、kube-proxy:3
- k8s:kubernets
91888888
kubernetes容器云原生
自动部署、自动扩展和管理的容器化部署的应用程序的一个开源系统k8s负责自动化运维管理多个容器化程序的集群,是一个功能强大的容器编排工具可以以分布式和集群化的方式进行容器管理1.18版本,目前最多的是1.20版本,最新的是1.29版本(没人用)k8s是google的borg系统作为原型,后期经过go语言编写的开源软件KubernetesGitHub-kubernetes/kubernetes:Pro
- k8s 组件
weixin_51694382
kubernetes容器云原生
k8s:kubernets:8个字母省略,就是k8s.自动部署,自动扩展和管理容器化的应用程序的一个开源系统。k8s是负责自动化运维管理多个容器化程序的集群,是一个功能强大的容器编排工具。以分布式和集群化的方式进行容器管理。1.20面试版本k8s是google的borg系统作为原型,后期经由go语言编写的开源软件。Kubernetes官网https://github.com/kubernetes/
- 漫话Kubernetes的网络架构,该用NodePort还是Ingress还是load balancer?
Tom098
DevOpsk8s网络kubernetes网络架构NodePortIngress
目录一、基本概念1.Kubernetespod2.Kubernetesservice3.KubernetesNodePort4.KubernetsIngress5.Kubernetesloadbalancer二、从实际需求谈Kubernetes引入的各种网络概念问题No1:NodePort和Ingress好像实现原理差不多,有了NodePort为啥还整出个Ingress,既生瑜何生亮么?问题No2
- repository does not exist or may require ‘docker login‘: denied: requested access to the resource is
zhangyifang_009
错误记录kubernetesdockerjava
问题描述:最近在学习kubernetes的使用,在部署SpringBoot项目的时候,总是拉取不到本地的docker镜像,提示就是:repositorydoesnotexistormayrequire'dockerlogin':denied:requestedaccesstotheresourceisdenied,pod描述如下图所示而我当前的docker镜像明明是有的并且我的kubernets部
- kubernets 安装介绍 (修正版)
fananchong2
dockerkubernetskubeadm
准备工作机器可以科学上网docker设置http代理参考官方文档:https://docs.docker.com/config/daemon/systemd/#httphttps-proxy步骤如下:mkdir-p/etc/systemd/system/docker.service.dtouch/etc/systemd/system/docker.service.d/http-proxy.conf
- 【云原生kubernets】存储管理与应用
一只CV程序猿
云原生
一、存储卷介绍1.1.为什么需要存储卷:容器中的文件在磁盘上是临时存放的,这给容器中运行的特殊应用程序带来一些问题。首先,当容器崩溃时,kubelet将重新启动容器,容器中的文件将会丢失,因为容器会以干净的状态重建。其次,当在一个Pod中同时运行多个容器时,常常需要在这些容器之间共享文件。1.2.存储卷的生命周期Kubernetes卷具有明确的生命周期,与包裹它的Pod相同。因此,卷比Pod中运行
- 【云原生kubernets】Ingress 功能与应用
一只CV程序猿
云原生
一、Ingress介绍1.1.Ingress产生原因:当我们使用Service的时候,Service对集群之外暴露服务的主要方式有两种:NotePort和LoadBalancer,但是这两种方式,都有一定的缺点:(1)NodePort方式的缺点是每创建一个服务,都需要暴露出一个供外部访问的主机端口,就导致会占用很多集群机器的端口,那么当集群服务变多的时候,这个缺点就愈发明显。(2)LB方式的缺点是
- 【云原生kubernets】Pod详解
一只CV程序猿
云原生rpc网络协议
一、Pod介绍1.1.概念Pod是kubernetes中最小的资源管理组件,Pod也是最小化运行容器化应用的资源对象。一个Pod代表着集群中运行的一个进程。kubernetes中其他大多数组件都是围绕着Pod来进行支撑和扩展Pod功能的,例如,用于管理Pod运行的StatefulSet和Deployment等控制器对象,用于暴露Pod应用的Service和Ingress对象,为Pod提供存储的Pe
- 【云原生kubernets】Deployment的功能与应用
一只CV程序猿
云原生
一、导读所有的Deployment对象都是由Kubernetes集群中的DeploymentController进行管理,DeploymentController会在启动时通过Informer监听三种不同资源的通知,Pod、ReplicaSet和Deployment,这三种资源的变动都会触发DeploymentController中的回调。不同的事件最终都会在被过滤后进入控制器持有的队列,等待工作
- 【云原生kubernets】Service 的功能与应用
一只CV程序猿
云原生
一、Service介绍在kubernetes中,pod是应用程序的载体,我们可以通过pod的ip来访问应用程序,但是pod的ip地址不是固定的,这也就意味着不方便直接采用pod的ip对服务进行访问。为了解决这个问题,kubernetes提供了Service资源,Service会对提供同一个服务的多个pod进行聚合,并且提供一个统一的入口地址。通过访问Service的入口地址就能访问到后面的pod服
- 微服务--一篇入门kubernets
爪蛙毁一生
#微服务#k8sjavajavakuberneteskubelet微服务
Kubernetes1.Kubernetes介绍1.1应用部署方式演变1.2kubernetes简介1.3kubernetes组件1.4kubernetes概念2.kubernetes集群环境搭建2.1前置知识点2.2kubeadm部署方式介绍2.3安装要求2.4最终目标2.5准备环境2.6系统初始化2.6.1设置系统主机名以及Host文件的相互解析2.6.2安装依赖文件(所有节点都要操作)2.6
- C/C++Win32编程基础详解视频下载
择善Zach
编程C++Win32
课题视频:C/C++Win32编程基础详解
视频知识:win32窗口的创建
windows事件机制
主讲:择善Uncle老师
学习交流群:386620625
验证码:625
--
- Guava Cache使用笔记
bylijinnan
javaguavacache
1.Guava Cache的get/getIfPresent方法当参数为null时会抛空指针异常
我刚开始使用时还以为Guava Cache跟HashMap一样,get(null)返回null。
实际上Guava整体设计思想就是拒绝null的,很多地方都会执行com.google.common.base.Preconditions.checkNotNull的检查。
2.Guava
- 解决ora-01652无法通过128(在temp表空间中)
0624chenhong
oracle
解决ora-01652无法通过128(在temp表空间中)扩展temp段的过程
一个sql语句后,大约花了10分钟,好不容易有一个结果,但是报了一个ora-01652错误,查阅了oracle的错误代码说明:意思是指temp表空间无法自动扩展temp段。这种问题一般有两种原因:一是临时表空间空间太小,二是不能自动扩展。
分析过程:
既然是temp表空间有问题,那当
- Struct在jsp标签
不懂事的小屁孩
struct
非UI标签介绍:
控制类标签:
1:程序流程控制标签 if elseif else
<s:if test="isUsed">
<span class="label label-success">True</span>
</
- 按对象属性排序
换个号韩国红果果
JavaScript对象排序
利用JavaScript进行对象排序,根据用户的年龄排序展示
<script>
var bob={
name;bob,
age:30
}
var peter={
name;peter,
age:30
}
var amy={
name;amy,
age:24
}
var mike={
name;mike,
age:29
}
var john={
- 大数据分析让个性化的客户体验不再遥远
蓝儿唯美
数据分析
顾客通过多种渠道制造大量数据,企业则热衷于利用这些信息来实现更为个性化的体验。
分析公司Gartner表示,高级分析会成为客户服务的关键,但是大数据分析的采用目前仅局限于不到一成的企业。 挑战在于企业还在努力适应结构化数据,疲于根据自身的客户关系管理(CRM)系统部署有效的分析框架,以及集成不同的内外部信息源。
然而,面对顾客通过数字技术参与而产生的快速变化的信息,企业需要及时作出反应。要想实
- java笔记4
a-john
java
操作符
1,使用java操作符
操作符接受一个或多个参数,并生成一个新值。参数的形式与普通的方法调用不用,但是效果是相同的。加号和一元的正号(+)、减号和一元的负号(-)、乘号(*)、除号(/)以及赋值号(=)的用法与其他编程语言类似。
操作符作用于操作数,生成一个新值。另外,有些操作符可能会改变操作数自身的
- 从裸机编程到嵌入式Linux编程思想的转变------分而治之:驱动和应用程序
aijuans
嵌入式学习
笔者学习嵌入式Linux也有一段时间了,很奇怪的是很多书讲驱动编程方面的知识,也有很多书将ARM9方面的知识,但是从以前51形式的(对寄存器直接操作,初始化芯片的功能模块)编程方法,和思维模式,变换为基于Linux操作系统编程,讲这个思想转变的书几乎没有,让初学者走了很多弯路,撞了很多难墙。
笔者因此写上自己的学习心得,希望能给和我一样转变
- 在springmvc中解决FastJson循环引用的问题
asialee
循环引用fastjson
我们先来看一个例子:
package com.elong.bms;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;
import co
- ArrayAdapter和SimpleAdapter技术总结
百合不是茶
androidSimpleAdapterArrayAdapter高级组件基础
ArrayAdapter比较简单,但它只能用于显示文字。而SimpleAdapter则有很强的扩展性,可以自定义出各种效果
ArrayAdapter;的数据可以是数组或者是队列
// 获得下拉框对象
AutoCompleteTextView textview = (AutoCompleteTextView) this
- 九封信
bijian1013
人生励志
有时候,莫名的心情不好,不想和任何人说话,只想一个人静静的发呆。有时候,想一个人躲起来脆弱,不愿别人看到自己的伤口。有时候,走过熟悉的街角,看到熟悉的背影,突然想起一个人的脸。有时候,发现自己一夜之间就长大了。 2014,写给人
- Linux下安装MySQL Web 管理工具phpMyAdmin
sunjing
PHPInstallphpMyAdmin
PHP http://php.net/
phpMyAdmin http://www.phpmyadmin.net
Error compiling PHP on CentOS x64
一、安装Apache
请参阅http://billben.iteye.com/admin/blogs/1985244
二、安装依赖包
sudo yum install gd
- 分布式系统理论
bit1129
分布式
FLP
One famous theory in distributed computing, known as FLP after the authors Fischer, Lynch, and Patterson, proved that in a distributed system with asynchronous communication and process crashes,
- ssh2整合(spring+struts2+hibernate)-附源码
白糖_
eclipsespringHibernatemysql项目管理
最近抽空又整理了一套ssh2框架,主要使用的技术如下:
spring做容器,管理了三层(dao,service,actioin)的对象
struts2实现与页面交互(MVC),自己做了一个异常拦截器,能拦截Action层抛出的异常
hibernate与数据库交互
BoneCp数据库连接池,据说比其它数据库连接池快20倍,仅仅是据说
MySql数据库
项目用eclipse
- treetable bug记录
braveCS
table
// 插入子节点删除再插入时不能正常显示。修改:
//不知改后有没有错,先做个备忘
Tree.prototype.removeNode = function(node) {
// Recursively remove all descendants of +node+
this.unloadBranch(node);
// Remove
- 编程之美-电话号码对应英语单词
bylijinnan
java算法编程之美
import java.util.Arrays;
public class NumberToWord {
/**
* 编程之美 电话号码对应英语单词
* 题目:
* 手机上的拨号盘,每个数字都对应一些字母,比如2对应ABC,3对应DEF.........,8对应TUV,9对应WXYZ,
* 要求对一段数字,输出其代表的所有可能的字母组合
- jquery ajax读书笔记
chengxuyuancsdn
jQuery ajax
1、jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()
- JWFD工作流拓扑结构解析伪码描述算法
comsci
数据结构算法工作活动J#
对工作流拓扑结构解析感兴趣的朋友可以下载附件,或者下载JWFD的全部代码进行分析
/* 流程图拓扑结构解析伪码描述算法
public java.util.ArrayList DFS(String graphid, String stepid, int j)
- oracle I/O 从属进程
daizj
oracle
I/O 从属进程
I/O从属进程用于为不支持异步I/O的系统或设备模拟异步I/O.例如,磁带设备(相当慢)就不支持异步I/O.通过使用I/O 从属进程,可以让磁带机模仿通常只为磁盘驱动器提供的功能。就好像支持真正的异步I/O 一样,写设备的进程(调用者)会收集大量数据,并交由写入器写出。数据成功地写出时,写入器(此时写入器是I/O 从属进程,而不是操作系统)会通知原来的调用者,调用者则会
- 高级排序:希尔排序
dieslrae
希尔排序
public void shellSort(int[] array){
int limit = 1;
int temp;
int index;
while(limit <= array.length/3){
limit = limit * 3 + 1;
- 初二下学期难记忆单词
dcj3sjt126com
englishword
kitchen 厨房
cupboard 厨柜
salt 盐
sugar 糖
oil 油
fork 叉;餐叉
spoon 匙;调羹
chopsticks 筷子
cabbage 卷心菜;洋白菜
soup 汤
Italian 意大利的
Indian 印度的
workplace 工作场所
even 甚至;更
Italy 意大利
laugh 笑
m
- Go语言使用MySQL数据库进行增删改查
dcj3sjt126com
mysql
目前Internet上流行的网站构架方式是LAMP,其中的M即MySQL, 作为数据库,MySQL以免费、开源、使用方便为优势成为了很多Web开发的后端数据库存储引擎。MySQL驱动Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持database/sql标准,而有些是采用了自己的实现接口,常用的有如下几种:
http://code.google.c...o-mysql-dri
- git命令
shuizhaosi888
git
---------------设置全局用户名:
git config --global user.name "HanShuliang" //设置用户名
git config --global user.email "
[email protected]" //设置邮箱
---------------查看环境配置
git config --li
- qemu-kvm 网络 nat模式 (四)
haoningabc
kvmqemu
qemu-ifup-NAT
#!/bin/bash
BRIDGE=virbr0
NETWORK=192.168.122.0
GATEWAY=192.168.122.1
NETMASK=255.255.255.0
DHCPRANGE=192.168.122.2,192.168.122.254
TFTPROOT=
BOOTP=
function check_bridge()
- 不要让未来的你,讨厌现在的自己
jingjing0907
生活 奋斗 工作 梦想
故事one
23岁,他大学毕业,放弃了父母安排的稳定工作,独闯京城,在家小公司混个小职位,工作还算顺手,月薪三千,混了混,混走了一年的光阴。 24岁,有了女朋友,从二环12人的集体宿舍搬到香山民居,一间平房,二人世界,爱爱爱。偶然约三朋四友,打扑克搓麻将,日子快乐似神仙; 25岁,出了几次差,调了两次岗,薪水涨了不过百,生猛狂飙的物价让现实血淋淋,无力为心爱银儿购件大牌
- 枚举类型详解
一路欢笑一路走
enum枚举详解enumsetenumMap
枚举类型详解
一.Enum详解
1.1枚举类型的介绍
JDK1.5加入了一个全新的类型的”类”—枚举类型,为此JDK1.5引入了一个新的关键字enum,我们可以这样定义一个枚举类型。
Demo:一个最简单的枚举类
public enum ColorType {
RED
- 第11章 动画效果(上)
onestopweb
动画
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- Eclipse中jsp、js文件编辑时,卡死现象解决汇总
ljf_home
eclipsejsp卡死js卡死
使用Eclipse编辑jsp、js文件时,经常出现卡死现象,在网上百度了N次,经过N次优化调整后,卡死现象逐步好转,具体那个方法起到作用,不太好讲。将所有用过的方法罗列如下:
1、取消验证
windows–>perferences–>validation
把 除了manual 下面的全部点掉,build下只留 classpath dependency Valida
- MySQL编程中的6个重要的实用技巧
tomcat_oracle
mysql
每一行命令都是用分号(;)作为结束
对于MySQL,第一件你必须牢记的是它的每一行命令都是用分号(;)作为结束的,但当一行MySQL被插入在PHP代码中时,最好把后面的分号省略掉,例如:
mysql_query("INSERT INTO tablename(first_name,last_name)VALUES('$first_name',$last_name')");
- zoj 3820 Building Fire Stations(二分+bfs)
阿尔萨斯
Build
题目链接:zoj 3820 Building Fire Stations
题目大意:给定一棵树,选取两个建立加油站,问说所有点距离加油站距离的最大值的最小值是多少,并且任意输出一种建立加油站的方式。
解题思路:二分距离判断,判断函数的复杂度是o(n),这样的复杂度应该是o(nlogn),即使常数系数偏大,但是居然跑了4.5s,也是醉了。 判断函数里面做了3次bfs,但是每次bfs节点最多