飞天使-kubeadm安装一主一从集群
文章目录
- 安装前准备
- 安装前准备配置yum源等
- 安装前准备docker安装
- 安装kubeadm
- 配置kubeadm
- 验证集群
- 参考链接
安装前准备
cat >> /etc/hosts <<EOF
192.168.100.30 k8s-01
192.168.100.31 k8s-02
EOF
hostnamectl set-hostname k8s-01 #所有机器按照要求修改
hostnamectl set-hostname k8s-02
bash
# 只要在k8s-01 设置免密,主机密码 123456Asda,各位自己改成自己的
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum install -y expectsed -i "s@PermitRootLogin no@PermitRootLogin yes@g" /etc/ssh/sshd_config
sed -i "s@PasswordAuthentication no@PasswordAuthentication yes@g" /etc/ssh/sshd_config
systemctl restart sshd
#分发公钥
ssh-keygen -t rsa -P "" -f /root/.ssh/id_rsa
for i in k8s-01 k8s-02 ;do
expect -c "
spawn ssh-copy-id -i /root/.ssh/id_rsa.pub root@$iexpect {\"*yes/no*\" {send \"yes\r\"; exp_continue}\"*password*\" {send \"123456Asda\r\"; exp_continue}\"*Password*\" {send \"123456Asda\r\";}} "
done
systemctl stop firewalld
systemctl disable firewalld
iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat
iptables -P FORWARD ACCEPT
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
setenforce 0
sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
#目前官方推荐内核版本大于3.10,此部分选装
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm#默认安装为最新内核
yum --enablerepo=elrepo-kernel install kernel-ml#修改内核顺序
grub2-set-default 0 && grub2-mkconfig -o /etc/grub2.cfg#使用下面命令看看确认下是否启动默认内核指向上面安装的内核
grubby --default-kernel
#这里的输出结果应该为我们升级后的内核信息reboot
#可以等所有初始化步骤结束进行reboot操作
安装前准备配置yum源等
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
yum -y install gcc gcc-c++ make autoconf libtool-ltdl-devel gd-devel freetype-devel libxml2-devel libjpeg-devel libpng-devel openssh-clients openssl-devel curl-devel bison patch libmcrypt-devel libmhash-devel ncurses-devel binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel libgcj libtiff pam-devel libicu libicu-devel gettext-devel libaio-devel libaio libgcc libstdc++ libstdc++-devel unixODBC unixODBC-devel numactl-devel glibc-headers sudo bzip2 mlocate flex lrzsz sysstat lsof setuptool system-config-network-tui system-config-firewall-tui ntsysv ntp pv lz4 dos2unix unix2dos rsync dstat iotop innotop mytop telnet iftop expect cmake nc gnuplot screen xorg-x11-utils xorg-x11-xinit rdate bc expat-devel compat-expat1 tcpdump sysstat man nmap curl lrzsz elinks finger bind-utils traceroute mtr ntpdate zip unzip vim wget net-tools
modprobe br_netfilter
modprobe ip_conntrack
cat > kubernetes.conf <<EOF
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
vm.swappiness=0 # 禁止使用 swap 空间,只有当系统 OOM 时才允许使用它
vm.overcommit_memory=1 # 不检查物理内存是否够用
vm.panic_on_oom=0 # 开启 OOM
fs.inotify.max_user_instances=8192
fs.inotify.max_user_watches=1048576
fs.file-max=52706963
fs.nr_open=52706963
net.ipv6.conf.all.disable_ipv6=1
net.netfilter.nf_conntrack_max=2310720
EOF
cp kubernetes.conf /etc/sysctl.d/kubernetes.conf
sysctl -p /etc/sysctl.d/kubernetes.conf#分发到所有节点
for i in k8s-02
doscp kubernetes.conf root@$i:/etc/sysctl.d/ssh root@$i sysctl -p /etc/sysctl.d/kubernetes.conf
donecat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack
EOFchmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack#查看是否已经正确加载所需的内核模块yum install ipset -y
yum install ipvsadm -y
timedatectl set-timezone Asia/Shanghai
timedatectl set-local-rtc 0
systemctl restart rsyslog
systemctl restart crond
安装前准备docker安装
export VERSION=19.03
curl -fsSL "https://get.docker.com/" | bash -s -- --mirror Aliyun所有机器配置加速源并配置docker的启动参数使用systemd,使用systemd是官方的建议,详见 https://kubernetes.io/docs/setup/cri/mkdir -p /etc/docker/
cat>/etc/docker/daemon.json<<EOF
{"exec-opts": ["native.cgroupdriver=systemd"],"registry-mirrors": ["https://fz5yth0r.mirror.aliyuncs.com","https://dockerhub.mirrors.nwafu.edu.cn/","https://mirror.ccs.tencentyun.com","https://docker.mirrors.ustc.edu.cn/","https://reg-mirror.qiniu.com","http://hub-mirror.c.163.com/","https://registry.docker-cn.com"],"storage-driver": "overlay2","storage-opts": ["overlay2.override_kernel_check=true"],"log-driver": "json-file","log-opts": {"max-size": "100m","max-file": "3"}
}
EOF
systemctl enable --now docker
安装kubeadm
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=0
EOF# master 节点安装
yum install -y \kubeadm-1.18.3 \kubectl-1.18.3 \kubelet-1.18.3 \--disableexcludes=kubernetes && \systemctl enable kubeletkubeadm 安装集群
kubectl 通过命令行访问apiserver
kubelet 负责Pod对应容器的创建、停止等任务
node节点不需要安装kubectl,kubectl是一个agent读取kubeconfig访问api-server来操作集群,node节点一般不需要# node节点安装
yum install -y \kubeadm-1.18.3 \kubelet-1.18.3 \--disableexcludes=kubernetes && \systemctl enable kubelet#node节点安装默认是在所有节点安装,但是k8s中的master节点已经安装过了,我们就只在k8s-02中安装如果是多master ,可以使用keepalived 对api-server 进行高可用,一般云环境会采用云负载均衡来操作,单master 则跳过这些,因为是单点
配置kubeadm
kubeadm config print init-defaults > kubeadm-init.yaml修改 kubeadm-init.yaml
请对应我的IP进行配置,这里主要是master的IP.可以复制我的,但是主机名等要和我相同apiVersion: kubeadm.k8s.io/v1beta2
bootstrapTokens:
- groups:- system:bootstrappers:kubeadm:default-node-tokentoken: abcdef.0123456789abcdefttl: 24h0m0susages:- signing- authentication
kind: InitConfiguration
localAPIEndpoint:advertiseAddress: 192.168.100.30bindPort: 6443
nodeRegistration:criSocket: /var/run/dockershim.sockname: k8s-01taints:- 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
imageRepository: registry.aliyuncs.com/google_containers
kind: ClusterConfiguration
kubernetesVersion: v1.18.0
networking:dnsDomain: cluster.localserviceSubnet: 10.96.0.0/12podSubnet: "10.244.0.0/16"
scheduler: {}
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
featureGates:SupportIPVSProxyMode: true
mode: ipvs//生成默认初始化配置文件
kubeadm config print init-defaults >kubeadm.yaml
//修改生成的配置文件
advertiseAddress: 192.168.100.30.2 //主节点IP地址
kubernetesVersion: v1.18.2 //安装的版本
imageRepository: registry.aliyuncs.com/google_containers //修改安装源为阿里云镜像
networking:podSubnet: "10.244.0.0/16" //增加一行设置pod分配的网段信息
//在最后添加下列信息,将默认的调度方式改为IPVS
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
featureGates:SupportIPVSProxyMode: true
mode: ipvs单节点的安装成这样
kubeadm init --config kubeadm-init.yaml --dry-runkubeadm config images list --config kubeadm-init.yaml
kubeadm config images pull --config kubeadm-init.yaml
kubeadm init --config kubeadm-init.yaml--upload-certsYour Kubernetes control-plane has initialized successfully!To start using your cluster, you need to run the following as a regular user:mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/configYou should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:https://kubernetes.io/docs/concepts/cluster-administration/addons/Then you can join any number of worker nodes by running the following on each as root:kubeadm join 192.168.100.30:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:7af6d307bf991b433a85d9cf188ac652c6233fb7348409a808a6fe1c1bcbfd01 主节点需要执行
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/confignode节点新加入kubeadm join 192.168.100.30:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:7af6d307bf991b433a85d9cf188ac652c6233fb7348409a808a6fe1c1bcbfd01
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
//kube-flannel中Pod网段必须和kubernetes中配置的Pod网段一致
//kube-flannel默认Pod的网段为10.244.0.0/16
kubectl create -f kube-flannel.yml
验证集群
kubectl -n kube-system get pod -o widecat<<EOF | kubectl apply -f -
apiVersion: apps/v1
kind: Deployment
metadata:name: nginx
spec:selector:matchLabels:app: nginxtemplate:metadata:labels:app: nginxspec:containers:- image: nginx:alpinename: nginxports:- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:name: nginx
spec:selector:app: nginxtype: NodePortports:- protocol: TCPport: 80targetPort: 80nodePort: 30001
---
apiVersion: v1
kind: Pod
metadata:name: busyboxnamespace: default
spec:containers:- name: busyboximage: abcdocker9/centos:v1command:- sleep- "3600"imagePullPolicy: IfNotPresentrestartPolicy: Always
EOF[root@k8s-01 ~]# kubectl get pod,svc
NAME READY STATUS RESTARTS AGE
pod/busybox 1/1 Running 0 40s
pod/nginx-97499b967-jzxwg 1/1 Running 0 40sNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 16m
service/nginx NodePort 10.104.210.165 <none> 80:30001/TCP 40s使用nslookup查看是否能返回地址
[root@k8s-01 ~]# kubectl exec -ti busybox -- nslookup kubernetes
Server: 10.96.0.10
Address: 10.96.0.10#53Name: kubernetes.default.svc.cluster.local
Address: 10.96.0.1测试nginx svc以及Pod内部网络通信是否正常
for i in k8s-01 k8s-02
dossh root@$i curl -s 10.104.210.165 #nginx svc ipssh root@$i curl -s 10.244.1.2 #pod ip
done或者用外网打开试一试
[root@k8s-01 ~]# curl 192.168.100.31:30001
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p><p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p>
</body>
</html>
参考链接
二进制安装 :https://blog.csdn.net/startfefesfe/article/details/132408330?spm=1001.2014.3001.5501
其他方式安装:https://blog.csdn.net/startfefesfe/article/details/132339032?spm=1001.2014.3001.5501
https://i4t.com/4732.html
https://www.cnblogs.com/xhyan/p/13591309.html
相关文章:
飞天使-kubeadm安装一主一从集群
文章目录 安装前准备安装前准备配置yum源等安装前准备docker安装 安装kubeadm配置kubeadm验证集群 参考链接 安装前准备 cat >> /etc/hosts <<EOF 192.168.100.30 k8s-01 192.168.100.31 k8s-02 EOF hostnamectl set-hostname k8s-01 #所有机器按照要求修改 ho…...
string类写时拷贝
文章目录 1.string类拷贝构造函数的现代写法2.string类写时拷贝vs和g下string结构的不同vs下string的结构:g下string的结构 3.总结 1.string类拷贝构造函数的现代写法 string类拷贝构造函数的传统写法: string(const string& s){if (this ! &s)…...
QT VS编译环境无法打开包括文件type_traits
这问题,别人给的处理方法都是: 添加环境变量执行vsvars32.bat/vcvarsall.bat/vsdevcmd.bat重新安装QT项目:执行qmake。。。。 个人不推荐配置环境编译,除非你非常熟,因为配置环境变量需要你知道有哪些路径需要添加&a…...
深入浅出 TCP/IP 协议栈
TCP/IP 协议栈是一系列网络协议的总和,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输。TCP/IP 协议采用4层结构,分别是应用层、传输层、网络层和链路层,每一层都呼叫它的下…...
Servlet+JDBC实战开发书店项目讲解第13讲:库存管理功能
ServletJDBC实战开发书店项目讲解第13讲:库存管理功能 在第13讲中,我们将讲解如何实现书店项目中的库存管理功能。该功能包括图书的添加、编辑、删除和查询等核心功能。下面是实现该功能的主要思路: 显示库存列表: 创建一个管理页…...
Shepherd: A Critic for Language Model Generation
本文是LLM系列的相关文章,针对《Shepherd: A Critic for Language Model Generation》的翻译。 Shepherd:语言模型生成的评价 摘要1 引言2 数据收集3 Shepherd模型4 评估反馈5 结果6 相关工作7 结论不足 摘要 随着大型语言模型的改进,人们对…...
【Python爬虫案例】爬取大麦网任意城市的近期演出!
老规矩,先上结果: 含10个字段: 页码,演出标题,链接地址,演出时间,演出城市,演出地点,售价,演出类别,演出子类别,售票状态。 代码演示…...
【框架】SpringBoot数组传参问题
方式一 前端以字符串形式传递idList,采用逗号拼接,后端直接使用list接收 // 前端代码 form: {otherParam: ,idList: [id1,id2].join(,) }//后端代码 // 在后端接收idList时,直接使用List<T> 就可以接收前端字符串(默认使用…...
四川天蝶电子商务:2023短视频运营分析
短视频运营分析是指通过对短视频平台上的各种数据进行收集、整理和分析,以寻找出视频内容、用户活跃度、用户行为等方面的规律和问题,从而为短视频平台的运营决策提供依据。下面将从几个方面具体介绍短视频运营分析的重要性和方法。 首先,短…...
Git(5)已有项目连接远端git仓库
文章目录 初始化git连接远程仓库拉下仓库代码添加代码到本地仓库删除idea配置的git本地缓存提交代码推上去 初始化git git init连接远程仓库 git remote add origin 你的仓库地址拉下仓库代码 git pull --rebase origin master添加代码到本地仓库 git add .删除idea配置的g…...
Datawhale Django 后端开发入门 Task05 DefaultRouter、自定义函数
一、DefaultRouter是Django REST framework中提供的一个路由器类,用于自动生成URL路由。路由器是将URL与视图函数或视图集关联起来的一种机制。Django REST framework的路由器通过简单的配置可以自动生成标准的URL路由,从而减少了手动编写URL路由的工作量…...
JVM的元空间了解吗?
笔者近期在面试的时候被问到了这个问题,元空间也是Java8当时的一大重大革新,之前暑期实习求职的时候有专门看过,但是近期秋招的时候JVM相关的内容确实有点生疏了,故在此进行回顾。 结构 首先,我们应了解JVM的堆结构&a…...
WPS中的表格错乱少行
用Office word编辑的文档里面包含表格是正常的,但用WPS打开里面的表格就是错乱的,比如表格位置不对,或者是表格的前几行无法显示、丢失了。 有一种可能的原因是: 表格属性里面的文字环绕选成了“环绕”而非“无”,改…...
Pytorch-day09-模型微调-checkpoint
模型微调(fine-tune)-迁移学习 torchvision微调timm微调半精度训练 起源: 1、随着深度学习的发展,模型的参数越来越大,许多开源模型都是在较大数据集上进行训练的,比如Imagenet-1k,Imagenet-11k等2、如果…...
leetcode304. 二维区域和检索 - 矩阵不可变(java)
前缀和数组 二维区域和检索 - 矩阵不可变题目描述前缀和代码演示 一维数组前缀和 二维区域和检索 - 矩阵不可变 难度 - 中等 原题链接 - 二维区域和检索 - 矩阵不可变 题目描述 给定一个二维矩阵 matrix,以下类型的多个请求: 计算其子矩形范围内元素的总…...
记一次oracle数据库迁移至mysql数据库(表同步)
目录 一、利用Navicat将oracle迁移至mysql数据库 1、建立数据传输 2、选择需要迁移的数据库跟目标库 3、数据传输选项 4、选择需要迁移表信息 二、迁移之后遇到的一些问题 1、大小写问题 2、数据库函数问题 3、sql语句是否使用空格隔开问题 4、关于子查询别命名问题 …...
打怪升级之从零开始的网络协议
序言 三个多月过去了,我又来写博客了,这一次从零开始学习网络协议。 总的来说,计算机网络很像现实生活中的快递网络,其最核心的目标,就是把一个包裹(信息)从A点发送到B点去。下面是一些共同的…...
Lnton羚通算法算力云平台【PyTorch】教程:torch.nn.Softsign
torch.nn.Softsign 原型 CLASS torch.nn.Softsign() 图 代码 import torch import torch.nn as nnm nn.Softsign() input torch.randn(4) output m(input)print("input: ", input) print("output: ", output)# input: tensor([ 0.0046, -0.4135, -2…...
读SQL学习指南(第3版)笔记02_数据类型
1. 命令行工具 1.1. mysql -u root -p; 1.2. mysql> show databases; 1.3. mysql> use sakila; 1.4. mysql> SELECT now(); 1.4.1. now()是MySQL的内建函数 1.4.2. 返回当前日期和时间 1.5. mysql> SELECT now() FROM dual…...
易思智能物流无人值守系统文件上传漏洞复现
0x01 产品简介 易思无人值守智能物流系统是一款集成了人工智能、机器人技术和物联网技术的创新产品。它能够自主完成货物存储、检索、分拣、装载以及配送等物流作业,帮助企业实现无人值守的智能物流运营,提高效率、降低成本,为现代物流行业带…...
git获取远端分支和merge
要将远程分支拉取到本地,你可以使用以下命令: 1. 首先,使用git fetch命令从远程仓库获取最新的分支信息: git fetch origin 这个命令将会将远程仓库origin的分支信息下载到本地。 2. 接下来,可以使用git checkout命…...
linux-进程
文章目录 1.先谈硬件冯诺依曼体系结构 2.再谈软件操作系统什么是操作系统?为什么要有操作系统?如何管理?系统调用 3.再谈进程那么具体Linux是怎么做的?指令 ps ajx 查看所有进程 非实时top 实时查看进程 相当于任务管理器ls /proc 内存级进程…...
整数数组区间的插入与删除
相似题参考: 56. Merge Intervals - 力扣(LeetCode)合并区间 57. 插入区间 - 力扣(LeetCode) 1272. 删除区间 package Jerry;import org.junit.Assert; import org.junit.Test;import java.util.ArrayList; import…...
Git标签
Git 中的标签,指的是某个分支某个特定时间点的状态(静态)。通过标签,可以很方便的切换到标记时的状态。 比较有代表性的是人们会使用这个功能来标记发布结点 (v1.0、v1.2等)。 下面是myatis-plus的标签: 1 标签相关命令 命令作用git tag查看标签&…...
BarCodeWiz ActiveX Control Crack
BarCodeWiz ActiveX Control Crack BarcodeWiz ActiveX Control–只需单击按钮即可将所有基本条形码类型添加到Microsoft Office中。在Microsoft Word中,创建单独的条形码、标签页或合并文档。在Microsoft Excel中,选择单元格范围并自动将每个单元格转换…...
mysql高版本(8.0+)group_by报错的处理方法
mysql高版本8.0 group_by报错的处理方法 1. 原因2. 处理方法2.1 临时方法,重启后失效2.2 修改配置my.ini文件 1. 原因 这个错误一般发生在mysql 5.7以及 5.7以上的版本中,其原因是mysql的默认配置中,sql_mode“ONLY_FULL_GROUP_BY” 这个配置严格执行了 ‘SQL92标准…...
Java 下载压缩zip
Java压缩zip /*** 下载压缩包** param instId 实例id* param response 响应* author 梁伟浩* date 2023-08-21*/GetMapping("/downloadZip")ApiOperation(value "下载压缩包")ApiImplicitParam(name "instId", value "实例id", r…...
GTK3实现自定义列表
使用gtk,如果想自己定义列表,思路可以将每个列表项作为一个hbox,整个列表是一个vbox。通过对容器动态的添加删除,实现列表操作,同时添加任何自己所需要的控件。 下面的例子是实现一个显示图片、按钮和进度条的列表,并且进行上移下移,具有添加和删除列表项功能但没有演示…...
Go语言基础之数组
Array(数组) 数组是同一种数据类型元素的集合。 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化。 基本语法: // 定义一个长度为3元素类型为int的数组a var a [3]int数组定义: var 数…...
信息安全从业者考试认证大全
证书是IT从业者知识水平能力的一个体现,考证同时也是拓展自身知识的一个方法。近年来,安全行业风生水起,各种认证层出不穷,眼花缭乱。这里不对任何一个证书做评价,只是做出介绍,在国内,对任何事…...
用搬瓦工做网站/谷歌google中文登录入口
1.1、Raft分为哪几个部分? 主要是分为leader选举、日志复制、日志压缩、成员变更等。 1.2、Raft中任何节点都可以发起选举吗? Raft发起选举的情况有如下几种: 刚启动时,所有节点都是follower,这个时候发起选举&…...
酒店设计网站建设方案/合肥网络推广
RxJava2初步使用 转载于:https://www.cnblogs.com/annieBaby/p/6800513.html...
订阅号怎么做微网站/网站seo专员招聘
联想一下,我们不可能只传输一类数据。通常,我们会一边上网,一遍聊QQ,一边听音乐。这么多数据怎么管理?这就要求我们要用到第4层的协议。 第4层协议就是用来区分不同程序,不同服务的网络通信。在TCP/IP中&am…...
虾皮跨境电商靠谱吗/天津seo技术教程
最近几个月,我一直在使用带有Sandbox凭据的Paypal Merchant SDK,并且一切正常.但是今天,我面临着这个奇怪的问题,每当我对SetExpressCheckout进行API调用时,由于内部错误,错误代码为10001,我都会导致事务失败.我没有更改代码中的任何内容,它刚刚开始显示.我使用github api进行交…...
做网站360好还是百度好/北大青鸟软件开发培训学费多少
项目需求...直接上码ORM文件忘记说了,mysqldb的配置settings文件,要放在ORM文件同级目录下。# -*- coding:utf-8 -*-import os, sysprint(os.path.dirname(os.path.abspath(__file__)))sys.path.append(os.path.dirname(os.path.abspath(__file__)))from…...
网页设计和网站建设是同一回事吗/搜索量查询百度指数
1、第三方模块安装:pip install -i https://pypi.douban.com/simple httprunner验证:hrun -h2、创建工程目录:使用命令创建一个工程目录hrun --startproject myhrun3、 进入到目录cd myhrundir可以看到生成的4个目录和一个py文件api debugtal…...