K8s二进制部署-flanneld报(Couldn‘t fetch network config)

2023-11-04

1、报错提示

将网络配置信息写入了ETCD中,启动flanneld测试时一直报错,具体报错如下:

[root@master1 ~]# tail -100f /var/log/messages
Dec 15 23:39:22 localhost flanneld: E1215 23:39:22.688405   31176 main.go:382] Couldn't fetch network config: 100: Key not found (/coreos.com) [10]
Dec 15 23:39:23 localhost flanneld: timed out
Dec 15 23:39:23 localhost flanneld: E1215 23:39:23.701707   31176 main.go:382] Couldn't fetch network config: 100: Key not found (/coreos.com) [10]
Dec 15 23:39:24 localhost flanneld: timed out
Dec 15 23:39:24 localhost flanneld: E1215 23:39:24.717330   31176 main.go:382] Couldn't fetch network config: 100: Key not found (/coreos.com) [10]
Dec 15 23:39:25 localhost flanneld: timed out
Dec 15 23:39:25 localhost flanneld: E1215 23:39:25.725860   31176 main.go:382] Couldn't fetch network config: 100: Key not found (/coreos.com) [10]
Dec 15 23:39:26 localhost flanneld: timed out
Dec 15 23:39:26 localhost flanneld: E1215 23:39:26.733186   31176 main.go:382] Couldn't fetch network config: 100: Key not found (/coreos.com) [10]
Dec 15 23:39:27 localhost flanneld: timed out
Dec 15 23:39:27 localhost flanneld: E1215 23:39:27.744882   31176 main.go:382] Couldn't fetch network config: 100: Key not found (/coreos.com) [10]
Dec 15 23:39:28 localhost flanneld: timed out
Dec 15 23:39:28 localhost flanneld: E1215 23:39:28.755176   31176 main.go:382] Couldn't fetch network config: 100: Key not found (/coreos.com) [10]
Dec 15 23:39:29 localhost systemd: flanneld.service start operation timed out. Terminating.
Dec 15 23:39:29 localhost flanneld: I1215 23:39:29.528718   31176 main.go:370] shutdownHandler sent cancel signal...
Dec 15 23:39:29 localhost systemd: Failed to start Flanneld overlay address etcd agent.
Dec 15 23:39:29 localhost systemd: Unit flanneld.service entered failed state.
Dec 15 23:39:29 localhost systemd: flanneld.service failed.
Dec 15 23:39:29 localhost systemd: flanneld.service holdoff time over, scheduling restart.
Dec 15 23:39:29 localhost systemd: Stopped Flanneld overlay address etcd agent.
Dec 15 23:39:29 localhost systemd: Starting Flanneld overlay address etcd agent...
Dec 15 23:39:29 localhost flanneld: warning: ignoring ServerName for user-provided CA for backwards compatibility is deprecated
Dec 15 23:39:29 localhost flanneld: I1215 23:39:29.975581   31202 main.go:514] Determining IP address of default interface
Dec 15 23:39:29 localhost flanneld: I1215 23:39:29.976573   31202 main.go:527] Using interface with name ens33 and address 192.168.31.101
Dec 15 23:39:29 localhost flanneld: I1215 23:39:29.976606   31202 main.go:544] Defaulting external address to interface address (192.168.31.101)
Dec 15 23:39:29 localhost flanneld: I1215 23:39:29.983495   31202 main.go:244] Created subnet manager: Etcd Local Manager with Previous Subnet: None
Dec 15 23:39:29 localhost flanneld: I1215 23:39:29.983525   31202 main.go:247] Installing signal handlers

2、配置过程

(1)配置Falnnel使用的子网信息并存储到etcd

[root@master1 ~]# /opt/etcd/bin/etcdctl --cacert=/opt/etcd/ssl/ca.pem --cert=/opt/etcd/ssl/server.pem --key=/opt/etcd/ssl/server-key.pem --endpoints="https://192.
168.31.101:2379,https://192.168.31.102:2379,https://192.168.31.103:2379" put /coreos.com/network/config  '{ "Network": "172.17.0.0/16", "Backend": {"Type": "vxlan"}}'

OK

(2)获取配置的子网信息

[root@master1 ~]# /opt/etcd/bin/etcdctl --cacert=/opt/etcd/ssl/ca.pem --cert=/opt/etcd/ssl/server.pem --key=/opt/etcd/ssl/server-key.pem --endpoints="https://192.
168.31.101:2379,https://192.168.31.102:2379,https://192.168.31.103:2379" get /coreos.com/network/config

