当前位置: 首页 > news >正文

基于Prometheus监控Kubernetes集群

目录

一、环境准备

1.1、主机初始化配置

1.2、部署docker环境

二、部署kubernetes集群

2.1、组件介绍

2.2、配置阿里云yum源

2.3、安装kubelet kubeadm kubectl

2.4、配置init-config.yaml

2.5、安装master节点

2.6、安装node节点

2.7、安装flannel、cni

2.8、部署测试应用

3、部署Prometheus监控平台

3.1、准备Prometheus相关YAML文件

3.2、部署prometheus

4、部署Grafana服务

4.1、部署Grafana相关yaml文件

4.2、配置Grafana数据源


一、环境准备

操作系统

IP地址

主机名

组件

CentOS7.5

192.168.147.137

k8s-master

kubeadmkubeletkubectldocker-ce

CentOS7.5

192.168.147.139

k8s-node01

kubeadm、kubelet、kubectl、docker-ce

CentOS7.5

192.168.147.140

k8s-node02

kubeadmkubeletkubectldocker-ce

注意:所有主机配置推荐CPU2C+  Memory2G+

项目拓扑

 

1.1、主机初始化配置

所有主机配置禁用防火墙和selinux

[root@localhost ~]# setenforce 0
[root@localhost ~]# iptables -F
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
[root@localhost ~]# systemctl stop NetworkManager
[root@localhost ~]# systemctl disable NetworkManager
[root@localhost ~]# sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config

配置主机名并绑定hosts,不同主机名称不同

[root@localhost ~]# hostname k8s-master
[root@localhost ~]# bash
[root@k8s-master ~]# cat << EOF >> /etc/hosts
192.168.147.137 k8s-master
192.168.147.139 k8s-node01
192.168.147.140 k8s-node02
EOF[root@k8s-master ~]# scp /etc/hosts 192.168.200.112:/etc/
[root@k8s-master ~]# scp /etc/hosts 192.168.200.113:/etc/[root@localhost ~]# hostname k8s-node01
[root@localhost ~]# bash
[root@k8s-node01 ~]#[root@localhost ~]# hostname k8s-node02
[root@localhost ~]# bash
[root@k8s-node02 ~]#

主机配置初始化

[root@k8s-master ~]# yum -y install vim wget net-tools lrzsz[root@k8s-master ~]# swapoff -a
[root@k8s-master ~]# sed -i '/swap/s/^/#/' /etc/fstab[root@k8s-node01 ~]# cat << EOF >> /etc/sysctl.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
[root@k8s-node01 ~]# modprobe br_netfilter
[root@k8s-node01 ~]# sysctl -p

1.2、部署docker环境

三台主机上分别部署 Docker 环境,因为 Kubernetes 对容器的编排需要 Docker 的支持。

