Giter Site home page Giter Site logo

cby-chen / kubernetes Goto Github PK

View Code? Open in Web Editor NEW
755.0 19.0 274.0 1.36 MB

kubernetes (k8s) 二进制高可用安装,Binary installation of kubernetes (k8s) --- 开源不易,帮忙点个star,谢谢了🌹

Home Page: https://www.oiox.cn

License: GNU General Public License v3.0

Shell 100.00%
binary k8s kubernetes calico centos coredns dashboard docker etcd etcd-cluster

kubernetes's Introduction

kubernetes (k8s) 二进制高可用安装

Kubernetes 开源不易,帮忙点个star,谢谢了🌹

GitHub访问不通畅可以访问国内GitEE https://gitee.com/cby-inc/Kubernetes

一、写在前面

打开文档,使用全文替换,全局替换主机IP即可。不懂就不要乱动别的参数,瞎改的出了问题,不要怪我文档的问题。

觉得文档不好,您可以自己写,您可以选择不看,此仓库用爱发电。

二、介绍

我使用IPV6的目的是在公网进行访问,所以我配置了IPV6静态地址。 若您没有IPV6环境,或者不想使用IPv6,不对主机进行配置IPv6地址即可。 不配置IPV6,不影响后续,不过集群依旧是支持IPv6的。为后期留有扩展可能性。 若不要IPv6 ,不给网卡配置IPv6即可,不要对IPv6相关配置删除或操作,否则会出问题。 如果本地没有IPv6,那么Calico需要使用IPv4的yaml配置文件。 后续尽可能第一时间更新新版本文档,更新后内容在GitHub。

不要删除 IPv6 相关配置!!!

不要删除 IPv6 相关配置!!!

不要删除 IPv6 相关配置!!!

三、当前文档版本

  • 1.21.x
  • 1.22.x
  • 1.23.x
  • 1.24.x
  • 1.25.x
  • 1.26.x
  • 1.27.x
  • 1.28.x
  • 1.29.x

大版本之间是通用的,比如使用 1.26.0 的文档可以安装 1.26.x 各种版本,只是安装过程中的下载新的包即可。

四、访问地址

手动项目地址:
https://github.com/cby-chen/Kubernetes

脚本项目地址(已停更):
https://github.com/cby-chen/Binary_installation_of_Kubernetes
https://github.com/cby-chen/kube_ansible

五、文档

最新版本文档

安装文档

1.29.x版本

1.28.x版本

1.27.x版本

1.26.x版本

1.25.x版本

1.24.x版本

1.23.x版本

1.22.x版本

1.21.x版本

三主俩从版本

其他文档

六、安装包

*注意:1.23.3 版本当时没想到会后续更新,所以当时命名不太规范。

七、旧版本地址

建议查看main版本中的文档。
https://github.com/cby-chen/Kubernetes/
若找对应版本文档中的安装包,可以在上方下载安装包,可以在在下方地址中查找。

八、常见异常

九、其他

生产环境推荐配置

Master节点:

  • 三个节点实现高可用(必须)
  • 节点数:0-100 8核16+
  • 节点数:100-250 8核32G+
  • 节点数:250-500 16核32G+

etcd节点:

  • 三个节点实现高可用(必须),有条件存储分区必须高性能SSD硬盘,没有SSD也要有高效独立磁盘
  • 节点数:0-50 2核8G+ 50G SSD存储
  • 节点数:50-250 4核16G+ 150G SSD存储
  • 节点数:250-1000 8核32G+ 250G SSD存储

Node节点:

  • 无特殊要求,主要是Docker数据分区、系统分区需要单独使用,不可以使用同一个磁盘,系统分区100G+、Docker数据分区200G+,有条件使用SSD硬盘,必须独立于系统盘