/coreos.com/network/config
{ "Network": "172.17.0.0/16", "Backend": {"Type": "vxlan"}}

(3)配置flanneld信息

[root@master1 ~]# vim /opt/kubernetes/cfg/flanneld
FLANNEL_OPTIONS="--etcd-endpoints=https://192.168.31.101:2379,https://192.168.31.102:2379,https://192.168.31.103:2379 -etcd-cafile=/opt/etcd/ssl/ca.pem -etcd-certfile=/opt/etcd/ssl/server.pem -etcd-keyfile=/opt/etcd/ssl/server-key.pem"

(4)systemd管理Flannel:

[root@master1 ~]# vim /usr/lib/systemd/system/flanneld.service
[Unit]
Description=Flanneld overlay address etcd agent
After=network-online.target network.target
Before=docker.service

[Service]
Type=notify
EnvironmentFile=/opt/kubernetes/cfg/flanneld
ExecStart=/opt/kubernetes/bin/flanneld --ip-masq $FLANNEL_OPTIONS
ExecStartPost=/opt/kubernetes/bin/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/subnet.env
Restart=on-failure

[Install]
WantedBy=multi-user.target

(5)启动flanneld服务

[root@master1 ~]# iptables -I INPUT -s 192.168.0.0/24 -j ACCEPT
[root@master1 ~]# iptables -I INPUT -s 172.17.0.0/24 -j ACCEPT
[root@master1 ~]# systemctl daemon-reload
[root@master1 ~]# systemctl start flanneld
[root@master1 ~]# systemctl enable flanneld

提示开篇所示的错误!!

3、问题原因

github上与此问题相关的一些issues,也即flanneld目前不能与etcdV3直接交互
https://github.com/coreos/flannel/issues/554
https://github.com/coreos/flannel/issues/755

4、解决办法

按如下方法调整后,flanneld服务正常启动。
(1) 开启etcd 支持V2api功能,在etcd启动参数中加入 --enable-v2参数,并重启etcd2