[root@k8s-master ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
[root@k8s-master ~]# yum install -y yum-utils device-mapper-persistent-data lvm2

使用 YUM 方式安装 Docker 时,推荐使用阿里的 YUM 源。

[root@k8s-master ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo[root@k8s-master ~]# yum clean all && yum makecache fast [root@k8s-master ~]# yum -y install docker-ce
[root@k8s-master ~]# systemctl start docker
[root@k8s-master ~]# systemctl enable docker

镜像加速器(所有主机配置)

[root@k8s-master ~]# cat << END > /etc/docker/daemon.json
{"registry-mirrors":[ "https://nyakyfun.mirror.aliyuncs.com" ]
}
END
[root@k8s-master ~]# systemctl daemon-reload
[root@k8s-master ~]# systemctl restart docker

二、部署kubernetes集群

2.1、组件介绍

三个节点都需要安装下面三个组件

  1. kubeadm:安装工具,使所有的组件都会以容器的方式运行
  2. kubectl:客户端连接K8S API工具
  3. kubelet:运行在node节点,用来启动容器的工具

2.2、配置阿里云yum源

使用 YUM 方式安装 Kubernetes时,推荐使用阿里的 YUM 源。

[root@k8s-master ~]# cat <<EOF > /etc/yum.repos.d/kubernetes.repo 
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpghttps://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF[root@k8s-master ~]# ls /etc/yum.repos.d/
backup  Centos-7.repo  CentOS-Media.repo  CentOS-x86_64-kernel.repo  docker-ce.repo  kubernetes.repo

2.3、安装kubelet kubeadm kubectl

所有主机配置

[root@k8s-master ~]# yum install -y kubelet kubeadm kubectl
[root@k8s-master ~]# systemctl enable kubelet

kubelet 刚安装完成后,通过 systemctl start kubelet 方式是无法启动的,需要加入节点或初始化为 master 后才可启动成功。

2.4、配置init-config.yaml

Kubeadm 提供了很多配置项,Kubeadm 配置在 Kubernetes 集群中是存储在ConfigMap 中的,也可将这些配置写入配置文件,方便管理复杂的配置项。Kubeadm 配内容是通过 kubeadm config 命令写入配置文件的。

在master节点安装,master 定于为192.168.147.137,通过如下指令创建默认的init-config.yaml文件:

[root@k8s-master ~]# kubeadm config print init-defaults > init-config.yaml

init-config.yaml配置

[root@k8s-master ~]# cat init-config.yaml 
apiVersion: kubeadm.k8s.io/v1beta2
bootstrapTokens:
- groups:- system:bootstrappers:kubeadm:default-node-tokentoken: abcdef.0123456789abcdefttl: 24h0m0susages:- signing- authentication
kind: InitConfiguration
localAPIEndpoint:advertiseAddress: 192.168.147.137		//master节点IP地址bindPort: 6443
nodeRegistration:criSocket: /var/run/dockershim.sockname: k8s-master		//如果使用域名保证可以解析,或直接使用 IP 地址taints:- effect: NoSchedulekey: node-role.kubernetes.io/master
---
apiServer:timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns:type: CoreDNS
etcd:local:dataDir: /var/lib/etcd		//etcd 容器挂载到本地的目录
imageRepository: registry.aliyuncs.com/google_containers	//修改为国内地址
kind: ClusterConfiguration
kubernetesVersion: v1.19.0
networking:dnsDomain: cluster.localserviceSubnet: 10.96.0.0/12podSubnet: 10.244.0.0/16 	//新增加 Pod 网段
scheduler: {}

2.5、安装master节点

拉取所需镜像

[root@k8s-master ~]# kubeadm config images list --config init-config.yaml
W0816 18:15:37.343955   20212 configset.go:348] WARNING: kubeadm cannot validate component configs for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io]
registry.aliyuncs.com/google_containers/kube-apiserver:v1.19.0
registry.aliyuncs.com/google_containers/kube-controller-manager:v1.19.0
registry.aliyuncs.com/google_containers/kube-scheduler:v1.19.0
registry.aliyuncs.com/google_containers/kube-proxy:v1.19.0
registry.aliyuncs.com/google_containers/pause:3.2
registry.aliyuncs.com/google_containers/etcd:3.4.9-1
registry.aliyuncs.com/google_containers/coredns:1.7.0
[root@k8s-master ~]# ls | while read line
do
docker load < $line
done

安装matser节点

[root@k8s-master ~]# kubeadm init --config=init-config.yaml	//初始化安装K8S

根据提示操作

kubectl 默认会在执行的用户家目录下面的.kube 目录下寻找config 文件。这里是将在初始化时[kubeconfig]步骤生成的admin.conf 拷贝到.kube/config

[root@k8s-master ~]# mkdir -p $HOME/.kube
[root@k8s-master ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@k8s-master ~]# chown $(id -u):$(id -g) $HOME/.kube/config 

Kubeadm 通过初始化安装是不包括网络插件的,也就是说初始化之后是不具备相关网络功能的,比如 k8s-master 节点上查看节点信息都是“Not Ready”状态、Pod 的 CoreDNS无法提供服务等。

