1、安装网络插件报错

error unable to recognize "calico.yaml": no matches for kind "DaemonSet" in version "extensions/v1"'

描述:版本不匹配

解决办法:

地址:https://projectcalico.docs.tigera.io/archive/v3.21/getting-started/kubernetes/self-managed-onprem/onpremises

下载:curl https://docs.projectcalico.org/archive/v3.21/manifests/calico.yaml -O

安装:kubectl apply -f calico.yaml

2、集群初始化报错

问题:

[root@master ~]# kubeadm init --config kubeadm-config.yaml
[init] Using Kubernetes version: v1.25.0
[preflight] Running pre-flight checks
error execution phase preflight: [preflight] Some fatal errors occurred:
[ERROR FileContent--proc-sys-net-ipv4-ip_forward]: /proc/sys/net/ipv4/ip_forward contents are not set to 1
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
To see the stack trace of this error execute with --v=5 or higher

解决办法:

cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
net.ipv4.tcp_tw_recycle=0
vm.swappiness=0
vm.overcommit_memory=1
vm.panic_on_oom=0
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
sysctl --system

3、证书由未知机构签名

问题:虚拟机部署 kubernetes 集群,服务器重启后报这个错误

[root@master ~]# kubectl get node
Unable to connect to the server: x509: certificate signed by unknown authority (possibly because of "crypto/rsa: verification error" while trying to verify candidate authority certificate "kubernetes")
# 无法连接到服务器:x509:证书由未知授权机构签名(可能是因为在尝试验证 candi 时出现“crypto/rsa:验证错误”日期权威证书“kubernetes”)

解决办法:

配置用户使用 kubectl 访问集群

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

root 用户执行以下,设置环境变量:

export KUBECONFIG=/etc/kubernetes/admin.conf

4、无法确定运行时api版本

问题1:

[root@master ~]# crictl ps
WARN[0000] runtime connect using default endpoints: [unix:///var/run/dockershim.sock unix:///run/containerd/containerd.sock unix:///run/crio/crio.sock unix:///var/run/cri-dockerd.sock]. As the default settings are now deprecated, you should set the endpoint instead.
ERRO[0000] unable to determine runtime API version: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial unix /var/run/dockershim.sock: connect: no such file or directory"
WARN[0000] image connect using default endpoints: [unix:///var/run/dockershim.sock unix:///run/containerd/containerd.sock unix:///run/crio/crio.sock unix:///var/run/cri-dockerd.sock]. As the default settings are now deprecated, you should set the endpoint instead.
ERRO[0000] unable to determine image API version: rpc error: code = Unavailable desc = connection error: desc = "transport: Error while dialing dial unix /var/run/dockershim.sock: connect: no such file or directory"

问题2:

[root@node1 ~]# crictl ps
I1128 17:01:24.056664 24303 util_unix.go:104] "Using this endpoint is deprecated, please consider using full URL format" endpoint="/run/containerd/containerd.sock" URL="unix:///run/containerd/containerd.sock"
I1128 17:01:24.061791 24303 util_unix.go:104] "Using this endpoint is deprecated, please consider using full URL format" endpoint="/run/containerd/containerd.sock" URL="unix:///run/containerd/containerd.sock"

解决办法:

crictl config runtime-endpoint unix:///run/containerd/containerd.sock
crictl config image-endpoint unix:///run/containerd/containerd.sock

查看:

[root@master ~]# crictl ps
CONTAINER IMAGE CREATED STATE NAME ATTEMPT POD ID POD
e7878752e4ae6 b6e6ee0788f20 30 minutes ago Running calico-node 1 b5934818396e3 calico-node-f6xfz
f589de8f6f6ca 58a9a0c6d96f2 30 minutes ago Running kube-proxy 1 001b4ae7fedf5 kube-proxy-grx5m
2cf2f96c4d4fc bef2cf3115095 30 minutes ago Running kube-scheduler 3 7c294db1f3e0c kube-scheduler-master
054ad592ffac9 a8a176a5d5d69 30 minutes ago Running etcd 2 a8c6650e2382e etcd-master
a8becb1e17be7 1a54c86c03a67 30 minutes ago Running kube-controller-manager 2 070b5d24d34d0 kube-controller-manager-master
065ef061923aa 4d2edfd10d3e3 30 minutes ago Running kube-apiserver 2 f5c40d1e9cc76 kube-apiserver-master

5、二进制部署,启动kube-apiserver报错

问题1:错误,未知标志

