81、k8s网络配置以及k8s拉取私有仓库

一、k8s架构安装部署

k8s架构master 192.168.168.81    docker、kubeadm、kubelet、kubectl、flannel
node01 192.168.168.82    docker kubeadm kubelet kubectl flannel
node02 192.168.168.83    docker、kubeadm、kubelet、kubectl、flannel#关闭防火墙
[root@k8s1 ~]# systemctl stop firewalld
[root@k8s1 ~]# setenforce 0
[root@k8s1 ~]# iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X  ##清空防护墙策略
##永久关闭交换分区
[root@k8s1 ~]# swapoff -a
[root@k8s1 ~]# sed -ri 's/.*swap.*/#&/' /etc/fstab 
[root@k8s1 ~]# for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done
[root@k8s1 ~]# date#根据规划设置主机名
--------------单独操作------------
[root@k8s1 ~]# hostnamectl set-hostname master01
[root@k8s2 ~]# hostnamectl set-hostname node01
[root@k8s3 ~]# hostnamectl set-hostname node02
------------------------------------------------
[root@k8s1 ~]# su[root@master01 ~]# vim /etc/hosts   ##开启主机名和ip地址映射192.168.168.81 master01
192.168.168.82 node01
192.168.168.83 node02#使用多行重定向调整内核参数,前2行为开启网桥模式后2行为关闭ipv6协议和开启路由转发
[root@master01 ~]# cat > /etc/sysctl.d/kubernetes.conf << EOF
> #开启网桥模式,可将网桥的流量传递给iptables链
> net.bridge.bridge-nf-call-ip6tables=1
> net.bridge.bridge-nf-call-iptables=1
> #关闭ipv6协议
> net.ipv6.conf.all.disable_ipv6=1
> net.ipv4.ip_forward=1
> EOF#加载内核使得配置内核参数生效
[root@master01 ~]# sysctl --system#所有节点部署docker引擎
[root@master01 ~]# yum install -y yum-utils device-mapper-persistent-data lvm2 #添加Docker官方源,并将它设置为docker-ce.repo文件
[root@master01 ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #yum安装docker-ce和docker客户端以及容器io
[root@master01 ~]# yum install -y docker-ce-24.0.1 docker-ce-cli-24.0.1 containerd.io[root@master01 ~]# mkdir /etc/docker/
cat > /etc/docker/daemon.json <<EOF
{"registry-mirrors": ["https://hub.littlediary.cn/"],"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"}
}
EOF
-------------------------第二个源-----------------
[root@master01 ~]# vim /etc/docker/daemon.json 
{"registry-mirrors": ["https://hub-mirror.c.163.com","https://docker.m.daocloud.io","https://ghcr.io","https://mirror.baidubce.com","https://docker.nju.edu.cn"],"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"}
}[root@master01 ~]# systemctl daemon-reload
[root@master01 ~]# systemctl restart docker
[root@master01 ~]# systemctl enable docker
------------------可试试---------------[root@master01 ~]# systemctl daemon-reload
[root@master01 ~]# systemctl restart docker
[root@master01 ~]# systemctl enable docker[root@master01 ~]# docker pull nginx[root@master01 ~]# docker info | grep "Cgroup Driver"Cgroup Driver: systemd------------------定义源-------------
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
---------------------------------------
yum install -y kubelet-1.20.15 kubeadm-1.20.15 kubectl-1.20.15[root@master01 ~]# systemctl enable kubelet
##所有的组件都是以pod的运行的,必须要设置开机自启[root@master01 ~]# kubeadm config images list --kubernetes-version 1.20.15pause:镜像,特殊容器,这个容器的作用就是保持pod当中其他容器的运行。
创建pod,首先拉取镜像,pod当中的会有一个pause,pause会在每个pod当中创建一个网络命名空。
pod的生命周期结束,pause也随之一块退出,释放该pod的网络命名空间。pod--------镜像----------容器nginx
pause nginx---->10.244.0.10给pod分配IP地址
coredns:域名解析取消同步操作------master01操作-------
[root@master01 ~]# kubeadm init \
--apiserver-advertise-address=192.168.168.81 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version=v1.20.15 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=10.244.0.0/16 \
--token-ttl=0
------------------------以下解释---------------------
--apiserver-advertise-address=192.168.168.81 \内部通信的ip地址,指向的主,也可以用0.0.0.0表示任意主机
--image-repository registry.aliyuncs.com/google_containers \##指定镜像的仓库---》k8s组件的仓库地址--kubernetes-version=v1.20.15 \ ##k8s的版本
--service-cidr=10.96.0.0/16 \  ##service的网段
--pod-network-cidr=10.244.0.0/16 \  ##pod分配的网段,10.244.0.0/16 flannel的默认网段。calico:192.168.0.0/16
--token-ttl=0  ##token永不过期,内部使用,不加的话,默认是一天
------------------复制到node节点上-------------
kubeadm join 192.168.168.81:6443 --token abkwa8.j2i4940m256tldrf \--discovery-token-ca-cert-hash sha256:16a1e3ee10f8514a27089f4a3f810e26f0abe3ced94029c43d7662ded46fe3bc
-------------------------token验证-----------------kubeadm token create --print-join-command  ##重新生成token验证[root@node01 ~]# kubectl get nodes
The connection to the server localhost:8080 was refused - did you specify the right host or port?
##网络没有安装