其他:

  • 集群规模不大可以将etcd和master放置于同一个宿主机,
  • 也就是每个master节点部署k8s组件和etcd服务,但是etcd的数据目录一定要独立,并且使用SSD,
  • 两者部署在一起需要相对增加宿主机的资源,个人建议生产环境把master节点的资源一次性给够,
  • 此处的费用不应该节省,可以直接使用16核32G或者64G的机器,之后集群扩容就无需扩容master节点的资源,减少风险。
  • 其中master节点和etcd节点的系统分区100G即可。

添加好友

添加群聊

  • 建议在 Kubernetes 查看文档,后续会陆续更新文档
  • 小陈网站:

https://www.oiox.cn/

https://www.oiox.cn/index.php/start-page.html

CSDN、GitHub、51CTO、知乎、开源**、思否、掘金、简书、华为云、阿里云、腾讯云、哔哩哔哩、今日头条、新浪微博、个人博客

全网可搜《小陈运维》

文章主要发布于微信公众号

Stargazers over time

Stargazers over time

kubernetes's People

Contributors

cby-chen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kubernetes's Issues

k8s1.29X 启动kubelet后查看集群的时候报错

k8s1.29部署的时候到了启动kubelet查看集群的时候报错,kubelet日志报错如下
Apr 5 13:56:24 k8s-master01 kubelet[12475]: E0405 13:56:24.591995 12475 eviction_manager.go:282] "Eviction manager: failed to get summary stats" err="failed to get node info: node "k8s-master01" not found"
Apr 5 13:56:24 k8s-master01 kubelet[12475]: E0405 13:56:24.842932 12475 controller.go:145] "Failed to ensure lease exists, will retry" err="leases.coordination.k8s.io "k8s-master01" is forbidden: User "system:anonymous" cannot get resource "leases" in API group "coordination.k8s.io" in the namespace "kube-node-lease"" interval="7s"
Apr 5 13:56:25 k8s-master01 kubelet[12475]: I0405 13:56:25.022053 12475 kubelet_node_status.go:73] "Attempting to register node" node="k8s-master01"

请大佬帮忙指导下
image

安装问题

按照你的文档1.24.1二进制安装到kubelet配置
[root@k8s-master01 ~]# kubectl get node
No resources found
[root@k8s-master01 ~]#
提示如上,为什么会No resources found?

关于动态ipv6

您好,请教下动态ipv6的事情,运营商给的ipv6是动态的,/64前缀,我需要怎么配置宿主机的ipv6,以达到能远程访问pod中的应用。目前使用kubeadm搭建了双栈集群,宿主机是dhcp获取,pod是fc00,service是fd00,搭建完后访问不到nodeport方式的ingress-nginx端口,提示拒绝连接
image

kube-proxy.kubeconfig

复制admin.kubeconfigkube-proxy.kubeconfig 会有安全问题吧,admin.kubeconfig文件权限比较大

证书生成相关文件再哪里?

二进制部署k8s 1.23.6 生成证书相关文件在哪里?而且感觉文档跟这做都整不出来,跟着文档来弄的,基础没那么好的。

大佬你好,我在参考tls-bootstrapping时有一点疑问,为什么bootstrap.secret.yaml中相关配置和官方文档里的不一样,是有什么特别的原因吗呢?

官方文档:https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet-tls-bootstrapping/
主要是 bootstrap.secret.yaml中的auth-extra-groups: system:bootstrappers:default-node-token中为什么要额外加这个呢。。。

以及随后的绑定中的角色名也不一样了:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: kubelet-bootstrap
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: system:node-bootstrapper #这个角色不是system:bootstrappers
subjects:
- apiGroup: rbac.authorization.k8s.io
  kind: Group
  name: system:bootstrappers:default-node-token #这里不是system:node-bootstrapper

kubectl get node只有主节点和node节点无kubectl的问题

v1.24.1-Ubuntu-binary-install-IPv6-IPv4-Three-Masters-Two-Slaves

5.1.7测试高可用

这一步我将主节点01重启机器后 通了