[root@k8s-master1 k8s-work]# journalctl -xe
-- Unit kube-apiserver.service has begun starting up.
12月 15 11:19:39 k8s-master1 kube-apiserver[7982]: Error: unknown flag: --insecure-port
12月 15 11:19:39 k8s-master1 systemd[1]: kube-apiserver.service: main process exited, code=exited, status=1/FAILURE
12月 15 11:19:39 k8s-master1 systemd[1]: Failed to start Kubernetes API Server.

解决办法:

1、kubernetes v1.24版本以后弃用了  --insecure-port:非安全端口,所以在kube-apiserver配置文件中删除即可。

问题2:

[root@k8s-master1 k8s-work]# journalctl -xe
-- Unit kube-apiserver.service has begun starting up.
12月 15 11:35:46 k8s-master1 kube-apiserver[9169]: Error: unknown flag: --enable-swagger-ui
12月 15 11:35:46 k8s-master1 systemd[1]: kube-apiserver.service: main process exited, code=exited, status=1/FAILURE
12月 15 11:35:46 k8s-master1 systemd[1]: Failed to start Kubernetes API Server.

解决办法:

1、kubernetes v1.24版本以后弃用了 --enable-swagger-ui,所以在kube-apiserver配置文件中删除即可。

然后重新启动kube-apiserver,已经可以启动,显示为running

[root@k8s-master1 k8s-work]# systemctl status kube-apiserver
● kube-apiserver.service - Kubernetes API Server
Loaded: loaded (/etc/systemd/system/kube-apiserver.service; enabled; vendor preset: disabled)
Active: active (running) since 四 2022-12-15 11:37:05 CST; 15s ago
Docs: https://github.com/kubernetes/kubernetes
Main PID: 9249 (kube-apiserver)
CGroup: /system.slice/kube-apiserver.service
└─9249 /usr/local/bin/kube-apiserver --enable-admission-plugins=NamespaceLifecycle,NodeRestriction,LimitRanger,ServiceAccount,DefaultStorageClass,ResourceQuota --anonymous-aut... 12月 15 11:37:07 k8s-master1 kube-apiserver[9249]: I1215 11:37:07.835066 9249 storage_rbac.go:226] created clusterrole.rbac.authorization.k8s.io/system:certificates.k8s.io...nt-approver
12月 15 11:37:20 k8s-master1 kube-apiserver[9249]: I1215 11:37:20.579468 9249 trace.go:205] Trace[1975007498]: "Get" url:/api/v1/namespaces/default,user-agent:kube-apiserver/v1.25.5 ...
12月 15 11:37:20 k8s-master1 kube-apiserver[9249]: Trace[1975007498]: ---"About to Get from storage" 0ms (11:37:19.642)
12月 15 11:37:20 k8s-master1 kube-apiserver[9249]: Trace[1975007498]: ---"About to write a response" 936ms (11:37:20.579)
12月 15 11:37:20 k8s-master1 kube-apiserver[9249]: Trace[1975007498]: ---"Writing http response done" 0ms (11:37:20.579)
12月 15 11:37:20 k8s-master1 kube-apiserver[9249]: Trace[1975007498]: [936.380017ms] [936.380017ms] END
12月 15 11:37:20 k8s-master1 kube-apiserver[9249]: I1215 11:37:20.579595 9249 httplog.go:131] "HTTP" verb="GET" URI="/api/v1/namespaces/default" latency="937.219331ms" userAgent="kub...
12月 15 11:37:20 k8s-master1 kube-apiserver[9249]: I1215 11:37:20.600486 9249 httplog.go:131] "HTTP" verb="GET" URI="/api/v1/namespaces/default/services/kubernetes" latency="20.39133...
12月 15 11:37:20 k8s-master1 kube-apiserver[9249]: I1215 11:37:20.633958 9249 httplog.go:131] "HTTP" verb="GET" URI="/api/v1/namespaces/default/endpoints/kubernetes" latency="3.13709...
12月 15 11:37:20 k8s-master1 kube-apiserver[9249]: I1215 11:37:20.640702 9249 httplog.go:131] "HTTP" verb="GET" URI="/apis/discovery.k8s.io/v1/namespaces/default/endpointslices/kuber...
Hint: Some lines were ellipsized, use -l to show in full.

6、controller-manager启动报错,签署证书的期限(默认8760h0m0s)

问题:

kube-controller-manager[10968]: Error: unknown flag: --experimental-cluster-signing-duration