镜像补充

tee /etc/docker/daemon.json <<EOF
{"registry-mirrors": ["https://docker.anyhub.us.kg","https://dockerhub.jobcher.com","https://dockerhub.icu"],"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"}
}
EOF{"registry-mirrors": ["https://docker.m.daocloud.io","https://docker.1panel.live"]}[root@master01 ~]# docker pull docker.io/calico/kube-controllers:v3.20.2------------三台机器同步----------------------------#设置节点的kubelet:
[root@master01 ~]# mkdir -p $HOME/.kube
[root@master01 ~]# cd /etc/kubernetes/
[root@master01 kubernetes]# ls
admin.conf               kubelet.conf  pki
controller-manager.conf  manifests     scheduler.conf##admin.conf 
##kubeadm为集群配置的一个具有管理员权限的认证文件,apiserver需要通过admin的认证,kubelet才能和apiserver进行交互。[root@master01 kubernetes]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master01 kubernetes]# chown $(id -u):$(id -g) $HOME/.kube/config
[root@master01 kubernetes]# cd ~
[root@master01 ~]# cd .kube/
[root@master01 .kube]# ll
总用量 8
-rw-------. 1 root root 5570 8月  27 09:48 config
[root@master01 .kube]# systemctl restart kubelet--------------------master01操作-------------------
[root@master01 .kube]# kubectl edit cm kube-proxy -n=kube-system## kubectl edit(编辑) cm kube-proxy(节点上的网络代理 yaml) -n=kube-system[root@master01 .kube]# kubectl edit cm kube-proxy -n=kube-system
mode: "ipvs"
configmap/kube-proxy edited[root@master01 .kube]# kubectl get node
NAME       STATUS     ROLES                  AGE   VERSION
master01   NotReady   control-plane,master   19h   v1.20.15
node01     NotReady   <none>                 19h   v1.20.15
node02     NotReady   <none>                 19h   v1.20.15[root@master01 .kube]# kubectl get cs  ##集群,检查集群的状态[root@master01 .kube]# vim /etc/kubernetes/manifests/kube-scheduler.yaml 16     - --bind-address=192.168.168.81  ##本机地址19     #- --port=025         host: 192.168.168.8139         host: 192.168.168.81[root@master01 .kube]# vim /etc/kubernetes/manifests/kube-controller-manager.yaml17     - --bind-address=192.168.168.8126     #- --port=037         host: 192.168.168.8151         host: 192.168.168.81[root@master01 .kube]# kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME                 STATUS    MESSAGE             ERROR
controller-manager   Healthy   ok                  
scheduler            Healthy   ok                  
etcd-0               Healthy   {"health":"true"}   
[root@master01 .kube]# kubectl get pod -n kube-system
NAME                               READY   STATUS    RESTARTS   AGE
coredns-7f89b7bc75-6z2pg           0/1     Pending   0          19h
coredns-7f89b7bc75-lg4gw           0/1     Pending   0          19h
etcd-master01                      1/1     Running   0          19h
kube-apiserver-master01            1/1     Running   0          19h
kube-controller-manager-master01   1/1     Running   0          100s
kube-proxy-d5fnf                   1/1     Running   0          19h
kube-proxy-kpvs2                   1/1     Running   0          19h
kube-proxy-nrszf                   1/1     Running   0          19h
kube-scheduler-master01            1/1     Running   0          97s
[root@master01 .kube]# systemctl status kubelet
[root@master01 .kube]# kubectl get pod -n kube-system

