k8s第二节 Kubernetes入门、安装、创建Deployment、Service、pod调度 污点taint

2023-11-03

一、k8s的集群架构与组件

k8s也是一个Master,多个node节点 。
下面是kubernetes结婚的架构与组件

kubernetes集群架构与组件

1.1 master组件介绍

组件名称 介绍
kube-apiserver Kubernetes API,集群的统一入口, 各组件协调者,以RESTful API提供接口服务,所有对象资源的增删改查和监听操作都交给 APlServer处理后再提交给 Etcd存储。
kuber-controller-manager 处理集群中常规后台任务,一个资源对应一个控制器, 而ControllerManager就是负责管理这些控制器的。
kuber-scheduler 根据调度算法为新创建的Pod选择一个Node节点,可以任意部署,可以部署在同一个节点上,也可以部署在不同的节点上。
etcd 分布式键值存储系统。用于保存集群状态数据,比如Pod、Service等对象信息。

1.2 node组件介绍

组件名称 介绍
kubelet kubelet是Master在Node节点上的Agent,管理本机运行容器的生命周期,比如创建容器、pod挂载数据卷、下载secret、获取容器和节点状态等工作;kubelet将每个Pod转换成一组容器
kube-proxy 在Node节点上实现Pod网络代理,维护网络股则和四层负载均衡工作
docker或rocket 容器引擎,运行容器

1.3 资源概念

k8s里面各种资源概念

1.3.1 k8s里面直接操作都是Controller控制器

k8s里面直接操作的一般都是控制器Controller,很少会直接操作Pod,或者更底层的Contanier。
eg:部署一个电商nginx控制器Controller并且开启三个副本。
eg:  为这个控制器开一个负载均衡Service
  1. 一个Service对一个Controller里面的多个pod做负载均衡和统一出口。
  2. 一个Controller控制器如Deployment对多个pod做统一管理

1.3.2 为啥需要 Service

在直接用docker部署,直接用-p就可以把单个docker应用暴露到宿主机上面。
但是使用k8s,每个应用都是一个 deployment,每个deployment后面都是多个pods;
因此暴露k8s应用需要统一的一个负载均衡的出口。
这里的Service就是一个负载均衡器,相当于LBS.
Service作为一个统一的服务出口。

k8s Service作用

1.3.3 为啥需要 Namespce

1:k8s里面都有一个命名空间的概念,-n指定命名空间。
不管是查询、创建等所有都是通过-n指定命名空间,不加都是默认default的命名空间。
隔离
2:命名空间第二个作用
对命名空间授权
所有命令本质上都要增加-n,没有加到使用就是默认的命名空间

除了pod和service没有命名空间,其他都有

kubectl get namespace获取所有的命名空间
kubectl create namesapce test创建一个名称叫做test的命名空间

1.3.4 标签的使用

  • kubectl get pods --show-labels #查看资源标签,可以是deploymentservice等获取其他资源
  • kubectl get pods -l app=nginx #根据标签筛选(列出)资源

二、k8s生产环境的两种安装方式

最常用的两种生产环境部署方式
方式名称 介绍
kubeadm kubeadm是一个工具,提供kubeadm init和kubeadm join, 用来快速部署Kubenetes集群。部署地址:kubeadm; github kubeadm快速搭建K8s集群【v1.19】kubeadm快速搭建k8s集群 gitee
二进制 推荐,从官方下载发行版的二进制包,手工部署每个组件,组成Kubernetes集群。kubernetes github

三、kubeadm vs kubectl vs kubelet 区分

命令 作用 常用命令 安装位置
kubeadm 快捷生产环境安装kubeadm的 kubeadm init集群初始化、kubeadm join node节点加入集群、kubeadm reset重置配置 master初始化,node 加入
kubectl kubectl可以访问k8s整个集群,进行查看、访问、控制; 如:aliyun 上面一键创建的 serverless k8s ,就可以使用 kubectl来查看集群情况。如果执行命令报错,很可能是没有配置.kube/config vi $home/.kube/config必须配置、kubectl get nodes 只需要master安装就可以了,node没必要
kubelet kubelet是Master在Node节点上的Agent; 检查是否启动: systemctl status kubelet node节点安装