描述:

kube-controller-manager 的弃用--experimental-cluster-signing-duration标志现已删除。调整您的机器以使用--cluster-signing-duration自 v1.19 以来可用的标志。

解决办法:

将配置文件中的 --experimental-cluster-signing-duration=87600h 替换为: --cluster-signing-duration=87600h 即可解决!

7、--horizontal-pod-autoscaler-use-rest-clients

什么是 Horizontal Pod Autoscaling?

利用 Horizontal Pod Autoscaling,kubernetes 能够根据监测到的 CPU 利用率(或者在 alpha 版本中支持的应用提供的 metric)自动的扩容 replication controller,deployment 和 replica set。

Horizontal Pod Autoscaler 作为 kubernetes API resource 和 controller 的实现。Resource 确定 controller 的行为。Controller 会根据监测到用户指定的目标的 CPU 利用率周期性得调整 replication controller 或 deployment 的 replica 数量。

pod的横向自动伸缩

横向pod自动伸缩是指由控制器管理的pod副本数量的自动伸缩。它由Horizontal控制器执行,我们通过创建一个HorizontalpodAutoscaler(HPA)资源来启用和配置Horizontal控制器。该控制器周期性检查pod度量,计算满足HPA资源所配置的目标数值所需的副本数量,进而调整目标资源(如Deployment、ReplicaSet、ReplicationController、StatefulSet等)的replicas字段

自动伸缩的过程可以分为三个步骤:

  • 获取被伸缩资源对象所管理的所有pod度量。
  • 计算使度量数值到达(或接近)所指定目标数值所需的pod数量。
  • 更新被伸缩资源的replicas字段。

关于Autoscaler采集度量数据方式的改变

在Kubernetes 1.6版本之前,HPA直接从Heapster采集度量。在1.8版本中,如果用 --horizontal-pod-autoscaler-use-rest-clients=true 参数启动ControllerManager,Autoscaler就能通过聚合版的资源度量API拉取度量了。该行为从1.9版本开始将变为默认。

所以1.9版本后,无需再配置!

kubernetes完整攻略:https://www.kancloud.cn/chriswenwu/g_k8s/1006475

8、绑定IP报错

问题:

kube-scheduler[12792]: Error: unknown flag: --address

解决办法:

修改 --address=127.0.0.1  为 --bind-address=127.0.0.1 ,如下所示:

cat > kube-scheduler.conf << "EOF"
KUBE_SCHEDULER_OPTS=" \
--bind-address=127.0.0.1 \

9、kubelet启动失败(kubernetes v1.25.5)

问题1:

"command failed" err="failed to parse kubelet flag: unknown flag: --cni-conf-dir"

问题2:

"command failed" err="failed to parse kubelet flag: unknown flag: --cni-bin-dir"

问题3:

"command failed" err="failed to parse kubelet flag: unknown flag: --network-plugin-dir"

解决办法:

1、问题1和问题2

  • --cni-bin-dir string <警告: Alpha 特性>搜索CNI插件二进制文件的完整路径。默认值: /opt/cni/bin
  • --cni-conf-dir string <警告: Alpha 特性> 搜索CNI插件配置文件的完整路径。默认值:/etc/cni/net.d
  • 所以配置中直接删除即可。

2、问题3

  • 在 kubelet/pod 生命周期中为各种事件调用的网络插件的名称
  • 所以也可以无需配置,删除即可。

