运维高级学习--Kubernetes(K8s 1.28.x)部署
一、基础环境配置(所有主机操作)
主机名规划
序号 主机ip 主机名规划1 192.168.1.30 kubernetes-master.openlab.cn kubernetes-master2 192.168.1.31 kubernetes-node1.openlab.cn kubernetes-node13 192.168.1.32 kubernetes-node2.openlab.cn kubernetes-node24 192.168.1.33 kubernetes-node3.openlab.cn kubernetes-node35 192.168.1.34 kubernetes-register.openlab.cn kubernetes-register
1.配置IP地址和主机名、hosts解析
#这里只演示一台服务器上的命令,实则五台服务器都要实现
[root@kubernetes-master ~]# vim /etc/hosts
192.168.1.30 kubernetes-master.openlab.cn kubernetes-master
192.168.1.31 kubernetes-node1.openlab.cn kubernetes-node1
192.168.1.32 kubernetes-node2.openlab.cn kubernetes-node2
192.168.1.33 kubernetes-node3.openlab.cn kubernetes-node3
192.168.1.34 kubernetes-register.openlab.cn kubernetes-register
2.关闭防火墙、禁用SELinux
#这里只演示一台服务器上的命令,实则五台服务器都要实现
[root@kubernetes-master ~]# systemctl stop firewalld
[root@kubernetes-master ~]# systemctl disable firewalld
[root@kubernetes-master ~]# sed -i '/^SELINUX=/ c SELINUX=disabled' /etc/selinux/config
[root@kubernetes-master ~]# setenforce 0
3.安装常用软件
#这里只演示一台服务器上的命令,实则五台服务器都要实现
[root@kubernetes-master ~]# yum install -y wget tree bash-completion lrzsz psmisc net-tools vim
4.时间同步
#这里只演示一台服务器上的命令,实则五台服务器都要实现
[root@kubernetes-master ~]# yum install chrony -y
[root@kubernetes-master ~]# vim /etc/chrony.conf
···
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server ntp1.aliyun.com iburst
···
#启动chronyd服务并设置chronyd服务开机自启动
[root@kubernetes-master ~]# systemctl enable --now chronyd
[root@kubernetes-master ~]# chronyc sources
5.禁用Swap分区
#这里只演示一台服务器上的命令,实则五台服务器都要实现
#临时禁用
[root@kubernetes-master ~]# swapoff -a
#永久禁用
[root@kubernetes-master ~]# sed -i 's/.*swap.*/#&/' /etc/fstab
6.修改linux的内核参数
#这里只演示一台服务器上的命令,实则五台服务器都要实现
# 修改linux的内核参数,添加网桥过滤和地址转发功能
[root@kubernetes-master ~]# cat >> /etc/sysctl.d/k8s.conf << EOF
> vm.swappiness=0
> net.bridge.bridge-nf-call-ip6tables = 1
> net.bridge.bridge-nf-call-iptables = 1
> net.ipv4.ip_forward = 1
> EOF#加载模块
[root@kubernetes-master ~]# modprobe br_netfilter
[root@kubernetes-master ~]# modprobe overlay
#重新加载配置
[root@kubernetes-master ~]# sysctl -p /etc/sysctl.d/k8s.conf
7.配置ipvs功能
#这里只演示一台服务器上的命令,实则五台服务器都要实现
#1.安装ipset和ipvsadm
[root@kubernetes-master ~]# yum install ipset ipvsadm -y
#2.添加需要加载的模块写入脚本文件
[root@kubernetes-master ~]# cat <<EOF>> /etc/sysconfig/modules/ipvs.modulesmodprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
EOF
#3.为脚本文件添加执行权限
[root@kubernetes-master ~]# chmod +x /etc/sysconfig/modules/ipvs.modules
#4.执行脚本文件
[root@kubernetes-master ~]# /bin/bash /etc/sysconfig/modules/ipvs.modules
#5.查看对应的模块是否加载成功
[root@kubernetes-master ~]# lsmod | grep -e ip_vs -e nf_conntrack_ipv4
ip_vs_sh 12688 0
ip_vs_wrr 12697 0
ip_vs_rr 12600 0
ip_vs 145458 6 ip_vs_rr,ip_vs_sh,ip_vs_wrr
nf_conntrack 139264 1 ip_vs
libcrc32c 12644 3 xfs,ip_vs,nf_conntrack
二、容器环境操作(所有主机操作)
1.定制软件源
[root@kubernetes-master ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
[root@kubernetes-master ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
2.安装最新版docker
[root@kubernetes-master ~]# yum install docker-ce -y
3.配置docker加速器
[root@kubernetes-master ~]# cat >> /etc/docker/daemon.json <<-EOF
> {
> "registry-mirrors": [
> "http://74f21445.m.daocloud.io",
> "https://registry.docker-cn.com",
> "http://hub-mirror.c.163.com",
> "https://docker.mirrors.ustc.edu.cn"
> ],
> "insecure-registries": ["kubernetes-register.openlab.cn"],
> "exec-opts": ["native.cgroupdriver=systemd"]
> }
> EOF
4.启动docker
[root@kubernetes-master ~]# systemctl daemon-reload
[root@kubernetes-master ~]# systemctl enable --now docker
三、cri环境操作(所有主机操作)
#下载软件
[root@kubernetes-master ~]#wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.3.4/cri-dockerd-0.3.4.amd64.tgz
#解压
[root@kubernetes-master ~]# tar xf cri-dockerd-0.3.4.amd64.tgz -C /usr/local/[root@kubernetes-master ~]# mv /usr/local/cri-dockerd/cri-dockerd /usr/local/bin/
[root@kubernetes-master ~]# cri-dockerd --version
cri-dockerd 0.3.4 (e88b1605)#定制配置文件
[root@kubernetes-master ~]# cat > /etc/systemd/system/cri-dockerd.service<<-EOF
> [Unit]
> Description=CRI Interface for Docker Application Container Engine
> Documentation=https://docs.mirantis.com
> After=network-online.target firewalld.service docker.service
> Wants=network-online.target
>
> [Service]
> Type=notify
> ExecStart=/usr/local/bin/cri-dockerd --pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.9
> --network-plugin=cni --cni-conf-dir=/etc/cni/net.d --cni-bin-dir=/opt/cni/bin -
> -container-runtime-endpoint=unix:///var/run/cri-dockerd.sock --cri-dockerd-root-directory=/var/lib/dockershim --docker-endpoint=unix:///var/run/docker.sock --
> cri-dockerd-root-directory=/var/lib/docker
> ExecReload=/bin/kill -s HUP $MAINPID
> TimeoutSec=0
> RestartSec=2
> Restart=always
> StartLimitBurst=3
> StartLimitInterval=60s
> LimitNOFILE=infinity
> LimitNPROC=infinity
> LimitCORE=infinity
> TasksMax=infinity
> Delegate=yes
> KillMode=process
> [Install]
> WantedBy=multi-user.target
> EOF[root@kubernetes-master ~]# cat > /etc/systemd/system/cri-dockerd.socket <<-EOF
> [Unit]
> Description=CRI Docker Socket for the API
> PartOf=cri-docker.service
> [Socket]
> ListenStream=/var/run/cri-dockerd.sock
> SocketMode=0660
> SocketUser=root
> SocketGroup=docker
> [Install]
> WantedBy=sockets.target
> EOF#设置服务开机自启
[root@kubernetes-master ~]# systemctl daemon-reload
[root@kubernetes-master ~]# systemctl enable --now cri-dockerd.service
四、harbor仓库操作(只在仓库机器上执行)
#安装docker-compose
[root@kubernetes-register ~]# install -m 755 docker-compose-linux-x86_64 /usr/local/bin/docker-compose[root@kubernetes-register ~]# mkdir -p /data/server
[root@kubernetes-register ~]# tar xf harbor-offline-installer-v2.8.4.tgz -C /data/server/#加载镜像
[root@kubernetes-register ~]# cd /data/server/harbor/
[root@kubernetes-register harbor]# docker load -i harbor.v2.8.4.tar.gz#修改配置文件
[root@kubernetes-register harbor]# cp harbor.yml.tmpl harbor.yml
[root@kubernetes-register harbor]# vim harbor.yml
hostname: kubernetes-register.openlab.cn
#https:
# port: 443
# certificate: /your/certificate/path
# private_key: /your/private/key/path
···
harbor_admin_password: 123456
data_volume: /data/server/harbor/data
···
#配置harbor
[root@kubernetes-register harbor]# ./prepare
#启动harbor
[root@kubernetes-register harbor]# ./install.sh#定制服务启动文件
[root@kubernetes-register harbor]# vim /etc/systemd/system/harbor.service
[Unit]
Description=Harbor
After=docker.service systemd-networkd.service systemd-resolved.service
Requires=docker.service
Documentation=http://github.com/vmware/harbor
[Service]
Type=simple
Restart=on-failure
RestartSec=5
#需要注意harbor的安装位置
ExecStart=/usr/local/bin/docker-compose --file /data/server/harbor/docker-compose.yml up
ExecStop=/usr/local/bin/docker-compose --file /data/server/harbor/docker-compose.yml down
[Install]
WantedBy=multi-user.target#启动harbor并设置开机自启
[root@kubernetes-register harbor]# systemctl daemon-reload
[root@kubernetes-register harbor]# systemctl enable harbor.service
[root@kubernetes-register harbor]# systemctl restart harbor#测试仓库,只在k8s集群某一个节点
#拉取镜像
[root@kubernetes-master ~]# docker pull busybox
#登录harbor仓库
[root@kubernetes-master ~]# docker login kubernetes-register.openlab.cn -u admin -p 123456
#将镜像打上标签
[root@kubernetes-master ~]# docker tag busybox:latest kubernetes-register.openlab.cn/library/busybox:latest
#推送镜像到仓库
[root@kubernetes-master ~]# docker push kubernetes-register.openlab.cn/library/busybox:latest
五、k8s集群初始化
定制软件源(所有主机操作)
[root@kubernetes-master ~]# 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[root@kubernetes-master ~]# yum install kubeadm kubectl kubelet -y
在仓库中新建项目:google_containers
接下来这一步只用在一个主机上操作
[root@kubernetes-master ~]# vim images.sh
#!/bin/bash
images=$(kubeadm config images list --kubernetes-version=1.28.0 | awk -F'/' '{print $NF}')
for i in ${images}
dodocker pull registry.aliyuncs.com/google_containers/$idocker tag registry.aliyuncs.com/google_containers/$i kubernetes-register.openlab.cn/google_containers/$idocker push kubernetes-register.openlab.cn/google_containers/$idocker rmi registry.aliyuncs.com/google_containers/$i
done
#执行脚本文件
[root@kubernetes-master ~]# sh images.sh
master节点初始化
[root@kubernetes-master ~]# kubeadm init --kubernetes-version=1.28.0 \
> --apiserver-advertise-address=192.168.1.30 \
> --image-repository kubernetes-register.openlab.cn/google_containers \
> --service-cidr=10.96.0.0/12 \
> --pod-network-cidr=10.244.0.0/16 \
> --ignore-preflight-errors=Swap \
> --cri-socket=unix:///var/run/cri-dockerd.sock
···
kubeadm join 192.168.1.30:6443 --token wj0hmh.2cdfzhck6w32quzx \--discovery-token-ca-cert-hash sha256:a0b7e59c2e769dc1e2197611ecae1f39d7a0bd19fc25906fe7a5b43199d15cd2出现这两行说明初始化成功[root@kubernetes-master ~]# mkdir -p $HOME/.kube
[root@kubernetes-master ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@kubernetes-master ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config
node节点加入
[root@kubernetes-node1 ~]# kubeadm join 192.168.1.30:6443 --token wj0hmh.2cdfzhck6w32quzx \
> --cri-socket=unix:///var/run/cri-dockerd.sock \
> --discovery-token-ca-cert-hash sha256:a0b7e59c2e769dc1e2197611ecae1f39d7a0bd19fc25906fe7a5b43199d15cd2#注意的是,每个人的令牌是不一样的
六、k8s环境收尾
命令补全
#放到master主机的环境文件中
[root@kubernetes-master ~]# echo "source <(kubectl completion bash)" >> ~/.bashrc
[root@kubernetes-master ~]# echo "source <(kubeadm completion bash)" >> ~/.bashrc
[root@kubernetes-master ~]# source ~/.bashrc
网络环境(在master主机上)
#下载kube-flannel.yml[root@kubernetes-master ~]# vim flannel.sh
#执行脚本
[root@kubernetes-master ~]# sh flannel.sh
#修改配置文件
[root@kubernetes-master ~]# sed -i '/ image:/s#docker.io/flannel#kubernetes-register.openlab.cn/google_containers#' kube-flannel.yml#应用配置文件
[root@kubernetes-master ~]# kubectl apply -f kube-flannel.yml#检查效果
[root@kubernetes-master ~]# kubectl get pod -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-76f899b8cf-tmdx9 1/1 Running 0 19m
coredns-76f899b8cf-zvfhg 1/1 Running 0 19m
etcd-kubernetes-master 1/1 Running 0 19m
kube-apiserver-kubernetes-master 1/1 Running 0 19m
kube-controller-manager-kubernetes-master 1/1 Running 0 19m
kube-proxy-rhdck 1/1 Running 0 14m
kube-proxy-tvfh4 1/1 Running 0 19m
kube-proxy-vjmrs 1/1 Running 0 14m
kube-proxy-zkwv2 1/1 Running 0 14m
kube-scheduler-kubernetes-master 1/1 Running 0 19m#全部都是Running就可以了
扩展:要让kubectl在node节点上也能运行,需要将master上的.kube文件复制到node节点上,即在master节点上执行下面操作:
scp -r $HOME/.kube kubernetes-node1.openlab.cn:$HOME/
scp -r $HOME/.kube kubernetes-node2.openlab.cn:$HOME/
scp -r $HOME/.kube kubernetes-node3.openlab.cn:$HOME/
至此,Kubernetes(K8s 1.28.x)部署完成
相关文章:
运维高级学习--Kubernetes(K8s 1.28.x)部署
一、基础环境配置(所有主机操作) 主机名规划 序号 主机ip 主机名规划1 192.168.1.30 kubernetes-master.openlab.cn kubernetes-master2 192.168.1.31 kubernetes-node1.openlab.cn kubernetes-node13 192.168.1.32 kubernetes-node2…...
Apache zookeeper kafka 开启SASL安全认证 —— 筑梦之路
简介 Kafka是一个高吞吐量、分布式的发布-订阅消息系统。Kafka核心模块使用Scala语言开发,支持多语言(如Java、Python、Go等)客户端,它可以水平扩展和具有高吞吐量特性而被广泛使用,并与多类开源分布式处理系统进行集成…...
lintcode 1017 · 相似的RGB颜色【进制计算】
题目链接,题目描述 https://www.lintcode.com/problem/1017 在本题中,每个大写字母代表从“0”到“f”的一些十六进制数字。红绿蓝三元色#AABBCC可以简写为#ABC。 例如,#15c是颜色#1155cc的简写。现在,定义两种颜色#ABCDEF和#UV…...
全国首台!浙江机器人产业集团发布垂起固定翼无人机-机器人自动换电机巢
展示突破性创新技术,共话行业发展趋势。8月25日,全国首台垂起固定翼无人机-机器人自动换电机巢新品发布会暨“科创中国宁波”无人机产业趋势分享会在余姚市机器人小镇成功举行。 本次活动在宁波市科学技术协会、余姚市科学技术协会指导下,由浙…...
采用 UML 对软件系统进行建模的基本框架
UML 包括一些可以相互组合为图标的图形元素, 通过提供不同形式的图形来 表述从软件分析开始的软件开发全过程的描述,一个图就是系统架构在某个侧面的 表示,所有的图组成了系统的完整视图。UML 主要提供了以下五类图: ÿ…...
编译tiny4412 Linux 内核
工作环境 Ubuntu 22 交叉编译器 4.5.1 解压Linux内核源码,进入目录 将官方配置完好的defconfig文件作为配置文件 cp tiny4412_linux_defconfig .config由于内核版本较低,需要下载低版本的gcc,选择下载gcc-9与g9 sudo apt install gcc-9 g-…...
Ubuntu22.04安装中文输入法►由踩坑到上岸版◄
Ubuntu22.04安装中文输入法►由踩坑到上岸版◄ 了解入坑上岸 更新一发:Gedit中文乱码问题的解决 为了方便回忆和记录甚至后面继续重装系统,我还是写一下以便将来用到或参考~ 了解 安装Ubuntu22.04(截至2023年08月26日11ÿ…...
SpringBoot简单上手
spring boot 是spring快速开发脚手架,通过约定大于配置,优化了混乱的依赖管理,和复杂的配置,让我们用java-jar方式,运行启动java web项目 入门案例 创建工程 先创建一个空的工程 创建一个名为demo_project的项目,并且…...
git及GitHub的使用
文章目录 git在本地仓库的使用github使用创建仓库https协议连接(不推荐,现在用起来比较麻烦)ssh连接(推荐)git分支操作冲突处理忽略文件 git在本地仓库的使用 1.在目标目录下右键打开git bash here 2.创建用户名和邮箱(注: 下载完…...
【考研数学】线性代数第四章 —— 线性方程组(1,基本概念 | 基本定理 | 解的结构)
文章目录 引言一、线性方程组的基本概念与表达形式二、线性方程组解的基本定理三、线性方程组解的结构写在最后 引言 继向量的学习后,一鼓作气,把线性方程组也解决了去。O.O 一、线性方程组的基本概念与表达形式 方程组 称为 n n n 元齐次线性方程组…...
使用Python写入数据到Excel:实战指南
在数据科学领域,Excel是一种广泛使用的电子表格工具,可以方便地进行数据管理和分析。然而,当数据规模较大或需要自动化处理时,手动操作Excel可能会变得繁琐。此时,使用Python编写程序将数据写入Excel文件是一个高效且便…...
接口测试总结分享(http与rpc)
接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 一、了解一下HTTP与RPC 1. HTTP(H…...
数据结构(Java实现)LinkedList与链表(下)
** ** 结论 让一个指针从链表起始位置开始遍历链表,同时让一个指针从判环时相遇点的位置开始绕环运行,两个指针都是每次均走一步,最终肯定会在入口点的位置相遇。 LinkedList的模拟实现 单个节点的实现 尾插 运行结果如下: 也…...
linux查看正在运行的nginx在哪个文件夹当中
1、查出Nginx进程PID ps -ef|grep nginx2、查看Nginx进程启动时的工作目录 ls -la /proc/<PID>/cwd将<PID>替换为第一步中列出的Nginx进程的PID。该命令会显示Nginx进程在启动时所在的工作目录(当前工作目录)...
Vue实现Excel表格中按钮增加小数位数,减少小数位数功能,多用于处理金融数据
效果图 <template><div><el-button click"increaseDecimals">A按钮</el-button><el-button click"roundNumber">B按钮</el-button><el-table :data"tableData" border><el-table-column v-for&q…...
自然语言处理(一):词嵌入
词嵌入 词嵌入(Word Embedding)是自然语言处理(NLP)中的一种技术,用于将文本中的单词映射到一个低维向量空间中。它是将文本中的单词表示为实数值向量的一种方式。 在传统的文本处理中,通常使用独热编码&…...
【HSPCIE仿真】HSPICE仿真基础
HSPICE概述 1. HSPICE简介3. 标准输入文件4. 标准输出文件3. HSPCIE仿真过程 1. HSPICE简介 SPICE (Simulation Program with IC Emphasis)是1972 年美国加利福尼亚大学柏克莱分校电机工程和计算机科学系开发 的用于集成电路性能分析的电路模拟程序。 …...
二、前端监控之方案调研
前端监控体系 一个完整的前端监控体系包括了日志采集、日志上报、日志存储、日志切分&计算、数据分析、告警等流程。 对于一名前端开发工程师来说,也就意味着工作不再局限于前端业务的开发工作,需要有Nginx服务运维能力、实时/离线分析能力、Node应…...
npm 创建 node.js 项目
package.json重要说明 package.json是创建任何node.js项目必须要有的一个文件。 因为在package.json文件中,有详细的项目描述, 包括: (1)项目名称:name (2)版本:version (3)依赖文件:dependencies 等…...
JMeter性能测试(上)
一、基础简介 界面 打开方式 双击 jmeter.bat双击 ApacheJMeter.jsr命令行输入 java -jar ApacheJMeter.jar 目录 BIN 目录:存放可执行文件和配置文件 docs目录:api文档,用于开发扩展组件 printable-docs目录:用户帮助手册 li…...
自定义date工具类 DateUtils.java
自定义date工具类 DateUtils.java 简介 Date日期类型的工具类。 api 日期格式化 format(Date date);日期格式化 format(Date date, String pattern);计算距离现在多久,非精确 getTimeBefore(Date date);计算距离现在多久,精确…...
Linux(Ubuntu)安装docker
2017年的3月1号之后,Docker 的版本命名开始发生变化,同时将 CE 版本和 EE 版本进行分开。 Docker社区版(CE):为了开发人员或小团队创建基于容器的应用,与团队成员分享和自动化的开发管道。docker-ce 提供了简单的安装…...
Apache Poi 实现Excel多级联动下拉框
由于最近做的功能,需要将接口返回的数据列表,输出到excel中,以供后续导入,且网上现有的封装,使用起来都较为麻烦,故参考已有做法封装了工具类。 使用apache poi实现excel联动下拉框思路 创建隐藏单元格&a…...
常见的 HTML<meta> 标签的 name 属性及其作用
HTML中的 <meta> 标签可以通过 name 属性提供元数据,这些元数据可以用于指定有关文档的信息,以及控制浏览器和搜索引擎的行为。name 属性通常与其他属性一起使用,如 content、charset、http-equiv 等,以提供更具体的元数据信…...
【网络安全】理解报文加密、数字签名能解决的实际问题
文章目录 前言1. 防止报文泄露 —— 加密体系的出现1.1 理解非对称加密体系的实施难点1.2 加密体系的实际应用 2. 防止报文被篡改 —— 数字签名的出现2.1 数字签名的原理2.2 数字签名的实施难点2.2 数字签名的实际应用 —— 引入摘要算法 3. 实体鉴别 —— CA证书 后记 前言 …...
linux中安装nodejs,卸载nodejs,更新nodejs
卸载nodejs 卸载node sudo apt-get remove nodejs清理掉自动安装的并且不需要软件包 sudo apt autoremove查看node相关的文件 sudo whereis node如果有文件需要手动删除文件 删除该文件命令 sudo rm -rf /usr/local/bin/node在此查看node -v 是未找到,说明你已经…...
浅谈Python网络爬虫应对反爬虫的技术对抗
在当今信息时代,数据是非常宝贵的资源。而作为一名专业的 Python 网络爬虫程序猿,在进行网页数据采集时经常会遭遇到各种针对爬虫行为的阻碍和限制,这就需要我们掌握一些应对反爬机制的技术手段。本文将从不同层面介绍如何使用 Python 进行网…...
代理池在过程中一直运行
Hey,爬虫达人们!在爬虫的过程中,要保持代理池的稳定性可不容易。今天就来和大家分享一些实用经验,教你如何让代理池在爬虫过程中一直运行!方法简单易行,让你的爬虫工作更顺畅. 在进行爬虫工作时࿰…...
基于Java+SpringBoot+Vue前后端分离党员教育和管理系统设计和实现
博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…...
【flutter直接上传图片到阿里云OSS】
flutter直接上传文件到阿里云需要获取凭证,通过调用阿里云获取凭证的接口能拿到下面这些参数 {"StatusCode": 200,"AccessKeyId": "STS.NSsrKZes4cqm.....","AccessKeySecret": "7eGnLZaEFsRCGYJAnrtdE9n....."…...
潍坊恒信建设集团网站/软文推广广告
概念: 专门在Vue中实现集中式状态(数据)管理的一个Vue插件,对vue应用中多个组件的共享状态进行集中式的管理(读/写),也是一种组件间通信的方式,且适用于任意组件间通信。 作用: 如果我们使用全局总线要让所有的组件…...
中天建设集团有限公司简介/seo难不难
【总结 c语言20题】 问题描述 【问题描述】输入两个正整数m和n(m<1,n<500),统计并输出m和n之间的素数个数以及这些素数的和。注意:1不是素数 要求定义并调用函数prime(m)判断m是否为素数,当m为素数是返回1,否则…...
自我介绍ppt模板免费下载/seo网站系统
北京时间7月20日早间消息,雅虎今天发布了截至6月30日的2011财年第二季度财报。在财报电话会议上,分析师对正在进行的支付宝谈判进行了问询,雅虎CEO卡罗尔巴茨(Carol Bartz)就雅虎丧失支付宝股份进行了辩护。 巴茨在电话会议上表示&#x…...
网站开发营业执照/自助建站网站哪个好
环境:win10 64位压缩包下载地址:https://dev.mysql.com/downloads/mysql/ 如图下载解压后,进入文件夹:配置基础文件—my.ini:[mysql]; 设置mysql客户端默认字符集default-character-setutf8[mysqld];设置3306端口por…...
wordpress mac维护/网站seo外包
据国外媒体报道,在千禧年之初,黑莓手机还是身份的象征,它因为配置了物理键盘而显得更加地卓尔不群,但是现在,黑莓已经慢慢淡出了人们的视线甚至脑海。 然而这并不是因为智能手机市场的发展减速了,也不是因为…...
网站建设公司效果/网站广告制作
上拉电阻就是把不确定的信号通过一个电阻钳位在高电平,此电阻还起到限流的作用。同理,下拉电阻是把不确定的信号钳位在低电平。上拉电阻是指器件的输入电流,而下拉指的是输出电流。 一、那么在什么时候使用上、下拉电阻呢? 1、当…...