3.1 kubectl详解

kubectl控制k8s的一个客户端而已,需要配置集群地址、鉴权信息等。
kebectl只读取$home/.kube.config这个配置文件。
在k8s里面不直接操作pod、容器,而是一般都是操作的是deployment。
如创建一个nginx的deployment并且开启三个副本。

kubectl中的 $home/.kube/config文件详解

  1. kubectl get nodes #查看集群状态
  2. kubectl --kubeconfig=/root/.kube/config get node #指定配置文件目录
  3. kubectl --help查看所有命令
  4. kubectl官方命令介绍/kubectl/kubectl-commands
  5. kubectl自动补全配置(14左右分钟),completion 命令,执行命令按照一个工具就OK可以补全了。可以参见:kubectl 自动补全命令

kubectl常用命令
kubectl 常用命令2

命令 含义
kubectl get nodes 获取集群有几个节点
kubectl get namespace 获取所有的命名空间
kubectl get pods 获取集群上面所有的业务类pods
kubectl get pods --all-namespaces 获取所有命名空间中的所有pods
kubectl get pods -n kube-systemkubectl get pods -n kubernetes-dashboard 获取pods使用-n指定命名空间,所有的pods都有命名空间
kubectl get pod,svc 获取集群pod、service以及ip端口(可以根据ip端口进行访问), svc 是service的缩写
kubectl get epkubectl get endpoints 查看service后端对应 负载几个pod的具体ip, 即:端点 endpoint
kubectl get pods -n kube-system -l k8s-app=kube-dns --show-labels -n指定【namespace】、-l指定【label】、显示label|
kubectl get pods -n kube-system -o wide 查看pod分配在那个节点上面, - o 即输出格式output format
kubectl apply -f recommended.yamlkubectl apply -f calico.yaml 安装软件xx
kubectl logs calico-node-z4jvm -n kube-system 排查应用错误,查看镜像内部的日志,要指定namespace
kubectl describe pod calico-node-z4jvm -n kube-system 排查启动错误,看目前是在拉去镜像、还是启动容器等,拉去镜像是成功还是失败了等
kubectl get cskubectl get componentstatuses 组件状态etcd、scheduler、controller-manager; 如果检查失败vi /etc/kubernetes/manifests/kube-scheduler.yaml 注释掉 #–port=0
kubectl delete pod kube-scheduler-k8s-master -n kube-system 删除pod
kubectl --helpkubectl create --helpkubectl create deployment --helpkubectl get --help
kubectl api-resources 查看k8s所有的资源;NMAE资源名称、SHORTNAMES短名称 缩写、ApiGroup组、Namespace是否区分命名空间、Kind
kubectl api-versions 查看k8s所有api 版本,如:apps/v1 各种常见控制器 服务等、storage.k8s.io/v1存储、batch/v1 批处理autoscaling/v1 自动伸缩
kubectl describe <资源> <资源名称> 查看资源的详细信息,如 kubectl describe node k8s-masterkubectl describe pod k8s-masterkubectl describe service aliang-666kubectl describe deployment aliang-666

三、牛刀小试

kubectl create deployment my-dep --image=lizhenliang/java-demo --replicas=3 #创建一个deployment并且有三个副本
kubectl expose deployment my-dep --port=80 --targetip-port=8080 --type=NodePort --name web#service对外暴露80,对内转发的是内部的tomcat的8080端口;NodePort暴露网络到宿主机上;、
kubectl get ep#查看每个service集群后面的具体有哪些pod
kubectl get service #可以查看service和对应宿主机上的ip,主要对应的k8s内网的ip宿主机上是访问不了的
牛刀小试
简单作业
kubectl run pod-01 --image=nginx --port=80 --record #手工创建一个pod。目前不建议直接创建pod
kubectl get pods -n default #获取刚才创建的pod
kubectl delete pod pod-01 #删除刚才创建的pod

四、排查错误命令