在这里插入图片描述

[root@master01 .kube]# systemctl status kubelet

在这里插入图片描述

二、k8s的网络类型:

CNI网络插件:flannel calico

2.1、k8s的三种通信方式:

1、pod内部的网络通信:

pod内部容器的通信,pod创建完成之后,集群会分配pod一个全局的唯一ip地址。所有的容器共享这个ip地址。

pod内部可以用本地通信+端口形式互相通信。

2、同一个node节点上的pod通信:

docker0网桥。同一个节点上的pod和docker的通信方式是一样的。

3、不同节点上pod之间通信。

想办法通过主机的物理网卡ip进行通信。

  • ①、pod的ip地址不能冲突。
  • ②、pod的ip地址要和node的ip地址进行关联。
  • CNI:CNI是标准接口,用于容器在运行时调用网络插件,配置容器的网络。CNI负责设置容器的网络命名空间,ip地址,路由等网络参数。

pod的ip地址进行封装,通过node节点作为路由器,转发到其他的node节点,其他的node节点收到数据包之后解包,把数据包转发到指定的pod

2.2、Flannel插件:

让集群中不同节点创建的pod都有集群内部唯一的ip地址。(虚拟)

Flannel是一种overlay网络,overlay是一种网络虚拟化技术,在底层的物理网络基础之上创建一个逻辑的网络层。

从而实现跨节点的pod之间的通信。

2.2.1、Fannel数据转发的方式:UDP VXLAN(使用最多的模式) HOST-GW(主机模式,性能最好)

  • VXLAN:基于内核进行转发
  • UDP:默认方式,基于应用层转发,配置最简单,性能最差
  • Host-GW:性能最好,但是配置最繁琐
ifconfig ##查看网络对应的网卡类型
  • UDP:flannel.0
  • vxlan:flannel.1 ----网络虚拟的网卡,给pod分配ip地址,通过arp广播找到目的mac
  • vxlan vlan通过标识来实现广播的划分,不同的vlan之间可以通信。0 1 4096 2-4095 4094个vlanid
  • vxlan:标识,vni数据中心进行广域网的划分,通过三层网络搭建一个虚拟的二层网络----------三层交换机

2.3、工作模式:

1、流程流向

在这里插入图片描述