[root@master1 ~]# vim /usr/lib/systemd/system/etcd.service
[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target

[Service]
Type=notify
EnvironmentFile=/opt/etcd/cfg/etcd.conf
ExecStart=/opt/etcd/bin/etcd --cert-file=/opt/etcd/ssl/server.pem \
--key-file=/opt/etcd/ssl/server-key.pem \
--peer-cert-file=/opt/etcd/ssl/server.pem \
--peer-key-file=/opt/etcd/ssl/server-key.pem \
--trusted-ca-file=/opt/etcd/ssl/ca.pem \
--peer-trusted-ca-file=/opt/etcd/ssl/ca.pem \
--logger=zap \
--enable-v2
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
[root@master1 ~]# systemctl daemon-reload
[root@master1 ~]# systemctl restart etcd
[root@master1 ~]# ETCDCTL_API=2 /opt/etcd/bin/etcdctl --ca-file=/opt/etcd/ssl/ca.pem --cert-file=/opt/etcd/ssl/server.pem --key-file=/opt/etcd/ssl/server-key.pem 
--endpoints="https://192.168.31.101:2379,https://192.168.31.102:2379,https://192.168.31.103:2379" cluster-health

member 969af216adf1108 is healthy: got healthy result from https://192.168.31.102:2379
member 4d384076f6bc6dde is healthy: got healthy result from https://192.168.31.101:2379
member ea776d7c1c3c494c is healthy: got healthy result from https://192.168.31.103:2379
cluster is healthy

(2)删除原来写入的子网信息

/opt/etcd/bin/etcdctl --cacert=/opt/etcd/ssl/ca.pem --cert=/opt/etcd/ssl/server.pem --key=/opt/etcd/ssl/server-key.pem --endpoints="https://192.
168.31.101:2379,https://192.168.31.102:2379,https://192.168.31.103:2379" del /coreos.com/network/config

(3)重新使用V2写入子网信息

[root@master1 ~]# ETCDCTL_API=2 /opt/etcd/bin/etcdctl --ca-file=/opt/etcd/ssl/ca.pem --cert-file=/opt/etcd/ssl/server.pem --key-file=/opt/etcd/ssl/server-key.pem 
--endpoints="https://192.168.31.101:2379,https://192.168.31.102:2379,https://192.168.31.103:2379" set /coreos.com/network/config '{ "Network": "172.17.0.0/16", "Backend": {"Type": "vxlan"}}

'{ "Network": "172.17.0.0/16", "Backend": {"Type": "vxlan"}}
[root@master1 ~]# ETCDCTL_API=2 /opt/etcd/bin/etcdctl --ca-file=/opt/etcd/ssl/ca.pem --cert-file=/opt/etcd/ssl/server.pem --key-file=/opt/etcd/ssl/server-key.pem 
--endpoints="https://192.168.31.101:2379,https://192.168.31.102:2379,https://192.168.31.103:2379" get /coreos.com/network/config

{ "Network": "172.17.0.0/16", "Backend": {"Type": "vxlan"}}

(4)重启flanneld服务

[root@master1 ~]# iptables -I INPUT -s 192.168.0.0/24 -j ACCEPT
[root@master1 ~]# iptables -I INPUT -s 172.17.0.0/24 -j ACCEPT
[root@master1 ~]# systemctl daemon-reload
[root@master1 ~]# systemctl start flanneld
[root@master1 ~]# systemctl enable flanneld
[root@master1 ~]# systemctl status flanneld
● flanneld.service - Flanneld overlay address etcd agent
   Loaded: loaded (/usr/lib/systemd/system/flanneld.service; enabled; vendor preset: disabled)
   Active: active (running) since Tue 2020-12-15 23:40:07 CST; 4min 15s ago
 Main PID: 31202 (flanneld)
   CGroup: /system.slice/flanneld.service
           └─31202 /opt/kubernetes/bin/flanneld --ip-masq --etcd-endpoints=https://192.168.31.101:2379,https://192.168.31.102:2379,https://192.168.31.103:2379 ...

Dec 15 23:40:07 master1 flanneld[31202]: I1215 23:40:07.171127   31202 iptables.go:155] Adding iptables rule: -s 172.17.0.0/16 -j ACCEPT
Dec 15 23:40:07 master1 flanneld[31202]: I1215 23:40:07.180271   31202 iptables.go:167] Deleting iptables rule: -s 172.17.0.0/16 ! -d 224.0.0.0/4 -j MASQUERADE
Dec 15 23:40:07 master1 systemd[1]: Started Flanneld overlay address etcd agent.
Dec 15 23:40:07 master1 flanneld[31202]: I1215 23:40:07.182977   31202 iptables.go:167] Deleting iptables rule: ! -s 172.17.0.0/16 -d 172.17.51.0/24 -j RETURN
Dec 15 23:40:07 master1 flanneld[31202]: I1215 23:40:07.189015   31202 iptables.go:155] Adding iptables rule: -d 172.17.0.0/16 -j ACCEPT
Dec 15 23:40:07 master1 flanneld[31202]: I1215 23:40:07.195921   31202 iptables.go:167] Deleting iptables rule: ! -s 172.17.0.0/16 -d 172.17.0.0/16 -j MASQUERADE
Dec 15 23:40:07 master1 flanneld[31202]: I1215 23:40:07.203488   31202 iptables.go:155] Adding iptables rule: -s 172.17.0.0/16 -d 172.17.0.0/16 -j RETURN
Dec 15 23:40:07 master1 flanneld[31202]: I1215 23:40:07.212158   31202 iptables.go:155] Adding iptables rule: -s 172.17.0.0/16 ! -d 224.0.0.0/4 -j MASQUERADE
Dec 15 23:40:07 master1 flanneld[31202]: I1215 23:40:07.219014   31202 iptables.go:155] Adding iptables rule: ! -s 172.17.0.0/16 -d 172.17.51.0/24 -j RETURN
Dec 15 23:40:07 master1 flanneld[31202]: I1215 23:40:07.228946   31202 iptables.go:155] Adding iptables rule: ! -s 172.17.0.0/16 -d 172.17.0.0/16 -j MASQUERADE

(5)查看各节点IP,并ping另一节点的docker0网络,以及确认docker0与flannel.1在同一网段