排查错误命令
kubectl get apiservices 查看所有的api services以及相关的就绪状态
kubectl describe apiservices 上面apiservices的name名称 详细的一个资源的信息,或者报错信息

4.1 所有linux服务都可以使用journalctl查看日志

journalctl -u kubelet -f 实时查看kubelet日志
journalctl -u kubelet |grep error 查看日志筛选error关键词,当然任何服务都可以使用journalctl
journalctl -u kubelet > error.txt 重定向日志到文件里面,仔细查看

4.2 所有k8s pod查看日志

kubectl logs xx 查看pod日志,采集日志流程 kubectl logs 流程 --> apiserver —> kubelet > container
kubectl logs --help 查看logs相关的其他命令参数
kubectl logs pod名称 -c 容器名称 如果一个pod里面有多个容器,就要-c指定容器名称
kubectl logs kube-proxy-2vxn8 -n kube-system 查看系统组件日志
kubectl exec -it nginx-6799fc88d8-sx9qr -- bash 进入pod内部

五、Service vs Ingress

Service存在的意义,比如:一个java服务启三个副本,那么这java服务如何对外进行访问,
需要统一的对外接口和负载,这就是Service意义。
Ingress 可以理解为Service的Service,可以说是 Service之上的一个nginx

Service 和 Ingress的区别,联系
查看博客: k8s第三节 Kubernetes网络

六、使用yaml创建资源

yaml创建控制器样例

6.1 通过yaml创建Deployment

官方文档地址,搜索Deploymenthttps://kubernetes.io/search/?q=deployment 找一个yaml
官网最终deployment文档

6.1.1 入门部署nginx

功能 命令
执行yaml kubectl apply -f nginx-deployment.yaml
查看控制器Deployment kubectl get deployment -n default
查看Service kubectl get service -n default
查看Pod & pod所在的节点 & 查看lables kubectl get pod -n default -o wide --show-labels
查看副本集ReplicaSet(rs) kubectl get ReplicaSet -n default
查看容器日志 kubectl logs -f nginx-deployment-66b6c48dd5-klqb8
更新容器镜像 kubectl set image deployment/nginx-deployment nginx=nginx:1.16.1 --record

部署一个nginx
使用yaml部署第一个控制器 deployment gitee

6.1.2 deployment高阶操作 升级、弹性伸缩、回滚、删除等

deployment控制器高阶操作
1.手工扩容 scale

名称 命令
查看控制器deployment名称 kubectl get deployment nginx-deployment -o ymal |grep name
升级镜像 kubect set image deployment nginx-deployment nginx=nginx:1.16
升级镜像-并记录升级历史history kubect set image deployment nginx-deployment nginx=nginx:1.16 --record
滚动查看pod升级情况 kubectl get pod -w
手工扩容,副本数量扩展到10个 kubectl scale deployment nginx-deployment --replicas=10

参考 官网 scale
2.自动扩容 autoscale
自动扩容要基于资源占用率才行

中文 命令
查看hpa水平库容的全程 kubectl api-resources |grep hpa
查看是否部署了监控组件 metrics-server kubectl get pod -n kube-system
kubectl autoscale帮助命令 kubectl autoscale --help
查看hpa运行情况 kubectl get hpa、删除hpa kubectl delete hpa
资源利用率流程 kubectl top/hpa --> apiserver --> metrics-server --> kubelet --> pod
查看pod的利用率,必须安装了metrics-server kubectl top pods

deployment内部是有replicaset
查看副本历史:kubectl get rs
可以查看控制器详情更详细查看升级历史:kubectl describe deployment nginx-deployment
查看升级历史,版本对应rs记录kubectl rollout history deployment nginx-deployment

参考 官网 autoscale
replicset rs

6.2 如何快速获取yaml模板

当需要一个yaml模板的时候
1:官网搜索 copy
2:  导出已经部署的项目的yaml文件
3:自己创建一个项目并导出yaml
作用 命令
创建一个控制器Deployment并且导出到yml kubectl create deployment nginx --image=nginx:1.16 -o yaml --dry-run=client > my-deploy-nginx-create.yaml
查看已知的资源Deplyment & 指定-o输出 格式 到本地文件 kubectl get deployment nginx-deployment -o yaml > my-nginx-deployment.yml
查看yaml的语法 kubectl explain deploymentkubectl explain pods.spec.containers