[root@master01 opt]# ls
cni                                 flannel.tar                   test
cni-plugins-linux-amd64-v0.8.6.tgz  jenkins-2.396-1.1.noarch.rpm
containerd                          kube-flannel.yml[root@master01 opt]# docker load < flannel.tar 
777b2c648970: Loading layer  5.848MB/5.848MB
815dff9e0b57: Loading layer  11.42MB/11.42MB
2e16188127c8: Loading layer  2.267MB/2.267MB
eb738177d102: Loading layer  49.34MB/49.34MB
b613d890216c: Loading layer   5.12kB/5.12kB
8a984b390686: Loading layer  9.216kB/9.216kB
814fbd599e1f: Loading layer   7.68kB/7.68kB
Loaded image: quay.io/coreos/flannel:v0.14.0----------------三台同步操作安装cni------------------
[root@master01 opt]# mv /opt/cni /opt/cni_bak
[root@master01 opt]# cd cni_bak/
[root@master01 cni_bak]# ls
bin
[root@master01 cni_bak]# mkdir -p /opt/cni/bin
[root@master01 cni_bak]# cd /opt/
[root@master01 opt]# ls
cni                                 flannel.tar
cni_bak                             jenkins-2.396-1.1.noarch.rpm
cni-plugins-linux-amd64-v0.8.6.tgz  kube-flannel.yml
containerd                          test
[root@master01 opt]# tar -xf cni-plugins-linux-amd64-v0.8.6.tgz -C /opt/cni/bin/
--------------------解压安装完成--------------------------------在master01更新kube-flannel.yml------------
[root@master01 opt]# kubectl apply -f kube-flannel.yml 
podsecuritypolicy.policy/psp.flannel.unprivileged created
clusterrole.rbac.authorization.k8s.io/flannel created
clusterrolebinding.rbac.authorization.k8s.io/flannel created
serviceaccount/flannel created
configmap/kube-flannel-cfg created
daemonset.apps/kube-flannel-ds created##查看集群的健康状态
[root@master01 opt]# kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME                 STATUS    MESSAGE             ERROR
scheduler            Healthy   ok                  
controller-manager   Healthy   ok                  
etcd-0               Healthy   {"health":"true"}   //在master节点查看节点状态
kubectl get nodeskubectl get pods -n kube-system[root@master01 opt]# kubectl get pod -n kube-system
NAME                               READY   STATUS    RESTARTS   AGE
coredns-7f89b7bc75-6z2pg           1/1     Running   0          20h
coredns-7f89b7bc75-lg4gw           1/1     Running   0          20h
etcd-master01                      1/1     Running   0          20h
kube-apiserver-master01            1/1     Running   0          20h
kube-controller-manager-master01   1/1     Running   1          73m
kube-flannel-ds-48rnt              1/1     Running   0          27s
kube-flannel-ds-gsspq              1/1     Running   0          27s
kube-flannel-ds-wphvj              1/1     Running   0          27s
kube-proxy-d5fnf                   1/1     Running   0          20h
kube-proxy-kpvs2                   1/1     Running   0          20h
kube-proxy-nrszf                   1/1     Running   0          20h
kube-scheduler-master01            1/1     Running   0          78m
[root@master01 opt]# kubectl get cs
NAME       STATUS   ROLES                  AGE   VERSION
master01   Ready    control-plane,master   20h   v1.20.15
node01     Ready    <none>                 20h   v1.20.15
node02     Ready    <none>                 20h   v1.20.15
ifconfig##查看k8s网络

在这里插入图片描述

2、calico网络:

使用host主机作为路由器,使用BGP同步路由以及iptables来做网络,把host主机当作一个路由。

采用直接路由的方式实现。损耗很低,不需要修改数据包的报文,pod太多,路由表比较复杂,维护起来比较麻烦。

大集群的复杂网络模式。

calico------->veth-pair虚拟设备,一个虚拟的网卡。

一头设备连接pod的网络空间,一头连接主机的网络空间。

calico通过linux的命名空间和路由表实现容器之间的通信。
在这里插入图片描述

flannel插件:默认的地址是10.244.0.0/16

三种模式:UDP VXLAN HOST-GW

flannel的功能简单,不具备复杂的网络策略的配置能力。小集群或者简单的网络。

calico:BGP直接路由,路由维护,路由转发。

默认网段:192.168.0.0/16

calico是一个可以对网络进行管理的插件,具备配置复杂网络配置的能力。本身的配置比较复杂,对开发人员,运维人员要求比较高。

需要复杂配置的可以使用calico。(配置更多的网络策略。)

3、k8s的kubectl的永久table实现补齐

vim /etc/profilesource <(kubectl completion bash)source /etc/profile

4、匿名用户赋权

kubectl create clusterrolebinding cluster-system-anonymous --clusterrole=cluster-admin --user=system:anonymous

5、利用脚本实现k8s中apiserver.crt 的使用周期

[root@master01 ~]# openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text | grep NotNot Before: Aug 26 06:47:11 2024 GMTNot After : Aug 26 06:47:11 2025 GMT
[root@master01 ~]# openssl x509 -in /etc/kubernetes/pki/ca.crt -noout -text | grep NotNot Before: Aug 26 06:47:11 2024 GMTNot After : Aug 24 06:47:11 2034 GMT[root@master01 opt]# ls
cni                                 jenkins-2.396-1.1.noarch.rpm
cni_bak                             kube-flannel.yml
cni-plugins-linux-amd64-v0.8.6.tgz  test
containerd                          update-kubeadm-cert.sh  ##脚本
flannel.tar
[root@master01 opt]# chmod 777 update-kubeadm-cert.sh 
[root@master01 opt]# ./update-kubeadm-cert.sh all
[root@master01 opt]# kubectl create deployment nginx1 --image=nginx:1.22
deployment.apps/nginx1 created
[root@master01 opt]# kubectl get pod
NAME                     READY   STATUS         RESTARTS   AGE
nginx1-654cb56c4-rlldr   0/1     ErrImagePull   0          11s[root@master01 opt]# kubectl describe pod nginx1