2.6、安装node节点

根据master安装时的提示信息

[root@k8s-node01 ~]# kubeadm join 192.168.147.137:6443 --token abcdef.0123456789abcdef     --discovery-token-ca-cert-hash sha256:db9458ca9d8eaae330ab33da5e28f61778515af2ec06ff14f79d94285445ece9 
[root@k8s-master ~]# kubectl get nodes
NAME         STATUS     ROLES    AGE     VERSION
k8s-master   NotReady   master   2m22s   v1.19.0
k8s-node01   NotReady   <none>   15s     v1.19.0
k8s-node02   NotReady   <none>   11s     v1.19.0

前面已经提到,在初始化 k8s-master 时并没有网络相关配置,所以无法跟 node 节点通信,因此状态都是“NotReady”。但是通过 kubeadm join 加入的 node 节点已经在k8s-master 上可以看到。

2.7、安装flannel、cni

Master 节点NotReady 的原因就是因为没有使用任何的网络插件,此时Node 和Master的连接还不正常。目前最流行的Kubernetes 网络插件有Flannel、Calico、Canal、Weave 这里选择使用flannel。

所有主机上传flannel_v0.12.0-amd64.tar、cni-plugins-linux-amd64-v0.8.6.tgz

[root@k8s-master ~]# docker load < flannel_v0.12.0-amd64.tar 
[root@k8s-master ~]# tar xf cni-plugins-linux-amd64-v0.8.6.tgz 
[root@k8s-master ~]# cp flannel /opt/cni/bin/

master上传kube-flannel.yml

master主机配置:

[root@k8s-master ~]# kubectl apply -f kube-flannel.yml 
[root@k8s-master ~]# kubectl get nodes
NAME         STATUS   ROLES    AGE     VERSION
k8s-master   Ready    master   7m8s    v1.19.0
k8s-node01   Ready    <none>   5m1s    v1.19.0
k8s-node02   Ready    <none>   4m57s   v1.19.0
[root@k8s-master ~]# kubectl get pods -n kube-system
NAME                                 READY   STATUS    RESTARTS   AGE
coredns-6d56c8448f-8282g             1/1     Running   0          7m19s
coredns-6d56c8448f-wrdw6             1/1     Running   0          7m19s
etcd-k8s-master                      1/1     Running   0          7m30s
kube-apiserver-k8s-master            1/1     Running   0          7m30s
kube-controller-manager-k8s-master   1/1     Running   0          7m30s
kube-flannel-ds-amd64-pvzxl          1/1     Running   0          62s
kube-flannel-ds-amd64-qkjtd          1/1     Running   0          62s
kube-flannel-ds-amd64-szwp4          1/1     Running   0          62s
kube-proxy-9fbkb                     1/1     Running   0          7m19s
kube-proxy-p2txx                     1/1     Running   0          5m28s
kube-proxy-zpb98                     1/1     Running   0          5m32s
kube-scheduler-k8s-master            1/1     Running   0          7m30s

 已经是ready状态

2.8、部署测试应用

所有node主机导入测试镜像

[root@k8s-node01 ~]# docker load < nginx-1.19.tar 
[root@k8s-node01 ~]# docker tag nginx nginx:1.19.6

在Kubernetes集群中创建一个pod,验证是否正常运行。

[root@k8s-master demo]# rz -E
rz waiting to receive.
[root@k8s-master demo]# vim nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx-deploymentlabels:app: nginx
spec:replicas: 3selector: matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- name: nginximage: nginx:1.19.6ports:- containerPort: 80

创建完 Deployment 的资源清单之后,使用 create 执行资源清单来创建容器。通过 get pods 可以查看到 Pod 容器资源已经自动创建完成。