[root@master1 ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:0c:29:14:36:9d brd ff:ff:ff:ff:ff:ff
    inet 192.168.31.101/24 brd 192.168.31.255 scope global noprefixroute ens33
       valid_lft forever preferred_lft forever
    inet6 fe80::eddd:ed6f:516a:ac4/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default 
    link/ether 02:42:05:2c:ef:6c brd ff:ff:ff:ff:ff:ff
    inet 172.17.51.1/24 brd 172.17.51.255 scope global docker0
       valid_lft forever preferred_lft forever
4: flannel.1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1450 qdisc noqueue state UNKNOWN group default 
    link/ether 02:fb:8d:80:3f:b2 brd ff:ff:ff:ff:ff:ff
    inet 172.17.51.0/32 scope global flannel.1
       valid_lft forever preferred_lft forever
    inet6 fe80::fb:8dff:fe80:3fb2/64 scope link 
       valid_lft forever preferred_lft forever
[root@master1 ~]# ping 172.17.29.1
PING 172.17.29.1 (172.17.29.1) 56(84) bytes of data.
64 bytes from 172.17.29.1: icmp_seq=1 ttl=64 time=10.1 ms
64 bytes from 172.17.29.1: icmp_seq=2 ttl=64 time=0.635 ms
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

K8s二进制部署-flanneld报(Couldn‘t fetch network config) 的相关文章

  • kubectl:描述与获取 -o <格式>

    在 kubectl 中 两者describe and get o
  • kubernetes POD IP什么时候会改变?

    我正在尝试将一个整体应用程序移植到 k8s pod 理论上 Pod 被认为是短暂的 建议使用服务概念来提供静态 IP 但到目前为止 在我的测试中 我还没有看到 POD IP 被更改 那么现在的问题是 k8s 什么时候会为我的 POD 分配一
  • curl:(7)无法连接到192.168.99.100端口31591:连接被拒绝

    这些是我的豆荚 hello kubernetes 5569fb7d8f 4rkhs 0 1 ImagePullBackOff 0 5d2h hello minikube 5857d96c67 44kfg 1 1 Running 1 5d2h
  • 多个 nginx 入口重写的默认路径

    这是我的情况 我在 kubernetes 入口 上 有两个 docker 镜像 一个专用于 Web 第二个专用于 api 在下一个配置下 在消息末尾 web将显示将进行一些调用的前端 api 那里一切都好 but 是 404 因为没有定义任
  • 使用 zeppelin 在 kubernetes 上 Spark

    我按照本指南在使用 minikube 设置的本地 kubernetes 集群中运行 zeppelin 容器 https zeppelin apache org docs 0 9 0 SNAPSHOT quickstart kubernete
  • Jenkinsfile 泊坞窗

    我正在 docker 容器内的 GCE 上运行一个 jenkins 实例 并希望从此 Jenkinsfile 和 Github 执行多分支管道 我正在使用GCE詹金斯 https cloud google com solutions con
  • Kubernetes 1.8 支持的 Docker 版本

    我要将我的 Kubernetes 集群升级到该版本1 8 7 有谁知道哪个 docker 版本与其最兼容 这是我在 Kubernetes 官方页面上找到的 但我想它可能是针对最新的 k8s 版本的 1 9 在每台计算机上安装 Docker
  • 从 celery 工作人员到普罗米修斯的自定义指标

    我有一些 celery 工作人员在 kubernetes 下的容器中运行 它们不会由 celery 自动缩放 并且每个都在单个进程中运行 即没有多处理 我想从他们那里获取一堆不同的指标到普罗米修斯中 我研究过 celery promethe
  • Kubernetes Pod 中现在几点了?

    假设我有一些 NET Core 代码在 k8s pod 中运行 我要求 DateTime Now 我假设我将从运行 pod 的主机获取日期时间 有没有办法获得在 k8s 集群中一致的日期时间值 容器中的时钟与主机相同 因为它由内核控制 时区
  • kubectl --token=$TOKEN 未使用令牌的权限运行

    当我使用命令时kubectl与 token标记并指定令牌 它仍然使用来自kubeconfig file 这就是我所做的 NAMESPACE default SERVICE ACCOUNT NAME sa1 kubectl create sa
  • 如何使用 Prometheus Alert Manager 在 Kubernetes 中触发警报

    我在集群中设置了 kube prometheus https github com coreos prometheus operator tree master contrib kube prometheus https github co
  • 各种 Istio 端口是如何使用的?

    Question 我正在尝试学习 Istio 并且正在设置我的 Istio Ingress Gateway 当我设置它时 有以下端口选项 如此处所示 https istio io latest docs reference config i
  • 如何根据 Kubernetes / Docker 事件发送警报?

    是否可以根据 Kubernetes 集群内发生的事件以某种方式发送警报 到电子邮件 slack 特别是 如果 Pod 意外重新启动或 Pod 无法启动 那么获取警报将非常有用 同样 了解 Pod 的 CPU 使用率是否超过特定阈值并获取警报
  • 2 个具有共享 Redis 依赖的 Helm Chart

    目前 我有 2 个 Helm Charts Chart A 和 Chart B Chart A 和 Chart B 对 Redis 实例具有相同的依赖关系 如Chart yaml file dependencies name redis v
  • 有没有办法用Lettuce自动发现Redis集群中新的集群节点IP

    我有一个Redis集群 3主3从 运行在一个库伯内斯簇 该集群通过Kubernetes 服务 Kube 服务 我将我的应用程序服务器连接到 Redis 集群 使用Kube 服务作为 URI 通过 Redis 的 Lettuce java 客
  • 如何将 configmap 附加到 Kubernetes 中的部署?

    根据此处找到的说明 https kubernetes io docs tasks access application cluster connecting frontend backend https kubernetes io docs
  • 无法使用 minikube 设置 Istio

    我按照 Istio 的官方文档为带有 minikube 的示例 bookinfo 应用程序设置了 Istio 但我得到了无法连接到服务器 net http TLS 握手超时错误 这些是我遵循的步骤 我安装了 kubectl 和 miniku
  • Kubernetes 的艰难之路 - 如何设置节点不可调度

    我正在从头开始配置 Kubernetes 集群 原因 它是虚拟机内的本地设置 一切都很好 除了master节点被创建为可调度的 我尝试过分配master通过将所需参数传递给 kubelet 二进制文件来对节点进行标签和适当的污点 不能解决问
  • Google Kubernetes Engine 中的存储 ReadWriteMany

    有没有一种方法能够提供 ReadWriteMany 存储而无需实现存储集群 我能够使用 gcsfuse 提供存储 但速度非常慢 我需要接近 GlusterFS 速度的东西 我目前正在使用 GlusterFS 另一种选择 Google Clo
  • 为什么 tty 在命令完成后挂起?

    我想运行这样的命令 kubectl run busybox it rm restart Never image busybox command sh c env 预计运行命令并删除 pod 它打印变量 但随后终端冻结 尽管 pod 处于完成

随机推荐

  • 跨域产生原因和跨域解决方案

    一 为什么会出现跨域问题 出于浏览器的同源策略限制 同源策略是一种约定 它是浏览器最核心也就是最基本的安全功能 如果缺少了同源策略 浏览器的正常功能会受到影响 可以说WEB是构建在同源策略基础之上的 浏览器只是针对同源策略的一种实现 同源策
  • 有限元方法的核心思想是什么?

    有限元方法的核心思想是什么 有限元方法似乎是在不断地简化着什么 请问有限元方法的核心思想是什么 在哪些层面对方程做了简化 每一次简化的依据和思路是什么 2 条评论 按投票排序 按时间排序 31 个回答 菲兹 睡眠厌倦患者 138 人赞同 有
  • vue3+ts+setup获取全局变量getCurrentInstance

    前言 vue3的 setup中是获取不到this的 为此官方提供了特殊的方法 让我们可以使用this 达到我们获取全局变量的目的 但是在使用typescript的时候 就会有一些新的问题产生 这里来做一个整理 vue3官方提供的方法 1 引
  • ChatGPT、New Bing、文心一言、通义千问等 AI 工具到底哪个更AI? - 第二期

    文章目录 前言 选手介绍 ChatGPT New Bing 文心一言 钉钉的文档AI 通义千问 Stable Diffusion 文心一格 前言 本次是上次文章的后续 经历了这么久的时间 我也是在几个月前拿到了通义千问的测试资格 本次参加的
  • 密码爆破漏洞详解——黑客必修入门操作( 建议收藏 )

    隔壁老张 狗剩啊 隔壁xx村的王姐家的女娃好漂亮 我想盗她qq啊 你帮我个忙呗 狗剩 我不会呀 村里大妈 那个狗剩啊 连盗个qq号都不会 他妈还好意思说他是学网络安全当黑客的 密码爆破介绍 密码爆破又叫 暴力猜解 简单来说就是将密码逐个尝试
  • 第四章:进击,拿到Web最高权限

    1 根据前关已经得到了cookie 现在需要修改cookie达到登录系统的目的 2 打开网站 以谷歌浏览器为例 F12打开控制台 找到Application 对图中3 4的值进行修改 修改的内容为你获取到的cookie的内容 3 4分别对应
  • Unity XCode 拨号和一键加群

    拨号 void CallPhone const char iphone NSString nsIphone NSString stringWithFormat tel s iphone NSLog nsIphone NSURL url NS
  • centos如何查看linux内核,版本号

    root localhost uname a Linux localhost localdomain 3 10 0 957 el7 x86 64 1 SMP Thu Nov 8 23 39 32 UTC 2018 x86 64 x86 64
  • CSDN博客的RSS订阅---使用foxmail订阅

    CSDN博客有RSS订阅 使用foxmail订阅 好处是可以第一时间邮件通知 订阅自己的博客可以作为备份 foxmail订阅方法 CSDN博客有RSS订阅 使用foxmail订阅 好处是可以第一时间邮件通知 订阅自己的博客 可以作为备份 f
  • Python爬虫教程:包图网免费付费素材爬取【附源码】

    包图网大家都知道吧 集齐海量设计素材 十分好用 可惜太贵了 今天就带大家使用Python 爬虫爬取这些素材并且保存到本地 抓取一个网站的内容 我们需要从以下几方面入手 1 如何抓取网站的下一页链接 2 目标资源是静态还是动态 视频 图片等
  • LeetCode - 回文类问题总结

    子串与子序列 1 字符子串 指的是字符串中连续的n个字符 如abcdefg中 ab cde fg等都属于它的字串 2 字符子序列 指的是字符串中不一定连续但先后顺序一致的n个字符 即可以去掉字符串中的部分字符 但不可改变其前后顺序 如abc
  • moudo网络库剖析

    muduo简介 muduo是陈硕大神在Linux平台下基于C C 开发的高性能网络库 在此基础上可以很方便的扩展 进行二次开发编写如http服务器 muduo网络库的核心框架 one thread per thread Reactor模式
  • Font Awesome 的使用

    之前一直使用的是 iconfont 阿里巴巴出品的一个字体图标库 但是最近 iconfont 不再支持 CDN 引入 只能本地下载 这样一来修改图标就非常的麻烦 于是 就找了一个类似的图标库 现在使用的比较多的一个国外字体图标库 使用方式和
  • 基于红外感应的远距离智能跟随小车,自动跟随小车

    跟随原理 下面介绍红外感应的跟随小车的自动跟随部分 基本原理 在小车上安装一个红外接收器 能测量红外入射角的感应器 人手持一个红外发射模块 根据不同的入射角 调整小车前进方向 若入射角在右边 就控制小车右转 若入射角在左边 就控制小车左转
  • QListWidget使用体验

    主窗口继承QWidget class CustomListWidgetDemo public QWidget 自定义CustomListWidget继承QListWidget class CustomListWidget public QL
  • linux sys pread64,pread()函数

    pread是一个函数 用于带偏移量地原子的从文件中读取数据 带偏移量地原子的从文件中读取数据 函数原型 ssize t pread intfd void buf size tcount off toffset 用法 返回值 成功 返回成功读
  • 新手 Java 编程思想应该如何提高?

    简化一下就是从理解抽象开始 最先要理解的就是 类 接口通常被理解为 全抽象 在Java中也有重要地位和作用 其次就是抽象类介于接口和类之间的概念 另外理解面向对象编程过程 逐渐掌握封装 继承 多态的应用从而形成一个完整的面相对象编程思想 理
  • script 脚本标签中 defer 和 async (延缓 和 异步)

    原文章 https segmentfault com q 1010000000640869 本文章讲解几个点
  • 运营新人也可以做的副业平台丨闲鱼运营(下)

    文章上半部分给大家深度分享了关于闲鱼的赚钱方法和店铺权重建设该如何提升 如果没有看上半部分内容 直接翻阅主页就可以查阅到 接下来我们分享关于闲鱼运营的下半部分 店铺运营 闲鱼何运营总共分为三个部分 第一个部分是闲鱼养号 第二部分是内容编辑
  • K8s二进制部署-flanneld报(Couldn‘t fetch network config)

    1 报错提示 将网络配置信息写入了ETCD中 启动flanneld测试时一直报错 具体报错如下 root master1 tail 100f var log messages Dec 15 23 39 22 localhost flanne