自动扩容,出现pending说明主机node资源不够了,可以通过:kubectl describe pod nginx-deployment-644599b9c9-6mxw7查看详细报错信息,发现不能分配,cpu被分配完了:that the pod didn,t tolerate, 2 Insufficient cpu

6.3 通过yaml创建Service

官网搜索Servicehttps://kubernetes.io/search/?q=Service
官网具体 service文档

名称 指令 解释
查看pod并显示标签 kubectl get pods --show-labels service的时候一定要指定好selector标签
查看servce是否代理成功 kubectl get ep
查看service & 进行访问 kubectl get svc 80:31497/tcp 打开浏览器,输入任意节点ip,输入 http://任意节点ip:31497 就可以访问

暴露一个nginx控制器
使用yaml部署第一个Service来暴露deployment gitee

6.4 pod存在意义 & 分类 & 重启策略 & 练习

pod重启策略
参考官网:k8s 官网健身检查搜索 liveness

6.4.1 init container 容器

参考官网: init container容器
init container如 有数据库容器、web容器,数据库容器必须启动完成 才能启动web容器; 一般的容器全部是 业务容器

举例:比如init contanier 拉去百度首页,保存到容器; 业务容器nginx: 代理这个网页
静态pod

6.4.2 static pod 静态容器

随着kubelet一期启动的, static Pod

静态pod
参考:k8s官网 static pods静态pods

6.4.3 pod小练习

pod小练习

七、pod调度 和 工作流程

7.1 pod调度工作流程

创建Pod的工作流程
kubectl run nginx --image=nginx命令的操作流程

  1. kubectl将创建pod的请求提交到apiserver
  2. 会讲请求的信息写到etcd
  3. apiserver通知scheduler有创建新的pod,s收到创建之后就会根据调度算法选择最优的节点
  4. 给这个pod打一个标记,pod=kis-node1
  5. apierver收到scheuler调度结果写到ectd
  6. k8s-node1s上kubelect收到事件,从apiserver获取pod的相关信息
  7. kubelet调用docker api创建pod中所需的容器
  8. 会把这个pod的状态汇报给apiserver
  9. apiserver把状态写入etcd

7.2 pod调度主要属性nodeSelector、nodeAffinity节点亲和

nodeSelector 节点调度
nodeAffinity 节点亲和

pod调度相关参数

pod调度,把指定的pod调度到指定的节点上面。比如:有三个节点,一个普通节点、一个是SSD硬盘的节点、一个是GPV节点。

名称 命令 含义
给节点打标签 kubectl lable node k8s-node1 disktype = ssd 说明k8s-node1的磁盘类型是ssd
删除节点的标签 kubectl lable node k8s-node1 disktype- 删除标签

在这里插入图片描述

7.3 pod污点Taint、污点容忍tolerations

污点意义:避免pod调度到专用的节点。
污点不是强制的。
污点:就是专用的意思;给一台机器打一个污点,只有打了必须要调到指定污点的机器才能调到上。
【污点容忍】就是可以调到到有指定污点的节点上, 使用 tolerations。

污点
污点示例
污点容忍

简介 命令 解释
查看节点的污点 kubectl describe node k8s-master |grep Taintkubectl describe node |grep -i Taint master节点默认就是有一个污点
设置污点 kubectl taint node k8s-node1 disktype=ssd:NoSchedule 和打标签类似
查看pod分配到那个节点了 kubectl get pods -o wide
删除污点 kubectl taint node k8s-master node-role.kubernetes.io/master- 删除节点k8s-master上面的默认污点,主要减号-是删除

7.4 nodeName节点选择,后门调度

直接绕过各种选择和调度器,直接部署到指定的节点上。
这种情况用的很少

nodeName节点选择