[root@k8s-master demo]# kubectl get pods
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-76ccf9dd9d-29ch8   1/1     Running   0          8s
nginx-deployment-76ccf9dd9d-lm7nl   1/1     Running   0          8s
nginx-deployment-76ccf9dd9d-lx29n   1/1     Running   0          8s
[root@k8s-master demo]#  kubectl get pods -o wide
NAME                                READY   STATUS    RESTARTS   AGE   IP           NODE         NOMINATED NODE   READINESS GATES
nginx-deployment-76ccf9dd9d-29ch8   1/1     Running   0          18s   10.244.2.4   k8s-node02   <none>           <none>
nginx-deployment-76ccf9dd9d-lm7nl   1/1     Running   0          18s   10.244.1.3   k8s-node01   <none>           <none>
nginx-deployment-76ccf9dd9d-lx29n   1/1     Running   0          18s   10.244.2.3   k8s-node02   <none>           <none>

创建Service资源清单

在创建的 nginx-service 资源清单中,定义名称为 nginx-service 的 Service、标签选择器为 app: nginx、type 为 NodePort 指明外部流量可以访问内部容器。在 ports 中定义暴露的端口库号列表,对外暴露访问的端口是 80,容器内部的端口也是 80。

[root@k8s-master demo]# vim nginx-service.yaml
kind: Service
apiVersion: v1
metadata:name: nginx-service
spec:selector:app: nginxtype: NodePortports:- protocol: TCPport: 80
targetPort: 80[root@k8s-master demo]# vim nginx-server.yaml
[root@k8s-master demo]# kubectl create -f nginx-server.yaml 
service/nginx-service created
[root@k8s-master demo]# kubectl get svc
NAME            TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE
kubernetes      ClusterIP   10.96.0.1        <none>        443/TCP        7m46s
nginx-service   NodePort    10.106.168.130   <none>        80:31487/TCP   10s

 

3、部署Prometheus监控平台

3.1、准备Prometheus相关YAML文件

在master节点/opt目录下新建pgmonitor目录

[root@k8s-master ~]# mkdir /opt/pgmonitor
[root@k8s-master ~]# cd /opt/pgmonitor

将下载yaml包上传至/opt/pgmonitor目录并解压

[root@k8s-master pgmonitor]# unzip k8s-prometheus-grafana-master.zip 

3.2、部署prometheus

部署守护进程

[root@k8s-master pgmonitor]# cd k8s-prometheus-grafana-master/
[root@k8s-master k8s-prometheus-grafana-master]# kubectl create -f node-exporter.yaml 
daemonset.apps/node-exporter created
service/node-exporter created

部署其他yaml文件

进入/opt/pgmonitor/k8s-prometheus-grafana-master/prometheus目录

[root@k8s-master k8s-prometheus-grafana-master]# cd prometheus

部署rbac、部署configmap.yaml、部署prometheus.deploy.yml、部署prometheus.svc.yml

[root@k8s-master prometheus]# kubectl create -f rbac-setup.yaml 
clusterrole.rbac.authorization.k8s.io/prometheus created
serviceaccount/prometheus created
clusterrolebinding.rbac.authorization.k8s.io/prometheus created
[root@k8s-master prometheus]# kubectl create -f configmap.yaml 
configmap/prometheus-config created
[root@k8s-master prometheus]# kubectl create -f prometheus.deploy.yml 
deployment.apps/prometheus created
[root@k8s-master prometheus]# kubectl create -f prometheus.svc.yml 
service/prometheus created

查看prometheus状态

[root@k8s-master prometheus]# kubectl get pods -n kube-system
NAME                                 READY   STATUS    RESTARTS   AGE
coredns-6d56c8448f-8zrt7             1/1     Running   0          14m
coredns-6d56c8448f-hzm5v             1/1     Running   0          14m
etcd-k8s-master                      1/1     Running   0          15m
kube-apiserver-k8s-master            1/1     Running   0          15m
kube-controller-manager-k8s-master   1/1     Running   0          15m
kube-flannel-ds-amd64-4654f          1/1     Running   0          11m
kube-flannel-ds-amd64-bpx5q          1/1     Running   0          11m
kube-flannel-ds-amd64-nnhlh          1/1     Running   0          11m
kube-proxy-2sps9                     1/1     Running   0          13m
kube-proxy-99hn4                     1/1     Running   0          13m
kube-proxy-s624n                     1/1     Running   0          14m
kube-scheduler-k8s-master            1/1     Running   0          15m
node-exporter-brgw6                  1/1     Running   0          3m28s
node-exporter-kvvgp                  1/1     Running   0          3m28s
prometheus-68546b8d9-vmjms           1/1     Running   0          87s