kubernetes 集群部署问题点统计的更多相关文章

  1. kubernetes集群部署

    鉴于Docker如此火爆,Google推出kubernetes管理docker集群,不少人估计会进行尝试.kubernetes得到了很多大公司的支持,kubernetes集群部署工具也集成了gce,c ...

  2. Kubernetes集群部署关键知识总结

    Kubernetes集群部署需要安装的组件东西很多,过程复杂,对服务器环境要求很苛刻,最好是能连外网的环境下安装,有些组件还需要连google服务器下载,这一点一般很难满足,因此最好是能提前下载好准备 ...

  3. 基于Kubernetes集群部署skyDNS服务

    目录贴:Kubernetes学习系列 在之前几篇文章的基础,(Centos7部署Kubernetes集群.基于kubernetes集群部署DashBoard.为Kubernetes集群部署本地镜像仓库 ...

  4. 为Kubernetes集群部署本地镜像仓库

    目录贴:Kubernetes学习系列 经过之前两篇文章:Centos7部署Kubernetes集群.基于kubernetes集群部署DashBoard,我们基本上已经能够在k8s的集群上部署一个应用了 ...

  5. Kubernetes 集群部署(2) -- Etcd 集群

    Kubenetes 集群部署规划: 192.168.137.81  Master 192.168.137.82  Node 192.168.137.83  Node 以下在 Master 节点操作. ...

  6. Gitlab CI 集成 Kubernetes 集群部署 Spring Boot 项目

    在上一篇博客中,我们成功将 Gitlab CI 部署到了 Docker 中去,成功创建了 Gitlab CI Pipline 来执行 CI/CD 任务.那么这篇文章我们更进一步,将它集成到 K8s 集 ...

  7. Docker学习-Kubernetes - 集群部署

    Docker学习 Docker学习-VMware Workstation 本地多台虚拟机互通,主机网络互通搭建 Docker学习-Docker搭建Consul集群 Docker学习-简单的私有Dock ...

  8. kubernetes 集群部署

    kubernetes 集群部署 环境JiaoJiao_Centos7-1(152.112) 192.168.152.112JiaoJiao_Centos7-2(152.113) 192.168.152 ...

  9. linux运维、架构之路-Kubernetes集群部署

    一.kubernetes介绍        Kubernetes简称K8s,它是一个全新的基于容器技术的分布式架构领先方案.Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部 ...

  10. Kubernetes集群部署DNS插件

    准备 kube-dns 相关镜像 准备 kube-dns 相关 yaml 文件 系统预定义的 RoleBinding 配置 kube-dns 相关服务 检查 kube-dns 功能 kube-dns ...

随机推荐

  1. 数据预处理时为什么要使用OneHot编码?

    什么是LabelEncoder(整数编码) 整数编码 将一列文本数据转化成数值,即列中的每一个特征都通过一个整数来表示.例如,[red, blue, red, yellow] = [0,2,0,1]. ...

  2. 图文并茂使用VUE+Quasar CLI开发和构建PWA,registerServiceWorker介绍

    看文档 文档地址:Preparation for PWA 1.将PWA模式添加到我们的Quasar项目中: npx quasar mode add pwa 我们看一下有哪些变化 向Quasar项目添加 ...

  3. Java线程池中的execute和submit

    一.概述 execute和submit都是线程池中执行任务的方法. execute是Executor接口中的方法 public interface Executor { void execute(Ru ...

  4. 阿里百秀后台管理项目笔记 ---- Day04

    来吧展示: step 1 : 实现评论管理数据渲染 利用 ajax 创建接口得到数据使用模板引擎渲染页面 1.1 引入文件 <script src="/static/assets/ve ...

  5. vivo 自研Jenkins资源调度系统设计与实践

    作者:vivo 互联网服务器团队- Wu Qinghua 本文从目前业界实现Jenkins的高可用的实现方案,分析各方案的优缺点,引入vivo目前使用的Jenkins高可用方案,以及目前Jenkins ...

  6. 安卓逆向 crmak的动态调试

    1.java代码分析 检测是否输入密码,输入了就进行对比 由此,我们需要进入SO进行动态调试了 2.SO调试 过程太复杂,凌晨才搞出来,就直接给答案了,有文件检测和端口检测 还有调试检测,都需要干掉

  7. JumpServer(v2.28.6) 堡垒机常见问题

    JumpServer 各组件查询日志方法 # 默认持久化目录 /data/jumpserver ls -al /data/jumpserver/core/logs ls -al /data/jumps ...

  8. c语言以及高级语言中的float到底是什么以及IEEE754

    对内存里float4字节的好奇 初学计算机都要学那个什么二进制十进制什么补码 反码那些玩意儿哈,由于最近要做一个单片机往另外一个单片机发数据的需求,直接c语言指针 然后float4字节传过去不就得了吗 ...

  9. Hbase学习二:Hbase数据特点和架构特点

    转载请注明出处: 1.Hbase数据特点 大:一个表可以有上亿行,上百万列. 面向列:面向列表(簇)的存储和权限控制,列(簇)独立检索. 稀疏:对于为空(NULL)的列,并不占用存储空间,因此,表可以 ...

  10. pip换源和制作虚拟环境操作步骤讲解

    目录 一.pip换源及虚拟环境 二.虚拟环境 一.pip换源及虚拟环境 我们Python的强大之处就是有非常多的牛逼的第三方模块,后面的程序员只需要下载第三方模块,然后站在大佬们的肩膀上开发,第三方开 ...