8.2.3启动kubelet
这里出现了两个问题
root@k8s-master01:/etc/kubernetes# kubectl get node
NAME STATUS ROLES AGE VERSION
k8s-master01 Ready 7m44s v1.24.1
这里只有一个 node
然后我去k8s-master02提示The connection to the server localhost:8080 was refused - did you specify the right host or port?
root@k8s-master02:~# kubectl get node
The connection to the server localhost:8080 was refused - did you specify the right host or port?

root@k8s-node01:~# kubectl get node
Command 'kubectl' not found, but can be installed with:
snap install kubectl

2.2.3将组件发送至其他k8s节点

for NODE in $Work; do scp /usr/local/bin/kube{let,-proxy} $NODE:/usr/local/bin/ ; done
这里没有将kubectl放到 node节点

8.2.1所有k8s节点创建相关目录

这一步为什么又让所有节点执行 kubelet

Arm 架构机器部署 k8s 集群

请问这篇文档部署适用于 arm 架构的机器嘛,之前我在部署的时候使用过一台 arm 机器,然后报错了。

centos8系统默认网卡是ens160,如果要修改eth比较麻烦,虚拟机应该只需要改uuid就行了吧

sed -i "s/UUID.*/UUID=uuidgen/" /etc/sysconfig/network-scripts/ifcfg-ens160
生成uuid,然后替换掉原来的就行了,我查看了要改成eth0,还要重启服务器,

当我们修改 /etc/sysconfig/network-scripts/目录下的 ifcfg-ens33文件名为 ifcfg-eth0
同时把文件中的 NAME属性 与DEVICE属性都修改成 eth0
重启网卡,发现并没有修改成功!!!
此时,需要去 /etc/defult 目录下,修改grub文件。
在GRUB_CMDLINE_LINUX原有的参数后面加上"net.ifnames=0 biosdevname=0"
保存退出后,执行命令:"grub2-mkconfig -o /boot/grub2/grub.cfg"
执行完毕后,重启系统即可修改成功。

NetworkPluginNotReady message:Network plugin returns error: cni plugin not initialized 无法创建pod

Sep 01 18:55:08 k8s-master01 kubelet[32686]: E0901 18:55:08.684457 32686 kubelet.go:2211] "Container runtime network not ready" networkReady="NetworkReady=false reason:NetworkPluginNotReady message:Network plugin returns error: cni plugin not initialized"
Sep 01 18:55:13 k8s-master01 kubelet[32686]: E0901 18:55:13.685468 32686 kubelet.go:2211] "Container runtime network not ready" networkReady="NetworkReady=false reason:NetworkPluginNotReady message:Network plugin returns error: cni plugin not initialized"

8.2.5 执行 kubectl get node 报 No resources found

执行
/usr/local/bin/kubelet
--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.kubeconfig
--kubeconfig=/etc/kubernetes/kubelet.kubeconfig
--config=/etc/kubernetes/kubelet-conf.yml
--container-runtime=remote
--runtime-request-timeout=15m
--container-runtime-endpoint=unix:///run/containerd/containerd.sock
--cgroup-driver=systemd
--node-labels=node.kubernetes.io/node=''
--feature-gates=IPv6DualStack=true
报错如下
E0730 17:54:11.127674 4416 summary_sys_containers.go:48] "Failed to get system container stats" err="failed to get cgroup stats for "/user.slice/user-0.slice/session-1.scope": failed to get container info for "/user.slice/user-0.slice/session-1.scope": unknown container "/user.slice/user-0.slice/session-1.scope"" containerName="/user.slice/user-0.slice/session-1.scope"
环境
centos7.9 1C2G

kubernetes1.24.1安装metric时出现的问题