4、部署Grafana服务

4.1、部署Grafana相关yaml文件

进入/opt/pgmonitor/k8s-prometheus-grafana-master/grafana目录

[root@k8s-master prometheus]# cd ../grafana/

部署grafana-deploy.yaml、部署grafana-svc.yaml、部署grafana-ing.yaml

[root@k8s-master prometheus]# cd ../grafana/
[root@k8s-master grafana]# kubectl create -f grafana-deploy.yaml 
deployment.apps/grafana-core created
[root@k8s-master grafana]# kubectl create -f grafana-svc.yaml 
service/grafana created
[root@k8s-master grafana]# kubectl create -f grafana-ing.yaml 
Warning: extensions/v1beta1 Ingress is deprecated in v1.14+, unavailable in v1.22+; use networking.k8s.io/v1 Ingress
ingress.extensions/grafana created

查看Grafana状态

[root@k8s-master grafana]# kubectl get pods -n kube-system
NAME                                 READY   STATUS    RESTARTS   AGE
coredns-6d56c8448f-8zrt7             1/1     Running   0          18m
coredns-6d56c8448f-hzm5v             1/1     Running   0          18m
etcd-k8s-master                      1/1     Running   0          18m
grafana-core-6d6fb7566-vphhz         1/1     Running   0          115s
kube-apiserver-k8s-master            1/1     Running   0          18m
kube-controller-manager-k8s-master   1/1     Running   0          18m
kube-flannel-ds-amd64-4654f          1/1     Running   0          14m
kube-flannel-ds-amd64-bpx5q          1/1     Running   0          14m
kube-flannel-ds-amd64-nnhlh          1/1     Running   0          14m
kube-proxy-2sps9                     1/1     Running   0          16m
kube-proxy-99hn4                     1/1     Running   0          16m
kube-proxy-s624n                     1/1     Running   0          18m
kube-scheduler-k8s-master            1/1     Running   0          18m
node-exporter-brgw6                  1/1     Running   0          6m55s
node-exporter-kvvgp                  1/1     Running   0          6m55s
prometheus-68546b8d9-vmjms           1/1     Running   0          4m54s

4.2、配置Grafana数据源

查看grafana的端口

[root@k8s-master grafana]# kubectl get svc -n kube-system
NAME            TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                  AGE
grafana         NodePort    10.105.158.0    <none>        3000:31191/TCP           2m19s
kube-dns        ClusterIP   10.96.0.10      <none>        53/UDP,53/TCP,9153/TCP   19m
node-exporter   NodePort    10.111.78.61    <none>        9100:31672/TCP           7m25s
prometheus      NodePort    10.98.254.105   <none>        9090:30003/TCP           5m12s

通过浏览器访问grafana,http://[masterIP]:[grafana端口]

例如:http://192.168.200.111:31191,默认的用户名和密码:admin/admin

 

 设置DataSource

名字自定义、url是cluster-IP

 进入Import

输入315并移除光标,等一会儿即可进入下一个页面

 

 

 

 

相关文章:

基于Prometheus监控Kubernetes集群

目录 一、环境准备 1.1、主机初始化配置 1.2、部署docker环境 二、部署kubernetes集群 2.1、组件介绍 2.2、配置阿里云yum源 2.3、安装kubelet kubeadm kubectl 2.4、配置init-config.yaml 2.5、安装master节点 2.6、安装node节点 2.7、安装flannel、cni 2.8、部署测…...