作业

基于harbor私有仓库

k8s从私有仓库下载

1、基于docker,安装docker-compose,安装docker-harbor

----------------------------安装docker-compose-----------------------------
[root@docker1 opt]# mv docker-compose-linux-x86_64 /usr/local/bin/docker-compose
[root@docker1 opt]# chmod 777 /usr/local/bin/docker-compose 
[root@docker1 opt]# docker-compose --version
Docker Compose version v2.18.0
----------------------安装docker-harbor------------------------
[root@docker1 opt]# tar -xf harbor-offline-installer-v2.8.1.tgz 
[root@docker1 opt]# ls
docker-compose.yml  harbor-offline-installer-v2.8.1.tgz  mysql   nginx  php
harbor              html                                 mysql1  nhtml
[root@docker1 opt]# cd harbor/[root@docker1 harbor]# ls
common.sh  harbor.v2.8.1.tar.gz  harbor.yml.tmpl  install.sh  LICENSE  prepare[root@docker1 harbor]# cp harbor.yml.tmpl harbor.yml[root@docker1 harbor]# vim harbor.yml5 hostname: 192.168.168.7313 #https:14   # https port for harbor, default is 44315  # port: 44334 harbor_admin_password: 123456[root@docker1 harbor]#  ./prepare[root@docker1 harbor]# pwd
/opt/harbor
[root@docker1 harbor]# ./install.sh 

上传镜像

网页新建项目:

在这里插入图片描述

[root@docker1 harbor]# docker tag nginx:1.22 192.168.168.71/test1/nginx:v1   ##给本地镜像打标签,不打标签,上传不了harbor仓库[root@docker1 harbor]# vim /usr/lib/systemd/system/docker.service           ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.168.71 --           containerd=/run/containerd/containerd.sock                        ##客户端指定到服务端,从服务端获取镜像[root@docker1 harbor]# systemctl daemon-reload       ##改完配置文件进行重启
[root@docker1 harbor]# systemctl restart docker[root@docker1 harbor]# docker login -u admin -p 123456 http://192.168.168.71

在这里插入图片描述

对应解决:
[root@docker1 harbor]# ./install.sh               ##改完配置文件,重启docker后,进行初始化安装[root@docker1 harbor]# docker login -u admin -p 123456 http://192.168.168.71 ##登录仓库,进行上传和下载[root@docker1 harbor]# docker push 192.168.168.71/test1/nginx:v1             ##上传镜像nginx:v1[root@docker1 harbor]# docker tag nginx:1.18 192.168.168.71/test1/nginx:v2   ##给镜像打标签
[root@docker1 harbor]# docker push 192.168.168.71/test1/nginx:v2             ##上传镜像nginx:v2

在这里插入图片描述

k8s集群下载镜像:

----------------------------三台k8s一起操作---------------------[root@master01 ~]# vim /usr/lib/systemd/system/docker.service 13 ExecStart=/usr/bin/dockerd -H fd:// --insecure-registry 192.168.168.71 --containerd=/run/containerd/containerd.sock[root@master01 ~]# systemctl daemon-reload [root@master01 ~]# systemctl restart docker[root@master01 ~]# docker login -u admin -p 123456 http://192.168.168.71-----------------------------以上做仓库指向--------------------------------------

拉取私有仓库nginx的镜像-------副本数为3

[root@master01 ~]# kubectl create deployment nginx2 --image=192.168.168.71/test1/nginx:v1 --replicas=3[root@master01 ~]# kubectl get pods
NAME                      READY   STATUS    RESTARTS   AGE
nginx2-59d574bd96-2rqgk   1/1     Running   0          159m
nginx2-59d574bd96-2zsvj   1/1     Running   0          159m
nginx2-59d574bd96-mf6zt   1/1     Running   0          159m

[root@master01 ~]# systemctl restart docker

[root@master01 ~]# docker login -u admin -p 123456 http://192.168.168.71

-----------------------------以上做仓库指向--------------------------------------