我的k8s版本是1.24.1
大佬,我用了你的metric的yaml,但我是使用kubeadm安装的,在安装后,执行 top no显示
[root@master-1 ~]# kubectl top no NAME CPU(cores) CPU% MEMORY(bytes) MEMORY% master-2 436m 10% 2387Mi 41% master-3 <unknown> <unknown> <unknown> <unknown> node-1 <unknown> <unknown> <unknown> <unknown> node-2 <unknown> <unknown> <unknown> <unknown> master-1 <unknown> <unknown> <unknown> <unknown> [root@master-1 ~]#
在日志里面发现
│ craper.go:139] "Failed to scrape node" err="Get \"https://172.16.0.211:10250/stats/summary?only_cpu_and_memory=true\": context deadline exceeded" node="master-1" │ │ craper.go:139] "Failed to scrape node" err="Get \"https://172.16.0.213:10250/stats/summary?only_cpu_and_memory=true\": dial tcp 172.16.0.213:10250: i/o timeout" node="master-3" │ │ craper.go:139] "Failed to scrape node" err="Get \"https://172.16.0.214:10250/stats/summary?only_cpu_and_memory=true\": dial tcp 172.16.0.214:10250: i/o timeout" node="node-1" │ │ craper.go:139] "Failed to scrape node" err="Get \"https://172.16.0.215:10250/stats/summary?only_cpu_and_memory=true\": dial tcp 172.16.0.215:10250: i/o timeout" node="node-2" │ │ craper.go:139] "Failed to scrape node" err="Get \"https://172.16.0.213:10250/stats/summary?only_cpu_and_memory=true\": context deadline exceeded" node="master-3" │ │ craper.go:139] "Failed to scrape node" err="Get \"https://172.16.0.215:10250/stats/summary?only_cpu_and_memory=true\": context deadline exceeded" node="node-2" │ │ craper.go:139] "Failed to scrape node" err="Get \"https://172.16.0.211:10250/stats/summary?only_cpu_and_memory=true\": context deadline exceeded" node="master-1" │ │ craper.go:139] "Failed to scrape node" err="Get \"https://172.16.0.214:10250/stats/summary?only_cpu_and_memory=true\": context deadline exceeded" node="node-1" │ │ craper.go:139] "Failed to scrape node" err="Get \"https://172.16.0.214:10250/stats/summary?only_cpu_and_memory=true\": context deadline exceeded" node="node-1" │ │ craper.go:139] "Failed to scrape node" err="Get \"https://172.16.0.215:10250/stats/summary?only_cpu_and_memory=true\": context deadline exceeded" node="node-2" │ │ craper.go:139] "Failed to scrape node" err="Get \"https://172.16.0.213:10250/stats/summary?only_cpu_and_memory=true\": context deadline exceeded" node="master-3" │ │ craper.go:139] "Failed to scrape node" err="Get \"https://172.16.0.211:10250/stats/summary?only_cpu_and_memory=true\": context deadline exceeded" node="master-1" │ │ craper.go:139] "Failed to scrape node" err="Get \"https://172.16.0.213:10250/stats/summary?only_cpu_and_memory=true\": context deadline exceeded" node="master-3" │ │ craper.go:139] "Failed to scrape node" err="Get \"https://172.16.0.215:10250/stats/summary?only_cpu_and_memory=true\": context deadline exceeded" node="node-2" │ │ craper.go:139] "Failed to scrape node" err="Get \"https://172.16.0.214:10250/stats/summary?only_cpu_and_memory=true\": context deadline exceeded" node="node-1" │ │ craper.go:139] "Failed to scrape node" err="Get \"https://172.16.0.211:10250/stats/summary?only_cpu_and_memory=true\": context deadline exceeded" node="master-1"
麻烦问一下,这个是什么问题嘛

测试高可用Connection refused

v1.24.1-Ubuntu-binary-install-IPv6-IPv4-Three-Masters-Two-Slaves

5.1.7测试高可用

这一步我将主节点01重启机器后 通了

8.2.3启动kubelet
这里出现了两个问题
root@k8s-master01:/etc/kubernetes# kubectl get node
NAME STATUS ROLES AGE VERSION
k8s-master01 Ready 7m44s v1.24.1
这里只有一个 node
然后我去k8s-master02提示The connection to the server localhost:8080 was refused - did you specify the right host or port?
root@k8s-master02:~# kubectl get node
The connection to the server localhost:8080 was refused - did you specify the right host or port?