【数据分析】pandas (三)

基本功能 在这里&#xff0c;我们将讨论pandas数据结构中常见的许多基本功能 让我们创建一些示例对象&#xff1a; index pd.date_range(“1/1/2000”, periods8) s pd.Series(np.random.randn(5), index[“a”, “b”, “c”, “d”, “e”]). df pd.DataFrame(np.random.…...

nvm命令

1. 常见命令 1. nvm -v //查看nvm版本 nvm --version &#xff1a;显示 nvm 版本 2. nvm list //显示版本列表 nvm list &#xff1a;显示已安装的版本&#xff08;同 nvm list installednvm list installed&#xff1a;显示已安装的版本nvm list available&#xff1a;显示所有…...

从此已是义无反顾

距离上次发这个专栏的文章已经过去了十多天&#xff0c;现在我已经开始准备面试内容&#xff0c;迟迟还没有投出第一份简历&#xff0c;只是因为我感觉对知识点的理解还不到位&#xff0c;于是开始一边看JavaGuide老师总结的面试题目&#xff0c;一边翻看以前学习的笔记&#x…...

Element组件浅尝辄止2:Card卡片组件

根据官方说法&#xff1a; 将信息聚合在卡片容器中展示。 1.啥时候使用&#xff1f;When? 既然是信息聚合的容器&#xff0c;那场景就好说了 新建页面时可以用来当做页面容器页面的某一部分&#xff0c;可以用来当做子容器 2.怎样使用&#xff1f;How&#xff1f; //Card …...

“深入剖析Java多态:点燃编程世界火花“

White graces&#xff1a;个人主页 &#x1f649;专栏推荐:Java入门知识&#x1f649; &#x1f649; 内容推荐:“继承与组合&#xff1a;代码复用的两种策略“&#x1f649; &#x1f439;今日诗词:马踏祁连山河动,兵起玄黄奈何天&#x1f439; 快去学习 &#x1f338;思维导…...

golang官方限流器rate包实践

日常开发中&#xff0c;对于某些接口有请求频率的限制。比如登录的接口、发送短信的接口、秒杀商品的接口等等。 官方的golang.org/x/time/rate包中实现了令牌桶的算法。 封装限流器可以将ip、手机号这种的作为限流器组的标识。 接下来就是实例化限流器和获取令牌函数的实现…...

[windows]MAT- 下载及安装

1. 下载安装包 1.1MAT下载链接&#xff1a; https://pan.baidu.com/s/1sUWPITSto8MjOrcF0BsJQg?pwd1111 提取码&#xff1a;1111 1.2MAT需要jdk17版本及以上支持&#xff0c;下载链接: https://pan.baidu.com/s/111jz90S4tie_48lQeExcZg?pwd1111 提取码&#xff1a;1…...

数组模拟环形队列详解

数组模拟环形队列 实现逻辑 创建一个固定大小的数组作为队列的存储空间&#xff0c;同时定义队列的头部和尾部指针&#xff08;front和rear&#xff09;。初始时&#xff0c;将头部和尾部指针都设置为0&#xff0c;表示队列为空。入队操作&#xff08;enqueue&#xff09;&am…...

《论文阅读12》RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds

一、论文 研究领域&#xff1a;全监督3D语义分割&#xff08;室内&#xff0c;室外RGB&#xff0c;kitti&#xff09;论文&#xff1a;RandLA-Net: Efficient Semantic Segmentation of Large-Scale Point Clouds CVPR 2020 牛津大学、中山大学、国防科技大学 论文链接论文gi…...

elementPlus使用el-icon

安装 # NPM $ npm install element-plus/icons-vue # Yarn $ yarn add element-plus/icons-vue # pnpm $ pnpm install element-plus/icons-vue一、main.ts&#xff08;全局注册&#xff09; import * as ElementIcons from element-plus/icons-vuefor (const key in Element…...

预测知识 | 神经网络、机器学习、深度学习