7.5 调度失败的原因分析

  1. 节点cpu或者内存不足;3 node are available: 3 Insufficient cpu.
  2. 有污点,没有容忍;tainttolerations
  3. 没有匹配到节点标签; nodenamenodeselector

解决方式

名称 命令
查看调度节点情况 kubectl get pod <Name> -o wide
查看调度失败原因 kubectl describe pod <NAME>

7.6 控制器DaemonSet

使用最多的控制器Controller是Deployment,这里我们介绍一下DeamonSet.
特点:每一个节点上都会自动启动一个pod,新增的节点也会自动启动一个pod。
场景,日志采集、监控Agent、网络插件。

控制器DaemontSet
示例日志采集程序
kubectl get pods -n kube-system,后台程序一般都部署到kube-system里面,查看可以看到

目前只有一个node、一个master,发现calico、coredns、kube-proxy都是每台机器上都有

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

k8s第二节 Kubernetes入门、安装、创建Deployment、Service、pod调度 污点taint 的相关文章

  • 安装--centos7上使用kubeadm安装三节点的k8s集群

    安装文档 https kubernetes io zh cn docs setup production environment tools kubeadm install kubeadm 参考 https blog csdn net qq
  • 删除Pods

    通过删除job删除Pods 否者pods会重启 def cmd kubectl command try r os system kubectl command if r 0 print f Fail kubectl command retu
  • 社区的代码规范及e2e测试

    golangci lint 静态代码检查工具 是对golint gofmt的集成 速度更快 1 安装 go install github com golangci golangci lint cmd golangci lint v1 38
  • K8s部署自己的web项目

    一 静态网页项目 1 前端项目源码下载 链接 https pan baidu com s 15jCVawpyJxa0xhCJ9SwTCQ 提取码 m4an 2 编写nginx conf和Dockerfile 放在项目根目录下 1 创建ngi
  • CNI Plugin 介绍

    CNI 插件包括两种类型 CNI Plugin 和 IPAM IP Address Management Plugin CNI Plugin 负责为容器配置网络资源 IPAM Plugin 负责对容器的 IP 地址进行分配和管理 IPAM
  • KVM-7、KVM 虚拟机创建的几种方式

    通过对 qemu kvm libvirt 的学习 总结三种创建虚拟机的方式 1 通过 qemu kvm 创建 2 通过 virt install 创建 3 通过 virt manager 创建 在使用这三种创建虚拟机前提是 宿主机必须支持
  • underlay和overlay? & 传统网络和数据中心网络 ?

    underlay和overlay 百度 Underlay 和 Overlay 是网络架构中两个常用的概念 用于描述不同层次或视角下的网络结构和通信方式 1 Underlay 底层网络 Underlay 是指基础网络层 即物理网络或基础网络架
  • Harbor镜像仓库搭建

    1 安装docker comprose docker comprose是docker容器批量管理工具 curl L https get daocloud io docker compose releases download 1 25 0
  • docker的联合文件系统(UnionFS)

    docker最大的贡献就是定义了容器镜像的分层的存储格式 docker镜像技术的基础是联合文件系统 UnionFS 其文件系统是分层的 这样既可以充分利用共享层 又可以减少存储空间占用 联合挂载系统的工作原理 读 如果文件在upperdir
  • k8s基础概念、ETCD

    原理 和k8s结合点 etcd与k8s的交集 维护 基础概念 物理组件 逻辑组件 网络组件 工作负载 1 物理组件 Master Control plane kube apiserver 提供唯一api接口 提供集群管理接口 用户认证授权
  • k8s之nginx-ingress做tcp或udp的4层网络负载

    检查nginx ingress是否开启tcp udp转发 test test02 ingress kubectl get pod n ingress nginx o yaml grep i configmap configmap POD N
  • k8s--基础--23.1--认证-授权-准入控制--介绍

    k8s 基础 23 1 认证 授权 准入控制 介绍 1 介绍 k8s对我们整个系统的认证 授权 访问控制做了精密的设置 对于k8s集群来说 apiserver是整个就集群访问控制的唯一入口 我们在k8s集群之上部署应用程序的时候 可以通过宿
  • 如何解决K8S节点显示NotReady

    文章目录 kubernetes节点断电重启 kubernetes节点断电重启 背景 运行的好好的k8s集群 某天断电 发现一个节点炸了 显示NotReady kubectl get nodes 那么如何查找问题呢 我们用它 journalc
  • k8s问题 CrashLoopBackOff

    我们创建资源发现资源出现CrashLoopBackOff解决 CrashLoopBackOff 告诉我们 Kubernetes 正在尽力启动这个 Pod 但是一个或多个容器已经挂了 或者正被删除 root localhost kubectl
  • k8备份与恢复-Velero

    简介 Velero 是一款可以安全的备份 恢复和迁移 Kubernetes 集群资源和持久卷等资源的备份恢复软件 Velero 实现的 kubernetes 资源备份能力 可以轻松实现 Kubernetes 集群的数据备份和恢复 复制 ku
  • namespace命令空间

    目录 1 解决什么问题 2 基本介绍 2 1 定义 2 2 应用场景 3 使用案例 4 资源配额 5 标签 5 1 定义 5 2 pod资源打标签 5 3 查看标签 1 解决什么问题 命令空间类似于C 中的命名空间 当用户数量较多的集群 才
  • K8S暴露端口-dubbo应用远程Debug

    1 Dockerfile增加环境变量 ENV JAVA OPTS Xdebug Xrunjdwp transport dt socket address 9901 server y suspend n 2 暴露端口 template ser
  • 基于minikube的k8s单机环境部署ThingsBoard

    1 minikube安装k8s单机版 https blog csdn net qq 39879126 article details 121587678 2 安装ThingsBoard 下载 https github com thingsb
  • 从Docker到Kubernetes——Kubernetes设计解读之ReplicationController、Service

    文章目录 Kubernetes的设计解读 replication controller 设计解读 replication controller 使用示例 service的设计解读 service的使用示例 Kubernetes的设计解读 r
  • flannel和calico区别

    k8s网络模式 Flannel数据包在主机间转发是由backend实现的 目前已经支持UDP VxLAN host gw等多种模式 VxLAN 使用内核中的VxLAN模块进行封装报文 也是flannel推荐的方式 host gw虽然VXLA