### 拉取私有仓库nginx的镜像-------副本数为3

[root@master01 ~]# kubectl create deployment nginx2 --image=192.168.168.71/test1/nginx:v1 --replicas=3

[root@master01 ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx2-59d574bd96-2rqgk 1/1 Running 0 159m
nginx2-59d574bd96-2zsvj 1/1 Running 0 159m
nginx2-59d574bd96-mf6zt 1/1 Running 0 159m


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/410661.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

EmguCV学习笔记 VB.Net 7.1 角点检测

版权声明&#xff1a;本文为博主原创文章&#xff0c;转载请在显著位置标明本文出处以及作者网名&#xff0c;未经作者允许不得用于商业目的。 EmguCV是一个基于OpenCV的开源免费的跨平台计算机视觉库,它向C#和VB.NET开发者提供了OpenCV库的大部分功能。 教程VB.net版本请访问…

【负载均衡式在线OJ】项目设计

文章目录 程序源码用到的技术项目宏观结构代码编写思路 程序源码 https://gitee.com/not-a-stupid-child/online-judge 用到的技术 C STL 标准库。Boost 准标准库(字符串切割)。cpp-httplib 第三方开源网络库。ctemplate 第三方开源前端网页渲染库。jsoncpp 第三方开源序列化…

netty编程之结合springboot一起使用

写在前面 源码 。 本文看下netty结合springboot如何使用。 1&#xff1a;netty server部分 server类&#xff08;不要main&#xff0c;后续通过springboot来启动咯!&#xff09;&#xff1a; package com.dahuyou.netty.springboot.server;import io.netty.bootstrap.Serve…

Python实现t-分布随机邻域嵌入(t-SNE)降维算法

目录 Python实现t-分布随机邻域嵌入&#xff08;t-SNE&#xff09;降维算法的博客引言t-SNE算法原理t-SNE的优势与局限Python实现t-SNE算法1. 创建t-SNE类2. 示例场景&#xff1a;MNIST手写数字数据集3. 结果分析 结论运行结果 Python实现t-分布随机邻域嵌入&#xff08;t-SNE&…

2024上海初中生古诗文大会备考:单选题真题和每道题独家解析

新学年开学倒计时了&#xff0c;也意味着上海中小学生的几项传统赛事即将拉开帷幕了。 其中&#xff0c;2024年初中生古诗文大会初选还有2个多月&#xff08;官宣了11月3日线上初选正式开赛&#xff09;&#xff0c;我们来看10道历年的选择题真题和详细解析。为帮助孩子自测和…

模型 KT决策法

系列文章 分享 模型&#xff0c;了解更多&#x1f449; 模型_思维模型目录。系统分析&#xff0c;明智选择。 1 KT决策法的应用 1.1 餐饮连锁店菜单更新 一家餐饮连锁店计划更新菜单&#xff0c;以吸引更多顾客并提高销售额。使用 KT 决策法&#xff08;Kepner-Tregoe&#x…

xss-labs靶场通关详解(11-15关)

第11关 referer 进行抓包 添加referer:click me!" type"button" οnmοuseοver"alert(/xss/)进行放包 第12关 进行抓包 修改User Agent&#xff1a;click me!" type"button" οnmοuseοver"alert(/xss/)进行放包 第13关 抓包 修改C…

python可视化-密度图

1、加载数据 import pandas as pd import numpy as np from sklearn.datasets import load_iris import warnings# 禁用所有警告信息 warnings.filterwarnings(ignore)# 加载数据 iris load_iris() iris iris.keys() df pd.DataFrame(iris.data, columnsiris.feature_names)…

mac nvm安装及使用(nvm安装指定版本node npm pnpm)

mac nvm安装及使用&#xff08;nvm安装指定版本node npm pnpm&#xff09; 1.卸载电脑的node 打开终端&#xff1a;依次执行以下命令&#xff1a; sudo rm -rf /usr/local/bin/npm sudo rm -rf /usr/local/share/man/man1/node.1 sudo rm -rf /usr/local/lib/dtrace/node.d s…

开源word文档相似度对比 软件WinMerge

WinMerge 官网下载 &#xff1a;GitHub - WinMerge/winmerge: WinMerge is an Open Source differencing and merging tool for Windows. WinMerge can compare both folders and files, presenting differences in a visual text format that is easy to understand and hand…

API网关之Kong

Kong 是一个高性能的开源 API 网关和微服务管理平台&#xff0c;用于管理、保护和扩展 API 和微服务。它最初由 Mashape 公司开发&#xff0c;并于 2015 年作为开源项目发布。Kong 能够处理 API 的路由、认证、负载均衡、缓存、监控、限流等多种功能&#xff0c;是微服务架构中…

网络应用层之(2)DNS协议

网络应用层之(2)DNS协议 Author: Once Day Date: 2024年8月12日 一位热衷于Linux学习和开发的菜鸟&#xff0c;试图谱写一场冒险之旅&#xff0c;也许终点只是一场白日梦… 漫漫长路&#xff0c;有人对你微笑过嘛… 全系列文章可参考专栏: 通信网络技术_Once-Day的博客-CSDN…

PyTorch深度学习网络(二:CNN)

卷积神经网络&#xff08;CNN&#xff09;是一种专门用于处理具有类似网格结构数据的深度学习模型&#xff0c;例如图像&#xff08;2D网格的像素&#xff09;和时间序列数据&#xff08;1D网格的信号强度&#xff09;。CNN在图像识别、图像分类、物体检测、语音识别等领域有着…

R语言绘制可用于论文发表的生存曲线图|科研绘图·24-08-25

小罗碎碎念 有关于生存曲线的基本概念&#xff08;例如删失事件的定义&#xff09;和绘图的详细教程我已经在5月的推文中介绍过了&#xff0c;有需求的同学欢迎前去考古。 R语言绘制生存分析曲线从概念到实战的保姆级教程&#xff5c;2024-05-12 https://mp.weixin.qq.com/s/Z…

SQL进阶技巧:如何按任意时段分析时间区间问题? | 分区间讨论【左、中、右】

目录 0 场景描述 1 数据准备 2 问题分析 方法1:分情况讨论,找出重叠区间 方法2:暴力美学法。按区间展开成日期明细表 3 拓展案例 4小结 0 场景描述 现有用户还款计划表 user_repayment ,该表内的一条数据,表示用户在指定日期区间内 [date_start, date_end] ,每天…

秋招突击——8/21——知识补充——计算机网络——cookie、session和token

文章目录 引言正文Cookie——客户端存储和管理Session——服务端存储和管理Token补充签名和加密的区别常见的加密算法和签名算法 面试题1、HTTP用户后续的操作&#xff0c;服务端如何知道属于同一个用户&#xff1f;如果服务端是一个集群机器怎么办&#xff1f;2、如果禁用了Co…

【Python 千题 —— 基础篇】简易图书管理系统

Python 千题持续更新中 …… 脑图地址 👉:⭐https://twilight-fanyi.gitee.io/mind-map/Python千题.html⭐ 题目描述 题目描述 编写一个面向对象的程序,模拟一个图书管理系统。要求定义一个 Book 类,具有基本的书籍信息功能;然后,创建一个 Library 类,用于管理多个 B…

Vue3搜索框(InputSearch)

效果如下图&#xff1a;在线预览 APIs InputSearch 参数说明类型默认值width搜索框宽度&#xff0c;单位 pxstring | number‘100%’icon搜索图标boolean | slottruesearch搜索按钮&#xff0c;默认时为搜索图标string | slotundefinedsearchProps设置搜索按钮的属性&#xf…

【Qt】容器类控件GroupBox

容器类控件GroupBox 使用QGroupBox实现一个带有标题的分组框&#xff0c;可以把其他的控件放在里面里面作为一组&#xff0c;这些内部的控件的父元素也就不是this了。 其目的只是为了让界面看起来更加好看&#xff0c;例如当一个界面比较复杂的时候&#xff0c;包含了很多的控…

APP封装安装配置参考说明

APP封装安装配置参考说明 一, 环境准备 宝塔环境 nginx php5.6 mysql5.6 java-openjdk1.8 apktool 1,安装 nginx,php,mysql自行安装 java-openjdk1.8 安装 推荐使用命令行安装 1.1 yum install java-1.8.0-openjdk1.2 yum install -y java-1.8.0-openjdk-devel1.3 设置…