预测知识 | 预测技术流程及模型评价 目录 预测知识 | 预测技术流程及模型评价神经网络机器学习深度学习参考资料 神经网络 神经网络&#xff08;neural network&#xff09;是机器学习的一个重要分支&#xff0c;也是深度学习的核心算法。神经网络的名字和结构&#xff0c;源自…...

【Linux】进程的基本属性|父子进程关系

个人主页&#xff1a;&#x1f35d;在肯德基吃麻辣烫 我的gitee&#xff1a;Linux仓库 个人专栏&#xff1a;Linux专栏 分享一句喜欢的话&#xff1a;热烈的火焰&#xff0c;冰封在最沉默的火山深处 文章目录 前言进程属性1.进程PID和PPID2.fork函数创建子进程1&#xff09;为什…...

CCF考试:201809-1 卖菜(java代码)

目录 1、【问题描述】 2、【思路分析】 3、【代码区】 1、【问题描述】 在一条街上有n个卖菜的商店&#xff0c;按1至n的顺序排成一排&#xff0c;这些商店都卖一种蔬菜。   第一天&#xff0c;每个商店都自己定了一个价格。店主们希望自己的菜价和其他商店的一致&#xf…...

android wifi扫描 framework层修改扫描间隔

frameworks/opt/net/wifi/service/java/com/android/server/wifi/ScanRequestProxy.java 这个也就是说前台应用可以在120s(2分钟) 扫描 4 次 * a) Each foreground app can request a max of* {link #SCAN_REQUEST_THROTTLE_MAX_IN_TIME_WINDOW_FG_APPS} scan every* {l…...

webstorm debug调试vue项目

1.运行npm&#xff0c;然后控制台会打印下图中的地址&#xff0c;复制local的地址 2.run–>Edit Configuration&#xff0c;如下图 3.设置测试项 4.在你需要的js段打好断点 5.在上边框的工具栏里面有debug运行&#xff0c;点击debug运行的图标运行即可...

嵌入式linux的八股文之旅 DAY1

1 三次握手 四次挥手 服务端 先从close到listen 然后第一个syn报文 客户端 生成初始序列号 client_isn &#xff08;就是iternal sequence number 初始序列号&#xff09; 然后放到TCP首部的序列号端里 然后把SYN标志位置一 然后发送给服务器端 之后处于SYN-SENT状态 服务器…...

同创永益郑阳|与数智化共舞·业务稳定性保障新动力

2023年8月2日&#xff0c;由北大创新评论主办的2023 Inno China中国产业创新大会-保险产业创新论坛在京举办。本次论坛由同创永益、青牛软件、DaoCloud道客联合主办&#xff0c;INNO创新家、产业集群发展提供战略支持&#xff0c;未名数创承办&#xff0c;邀请到了学术专家、行…...

史上最全的Qt控件

本软件是收费工具&#xff0c;学生党勿扰&#xff0c;闹眼子党勿扰&#xff0c;白嫖党勿扰 收费金额&#xff1a;1000元 1 概述 经过这两年的编写&#xff0c;写不少控件&#xff0c;甚至把刘某某90%的控件都绘制了一遍。当然后还有一些其他刘某没有控件。 2 功能 借用刘某博…...

星星之火:国产讯飞星火大模型的实际使用体验(与GPT对比)

#AIGC技术内容创作征文&#xff5c;全网寻找AI创作者&#xff0c;快来释放你的创作潜能吧&#xff01;# 文章目录 1 前言2 测试详情2.1 文案写作2.2 知识写作2.3 阅读理解2.4 语意测试&#xff08;重点关注&#xff09;2.5 常识性测试&#xff08;重点关注&#xff09;2.6 代码…...

Qwen3-14B中文大模型部署教程:token处理优化与生成质量调优

Qwen3-14B中文大模型部署教程&#xff1a;token处理优化与生成质量调优 1. 镜像概述与环境准备 Qwen3-14B是由通义千问团队开发的中文大语言模型&#xff0c;在各类自然语言处理任务中表现出色。本教程将详细介绍如何基于优化定制的私有部署镜像&#xff0c;快速搭建Qwen3-14…...

Wan2.1-umt5多轮对话效果展示:复杂任务分解与执行跟踪

Wan2.1-umt5多轮对话效果展示&#xff1a;复杂任务分解与执行跟踪 最近在测试各种对话模型时&#xff0c;我遇到了一个挺有意思的挑战&#xff1a;让AI帮忙规划一次完整的旅行。这可不是简单的一问一答&#xff0c;它涉及到理解模糊需求、主动追问细节、分解多个子任务&#x…...

鸣鸣很忙上市后首份年报:营收662亿同比增长 经调整净利27亿

雷递网 雷建平 3月31日湖南鸣鸣很忙商业连锁股份有限公司&#xff08;简称&#xff1a;“鸣鸣很忙”&#xff0c;股份代号&#xff1a;1768&#xff09;今日发布截至2025年12月31日的财报。财报显示&#xff0c;鸣鸣很忙2025年营收为661.7亿元&#xff0c;较上年他同期的393.44…...

显卡驱动彻底清理指南:用DDU解决90%的显示问题

显卡驱动彻底清理指南&#xff1a;用DDU解决90%的显示问题 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-uninstaller 当…...

从零开始:用CosyVoice2-0.5B快速搭建AI语音生成平台

从零开始&#xff1a;用CosyVoice2-0.5B快速搭建AI语音生成平台 1. 为什么选择CosyVoice2-0.5B&#xff1f; 语音合成技术已经发展多年&#xff0c;但大多数解决方案要么需要复杂的配置过程&#xff0c;要么需要大量训练数据。阿里开源的CosyVoice2-0.5B打破了这一局面&#…...

SGMICRO圣邦微 SGM803B-JXN3G/TR SOT-23-3 监控和复位芯片

特性 适用于MAX803/MAX809/MAX810和ADM803/ADM809/ADM810的卓越升级版 高精度固定检测选项:3V、3.3V和5V 低供电电流:300nA(典型值)上电复位脉冲宽度:150毫秒(最小值) 复位输出选项: 开漏nRESET输出(SGM803B)推挽nRESET输出(SGM809B) . . 推挽复位输出(SGM810B)复位有效电压低至…...

DS4Windows手柄适配工具全解析:从安装到高级配置的完美指南

DS4Windows手柄适配工具全解析&#xff1a;从安装到高级配置的完美指南 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 在PC游戏领域&#xff0c;手柄支持一直是玩家体验的关键环节。许多…...

nlp_structbert_sentence-similarity_chinese-large 赋能智能客服:基于Vue前端的问题相似度匹配实践

nlp_structbert_sentence-similarity_chinese-large 赋能智能客服&#xff1a;基于Vue前端的问题相似度匹配实践 你有没有遇到过这种情况&#xff1f;在某个网站的客服对话框里&#xff0c;输入一个问题&#xff0c;等了半天&#xff0c;要么是机器人答非所问&#xff0c;要么…...

【STM32F103标准库开发】DMA+USART双剑合璧:实战环形缓冲区与空闲中断解析

1. 为什么需要DMAUSART组合方案 第一次用STM32做GPS数据采集时&#xff0c;我被串口中断折磨得够呛。当时用的是传统中断接收模式&#xff0c;每收到一个字节就触发一次中断&#xff0c;在115200波特率下&#xff0c;CPU几乎被串口中断占满&#xff0c;其他任务根本跑不动。后来…...

seo文章生成工具的原理是什么

SEO文章生成工具的原理是什么&#xff1f; 随着互联网的发展&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;在网站运营中的重要性愈加凸显。在这个过程中&#xff0c;SEO文章生成工具逐渐成为许多网站管理者的利器。这些工具究竟是如何运作的呢&#xff1f;本文将详细解…...