随机推荐

  • npm ERR! 400/403 Bad Request - PUT https://registry.npmjs.org/xxx- “xxx“ is invalid for new packages

    npm ERR 403 403 Forbidden PUT https registry npmjs org df ui You do not have permission to publish df ui Are you logged
  • TypeError: 'builtin_function_or_method' object is not subscriptable的一种错误情况

    TypeError builtin function or method object is not subscriptable的一种错误情况 初学python 今天在做练习时为一个Error苦恼了很久 最终找到了解决方法 错误代码块如下
  • Contrastive Self-Supervised Learning 的对比学习框架和设计新方法

    翻译自 建议阅读原文 https towardsdatascience com a framework for contrastive self supervised learning and designing a new approac
  • OpenGL点精灵(Point Sprite)

    From http iiunknown blogbus com logs 48250551 html 在很多粒子的demo中 看到把粒子显示成一个个小球 如果你以为那是用glutSolidShpere画出来的话 你就错了 上万个粒子 每个球
  • 织梦网站服务器配置未见,DedeCms系统配置参数无法显示的解决方法

    Dedecms后台系统基本参数不显示的原因 这个是我使用dedecms建站来遇到的问题 到dedecms官方看了下 什么玩意的信息都没有 蛋疼的官方 对于我们这等草根来说dedecms官方基本没有指导作用 都是论坛的会员在哪儿里互相帮助 此
  • 患病率对 Delta 和样本量的影响 - 使用 R 语言进行计算

    患病率对 Delta 和样本量的影响 使用 R 语言进行计算 概述 在研究和实验设计中 样本量是一个重要的考虑因素 样本量的确定需要考虑多个因素 其中之一是患病率 即事件发生的概率 患病率的不同取值会对所需的样本量和效果大小 Delta 产
  • Flutter学习六:GestureDetector练习

    在Android中所有View都可以设置OnClick事件 但是在Flutter中除开少数自带Press事件的widget 大部分控件都是不带事件的 如果需要添加事件 就可以用GestureDetector作为父widget包裹需要添加事件
  • 华为OD真题练习

    华为OD真题练习 华为OD机考真题练习 题目描述 任务混部 公司创新实验室正在研究如何最小化资源成本 最大化资源利用率 请你设计算法帮他们解决一个任务混部问题 有taskNum项任务 每个任务有开始时间 startTime 结束时间 end
  • 获取ItemsControl中当前item的binding数据

    直接用 Binding 就可以了 如下
  • 负载均衡策略之AbstractLoadBalancerRule和RandomRule源码解读

    一 负载均衡类图 二 AbstractLoadBalancerRule解读 负载均衡策略的抽象类 public abstract class AbstractLoadBalancerRule implements IRule IClient
  • 微信小程序实现 3秒后自动跳转到指定页面

    需求描述 在某个页面 当用户点击 按钮 时 如果用户没有登录 则 3 秒后自动跳转到登录页面 思路 1 判断用户有没有进行登录 如果没有登录 那么就调用this delayTime 这个方法 2 首先写一个展示弹框的方法 this show
  • typescript interface定义数组每一项都为对象

    定义一个方法 返回一个数组 数组的每一项均为对象 对象中包含label和value两个属性 创建一个public ts文件 javascript实现 javascript 实现 export const formatYear functio
  • 基于深度卷积神经网络的小样本分割算法综述

    点击上方 小白学视觉 选择加 星标 或 置顶 重磅干货 第一时间送达 本文转自 视学算法 介绍 深度卷积神经网络在图像分类 目标检测 语义分割等许多视觉理解任务上都取得了重大突破 一个关键的原因是大规模数据集的可用性 比如 ImageNet
  • Git使用个人访问令牌提交代码到仓库

    2021年8月13日开始 GitHub在使用Git操作远程仓库时不再支持使用用户名密码形式进行身份验证 需使用个人访问令牌 使用Git操作GitHub仓库时使用用户名密码进行身份验证会报错 一 创建个人访问令牌 1 1 在GitHub官网右
  • 复习:详解函数重载

    什么是函数重载 一组函数 处于同一个作用域 其中函数名相同 参数列表的个数或类型不同 那么这一组函数就成为函数重载 一组函数要称得上函数重载 一定是处在同一个作用域中函数名同 参数列表同 返回值不同 不叫重载 因为函数符号都相同函数重载是通
  • sprintf与snprintf区别

    sprintf的原型如下 int sprintf char str const char format sprintf是字符串格式化命令 主要功能是把格式化的数据写入字符串str中 返回值为写入str的字节数 结束字符 0 不计入内 其中
  • 用户交易数据分析 - 投资绩效归因分析-Brision模型

    1 模型介绍 通过业绩归因 能够更加清楚组合的收益究竟来源于什么 进而知道这种获取超额收益的能力是否能够持续 也能够明白组合发生剧烈波动的原因 从而改进策略 Brision模型中 将组合的收益分四部分 选股收益 在资产类别 或板块 内部 超
  • spring boot 之JPA详解

    JPA参考文档 JPA详解 jpa之分页 本地sql查询 注意表名啥的都用数据库中的名称 适用于特定数据库的查询 public interface UserRepository extends JpaRepository
  • Qt 槽机制:public slots 和 private slots

    今天在写Qt图片浏览器的时候 遇到了一个问题 Qt的界面是对的 但是功能却怎么也实现不了 点击开始按钮 无法显示打开文件夹的对话框 开始以为是信号连接或者是函数写错了 检查了好久都不知道问题在哪 最后 对着书上的代码一行行研究 才发现问题在
  • k8s第二节 Kubernetes入门、安装、创建Deployment、Service、pod调度 污点taint

    一 k8s的集群架构与组件 k8s也是一个Master 多个node节点 下面是kubernetes结婚的架构与组件 1 1 master组件介绍 组件名称 介绍 kube apiserver Kubernetes API 集群的统一入口