root@k8s-node01:~# kubectl get node
Command 'kubectl' not found, but can be installed with:
snap install kubectl

2.2.3将组件发送至其他k8s节点

for NODE in $Work; do scp /usr/local/bin/kube{let,-proxy} $NODE:/usr/local/bin/ ; done
这里没有将kubectl放到 node节点

8.2.1所有k8s节点创建相关目录

这一步为什么又让所有节点执行 kubelet

the cluster IP [IPv4]:10.96.0.1 for service kubernetes/default is not allocated; repairing

`E0831 15:09:51.692706 29299 controller.go:152] Unable to remove old endpoints from kubernetes service: StorageError: key not found, Code: 1, Key: /registry/masterleases/192.168.0.201, ResourceVersion: 0, AdditionalErrorMsg:
E0831 15:09:51.725003 29299 repair.go:240] the cluster IP [IPv4]:10.96.0.1 for service kubernetes/default is not allocated; repairing
E0831 15:09:51.732993 29299 status.go:71] apiserver received an error that is not an metav1.Status: rpctypes.EtcdError{code:0x5, desc:"etcdserver: requested lease not found"}: etcdserver: requested lease not found
E0831 15:09:51.733622 29299 event.go:264] Server rejected event '&v1.Event{TypeMeta:v1.TypeMeta{Kind:"", APIVersion:""}, ObjectMeta:v1.ObjectMeta{Name:"kubernetes.17105c571d68038c", GenerateName:"", Namespace:"default", SelfLink:"", UID:"", ResourceVersion:"", Generation:0, CreationTimestamp:v1.Time{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, DeletionTimestamp:(*v1.Time)(nil), DeletionGracePeriodSeconds:(*int64)(nil), Labels:map[string]string(nil), Annotations:map[string]string(nil), OwnerReferences:[]v1.OwnerReference(nil), Finalizers:[]string(nil), ClusterName:"", ManagedFields:[]v1.ManagedFieldsEntry(nil)}, InvolvedObject:v1.ObjectReference{Kind:"Service", Namespace:"default", Name:"kubernetes", UID:"b9bb6e28-02ce-4be8-9fb4-8053fbf428f4", APIVersion:"v1", ResourceVersion:"3404", FieldPath:""}, Reason:"ClusterIPNotAllocated", Message:"Cluster IP [IPv4]:10.96.0.1 is not allocated; repairing", Source:v1.EventSource{Component:"ipallocator-repair-controller", Host:""}, FirstTimestamp:v1.Time{Time:time.Time{wall:0xc0bbe02feb364d8c, ext:3117973040, loc:(*time.Location)(0x78a5340)}}, LastTimestamp:v1.Time{Time:time.Time{wall:0xc0bbe02feb364d8c, ext:3117973040, loc:(*time.Location)(0x78a5340)}}, Count:1, Type:"Warning", EventTime:v1.MicroTime{Time:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}}, Series:(*v1.EventSeries)(nil), Action:"", Related:(*v1.ObjectReference)(nil), ReportingController:"", ReportingInstance:""}': 'etcdserver: requested lease not found' (will not retry!)
E0831 15:09:51.742897 29299 repair.go:301] the cluster IP 10.96.0.1 may have leaked: flagging for later clean up
E0831 15:09:52.081319 29299 repair.go:240] the cluster IP [IPv4]:10.96.0.1 for service kubernetes/default is not allocated; repairing
F0831 15:09:52.082530 29299 controller.go:161] Unable to perform initial IP allocation check: Operation cannot be fulfilled on serviceipallocations "": the provided resource version does not match
goroutine 3304 [running]:
日志:
222
查看IP:
1111

您好,启动apiserver以后,出现了active(running),但是很快会重启,日志中显示cluster IP 无法被分配,我尝试修改掉之前的cluster IP(10.96.0.1),但是无法修改成功,我是把证书重新生成,hosts文件中改成了10.0.0.1 但是,启动以后
依然是10.96.0.1,请问这个问题应该怎么解决?
十分感谢!!

请小陈同学老大上线指导安装K8S,在线等

我用的是 1.28.3 版本文档, 文档中我用的 IP 做了全局替换, 全局网卡名称做了替换, 我用的是 VMwarm, 1.2 配置 IP 哪里没有改, 配置 yum 源哪里没有改, 我这个系统原先做成了阿里云的 yum, 1.5 必备工具哪里没有全改, 只下载了一些必要的工具像 ipvsadm, vim, haproxy , 因为有些工具不需要, 而且我这个系统不装哪些工具用 kubeadm 可以安装上集群, 其他的 SElinux 和 ulimit 哪些都改了, 包括后续的操作步骤和内容都是原封复制的, K8S 的所有组件都启动成功了除了 kubelet 其他都没有报错, 五个节点的 kubelet 报了四种不一样的错
Snipaste_2023-11-27_20-16-25
Snipaste_2023-11-27_20-16-36
Snipaste_2023-11-27_20-16-44
Snipaste_2023-11-27_20-16-53
Snipaste_2023-11-27_20-17-02

8.2.4 kubectl get node not resources found

这是我搜索到的安装步骤最全面的文档,所以打算以此为起点,学习安装环境。

#kubectl get node
not resources fournd! 没有一个node出现。正常情况下,至少出现k8s-node01/03 not ready的状态。

但是仔细比对过。kubectl get cs 是正常的。
[root@k8s-master01 ~]# kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME STATUS MESSAGE ERROR
scheduler Healthy ok
controller-manager Healthy ok
etcd-1 Healthy {"health":"true","reason":""}
etcd-0 Healthy {"health":"true","reason":""}
这篇文章是否直到”8.2.4“的安装前的步骤,有漏掉的?下面的两个包,下载后,在8.2.4步骤前,没有解压的文档
6.cni插件下载
wget https://github.com/containernetworking/plugins/releases/download/v1.0.1/cni-plugins-linux-amd64-v1.0.1.tgz
7.crictl客户端二进制下载
wget https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.23.0/crictl-v1.23.0-linux-amd64.tar.gz
安装步骤有一个现象:

yum install containerd -y

已加载插件:fastestmirror
.............................................
软件包 containerd-1.2.14-1.el7.x86_64 被已安装的 containerd.io-1.6.4-3.1.el7.x86_64 取代
无须任何处理
------------------------------是否前面安装文档中没有指定docker-ce的版本,导致最新的docker-ce依赖被安装?

下面的截取的一个bug:
#journalctl -xue kubelet ....
5月 10 23:56:22 k8s-master01 kubelet[8608]: E0510 23:56:22.153703 8608 kubelet.go:2461] "Error getting node" err="node "k8s-master01" not found"
5月 10 23:56:22 k8s-master01 kubelet[8608]: E0510 23:56:22.254197 8608 kubelet.go:2461] "Error getting node" err="node "k8s-master01" not found"
5月 10 23:56:22 k8s-master01 kubelet[8608]: E0510 23:56:22.354494 8608 kubelet.go:2461] "Error getting node" err="node "k8s-master01" not found"
5月 10 23:56:22 k8s-master01 kubelet[8608]: E0510 23:56:22.454806 8608 kubelet.go:2461] "Error getting node" err="node "k8s-master01" not found"
5月 10 23:56:22 k8s-master01 kubelet[8608]: E0510 23:56:22.555280 8608 kubelet.go:2461] "Error getting node" err="node "k8s-master01" not found"
5月 10 23:56:22 k8s-master01 kubelet[8608]: E0510 23:56:22.655561 8608 kubelet.go:2461] "Error getting node" err="node "k8s-master01" not found"
5月 10 23:56:22 k8s-master01 kubelet[8608]: E0510 23:56:22.755981 8608 kubelet.go:2461] "Error getting node" err="node "k8s-master01" not found"
5月 10 23:56:22 k8s-master01 kubelet[8608]: E0510 23:56:22.856384 8608 kubelet.go:2461] "Error getting node" err="node "k8s-master01" not found"
5月 10 23:56:22 k8s-master01 kubelet[8608]: E0510 23:56:22.956755 8608 kubelet.go:2461] "Error getting node" err="node "k8s-master01" not found"
5月 10 23:56:23 k8s-master01 kubelet[8608]: E0510 23:56:23.058314 8608 kubelet.go:2461] "Error getting node" err="node "k8s-master01" not found"
5月 10 23:56:23 k8s-master01 kubelet[8608]: E0510 23:56:23.160477 8608 kubelet.go:2461] "Error getting node" err="node "k8s-master01" not found"
5月 10 23:56:23 k8s-master01 kubelet[8608]: E0510 23:56:23.260945 8608 kubelet.go:2461] "Error getting node" err="node "k8s-master01" not found"
5月 10 23:56:23 k8s-master01 kubelet[8608]: E0510 23:56:23.361353 8608 kubelet.go:2461] "Error getting node" err="node "k8s-master01" not found"
5月 10 23:56:23 k8s-master01 kubelet[8608]: E0510 23:56:23.461753 8608 kubelet.go:2461] "Error getting node" err="node "k8s-master01" not found"
5月 10 23:56:23 k8s-master01 kubelet[8608]: E0510 23:56:23.562193 8608 kubelet.go:2461] "Error getting node" err="node "k8s-master01" not found"
5月 10 23:56:23 k8s-master01 kubelet[8608]: E0510 23:56:23.664359 8608 kubelet.go:2461] "Error getting node" err="node "k8s-master01" not found"
5月 10 23:56:23 k8s-master01 kubelet[8608]: E0510 23:56:23.764898 8608 kubelet.go:2461] "Error getting node" err="node "k8s-master01" not found"
5月 10 23:56:23 k8s-master01 kubelet[8608]: E0510 23:56:23.865259 8608 kubelet.go:2461] "Error getting node" err="node "k8s-master01" not found"
5月 10 23:56:23 k8s-master01 kubelet[8608]: E0510 23:56:23.909965 8608 kubelet.go:2386] "Container runtime network not ready" networkReady="NetworkReady=false reason:NetworkPluginNotReady
5月 10 23:56:23 k8s-master01 kubelet[8608]: E0510 23:56:23.966519 8608 kubelet.go:2461] "Error getting node" err="node "k8s-master01" not found"
5月 10 23:56:24 k8s-master01 kubelet[8608]: E0510 23:56:24.066883 8608 kubelet.go:2461] "Error getting node" err="node "k8s-master01" not found"
5月 10 23:56:24 k8s-master01 kubelet[8608]: E0510 23:56:24.167430 8608 kubelet.go:2461] "Error getting node" err="node "k8s-master01" not found"
5月 10 23:56:24 k8s-master01 kubelet[8608]: E0510 23:56:24.267816 8608 kubelet.go:2461] "Error getting node" err="node "k8s-master01" not found"
5月 10 23:56:24 k8s-master01 kubelet[8608]: E0510 23:56:24.368271 8608 kubelet.go:2461] "Error getting node" err="node "k8s-master01" not found"
5月 10 23:56:24 k8s-master01 kubelet[8608]: E0510 23:56:24.468608 8608 kubelet.go:2461] "Error getting node" err="node "k8s-master01" not found"
5月 10 23:56:24 k8s-master01 kubelet[8608]: E0510 23:56:24.569051 8608 kubelet.go:2461] "Error getting node" err="node "k8s-master01" not found"
5月 10 23:56:24 k8s-master01 kubelet[8608]: E0510 2

---==-
[root@k8s-master01 .kube]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.81 k8s-master01
192.168.1.82 k8s-master02
192.168.1.83 k8s-master03
192.168.1.84 k8s-node01
192.168.1.85 k8s-node02
192.168.1.86 k8s-node03
192.168.1.87 k8s-node04
192.168.1.88 k8s-node05
192.168.1.80 lb01
192.168.1.90 lb02

lb01,lb02也可以漂移

关于 Pod 获取 Kubernetes API 问题

在部署 calico 和 coredns 时 Pod 都会请求 api server,但它默认请求 service 的地址如:https://198.18.0.1:443/version,calico 通过设置环境变量解决了,coredns 设置 api server 后报证书错误,在部署文档中未见相关说明。

  1. Pod 中的 api server 地址默认再哪里存储?
  2. coredns 如何忽略证书错误或配置 CA?

EDIT:
理解有问题刚搞明白,请求 https://198.18.0.1:443/version 是正常的,但是为什么这个 service 无法访问不知道怎么排查。

Binary_installation_of_Kubernetes.sh 脚本版本,和手工版本的错误是一样的。

我是k8s的初学者。一直想完整的做一次二进制安装,以便多一点了解。但是失败了。
cby-chen老师的文档很全,花费了很多的时间,水平很高!
但是,我耗费了很多的时间去理解,去比对自己哪个地方没有正确的输入。
今天,又花费了一天,下载了脚本版;Binary_installation_of_kubernetes.sh.
脚本中, 由于要reboot。所以,我手工把set_local, init_all手工完成了。剩下的自动完成,比较快。但是和手工版本步骤的结果都是一样的。kubelet之后的安装是有问题的。我的环境是centos7.9

menu
#set_local 手工完成
#init_all 手工完成
Containerd
init_local
init_etcd
init_ha_keep
init_k8s_master
init_k8s_all
最终的结果,和对应的‘手工版本的文档’的现象是一样的。
请cby-chen百忙中,再审阅一下!

kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME STATUS MESSAGE ERROR
controller-manager Healthy ok
etcd-0 Healthy {"health":"true","reason":""}
etcd-1 Healthy {"health":"true","reason":""}
etcd-2 Healthy {"health":"true","reason":""}
scheduler Healthy ok
[root@k8s-master01 ~]# kubectl get nodes
No resources found

bootstrap.secret.yaml文件路径

7.2 篇章中

切记执行,别忘记!!!
kubectl create -f bootstrap.secret.yaml


以上这个yaml文件在哪里呢,哪位大佬知道的

kubectl get nodes 返回No resources found

使用命令 kubectl get cs 和 kubectl gt csr 返回正常,而到了 kubectl get nodes 的时候,返回 No resources found. 检查kubelet的状态,提示: "Unable to register node with API server" err="nodes is forbidden: User "system:anonymous" cannot create resource "nodes" in API group "" at the cluster scope" node="master2"
kube-controller-manager提示: No authentication-kubeconfig provided in order to lookup client-ca-file in configmap/extension-apiserver-authentication in kube-system, so client certificate authentication won't work.

2.1.4创建Containerd的配置文件-更换国内源

参考链接: https://blog.51cto.com/lajifeiwomoshu/5428345

摘录:
以下所有操作都是containerd 1.6.x版本做的操作。

1、指定配置文件目录

[plugins."io.containerd.grpc.v1.cri".registry]
      config_path = "/etc/containerd/certs.d/"

2、根据镜像仓库创建文件

cd /etc/containerd/certs.d/

3、配置加速

mkdir -p /etc/containerd/certs.d/docker.io
cat >/etc/containerd/certs.d/docker.io/hosts.toml <<EOF
server = "https://docker.io"
[host."https://g0v522ip.mirror.aliyuncs.com"]
  capabilities = ["pull","resolve"]
[host."https://docker.mirrors.ustc.edu.cn"]
  capabilities = ["pull","resolve"]
[host."https://registry-1.docker.io"]
  capabilities = ["pull","resolve","push"]
EOF

注意的是:

  • 如果hosts.toml文件中的capabilities中不加resolve的话,无法加速镜像
  • 要配保底的加速站点,否则可能会导致下载失败

©著作权归作者所有:来自51CTO博客作者lajifeiwomoshu的原创作品,请联系作者获取转载授权,否则将追究法律责任
containerd的那些事
https://blog.51cto.com/lajifeiwomoshu/5428345

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.