首页 文章 精选 留言 我的

精选列表

搜索[k8s],共4074篇文章
优秀的个人博客,低调大师

K8S存储卷常见问题 - NAS

注意:如果NAS挂载不上,可以手动在节点上执行mount 挂载,如果手动挂载也失败,则需要检查网络连通性等问题,可以联系NAS团队解决; 1. Pod挂载、卸载失败,日志中报Orphaned pod; 该问题为kubelet删除pod的bug,相关解决方法:链接 2. NAS挂载时间太长 如果NAS卷包含的文件量很大,且在挂载模板中配置了chmod参数,可能导致挂载时间过长的问题;可以去掉chmod参数; 3. NAS挂载失败,出现timeouot错误; 检查nas挂载点和集群是否在同一个vpc内,否则无法挂载;

优秀的个人博客,低调大师

如何给K8S集群添加STS权限?

1. 登陆集群列表,找到要配置的集群: 2. 点击查看节点列表; 3. 点击某个master节点的实例ID,可以查看对应的RAM角色名: 同理,点击worker的实例ID,可以查看他的RAM角色, 4.到RAM控制台编辑RAM信息: 5.点击相应角色的管理按钮,选择“角色授权策略”– “查看权限“ 角色对应的权限必须有上述权限才能挂载云盘,如果没有上面的权限请点击“修改授权策略“来更新RAM; RAM修改的详细信息可以参考: https://help.aliyun.com/document_detail/28652.html?spm=a2c4g.11186623.6.564.UJIteo 另外:新添加的节点现在没有默认添加RAM角色,可以在ECS控制台,对应的节点下来框中编辑RAM,把集群所对应的worker RA

优秀的个人博客,低调大师

FAQ宝典之Rancher Server、K8s、Docker

Rancher FAQ宝典系列第二弹,Rancher Agent、Kubernetes、Docker相关的常见问题,本文一网打尽。 Rancher Agent常见问题 1、Rancher Agent无法启动的原因是什么? 1.1、添加 --NAME RANCHER-AGENT(老版本) 如果你从UI中编辑docker run .... rancher/agent...命令并添加--name rancher-agent选项,那么Rancher Agent将启动失败。Rancher Agent在初始运行时会启动3个不同容器,一个是运行状态的,另外两个是停止状态的。Rancher Agent要成功连接到Rancher Server必须要有两个名字分别为rancher-agent和rancher-agent-state的容器,第三个容器是docker自动分配的名称,这个容器会被移除。 1.2、使用一个克隆的虚拟机 如果你使用了克隆其他Agent主机的虚拟机并尝试注册它,它将不能工作。在rancher-agent容器的日志中会产生ERROR: Please re-register this agent.字样的日志。Rancher主机的唯一ID保存在/var/lib/rancher/state,因为新添加和虚拟机和被克隆的主机有相同的唯一ID,所以导致无法注册成功。 解决方法是在克隆的VM上运行以下命令: rm -rf /var/lib/rancher/state; docker rm -fv rancher-agent; docker rm -fv rancher-agent-state 完成后可重新注册。 2、我在哪里可以找到Rancher agent容器的详细日志? 从v1.6.0起,在rancher-agent容器上运行docker logs将提供agent相关的所有日志。 3、主机是如何自动探测IP的?我该怎么去修改主机IP?如果主机IP改变了(因为重启),我该怎么办? 当Agent连接Rancher Server时,它会自动检测Agent的IP。有时,自动探测的IP不是你想要使用的IP,或者选择了docker网桥的IP,如. 172.17.x.x。或者,你有一个已经注册的主机,当主机重启后获得了一个新的IP, 这个IP将会和Rancher UI中的主机IP不匹配。你可以重新配置“CATTLE_AGENT_IP”设置,并将主机IP设置为你想要的。当主机IP地址不正确时,容器将无法访问管理网络。要使主机和所有容器进入管理网络,只需编辑添加自定义主机的命令行,将新的IP指定为环境变量“CATTLE_AGENT_IP”。在主机上运行编辑后的命令。不要停止或删除主机上的现有的Rancher Agent容器! sudo docker run -d -e CATTLE_AGENT_IP=<NEW_HOST_IP> --privileged \ -v /var/run/docker.sock:/var/run/docker.sock \ rancher/agent:v0.8.2 http://SERVER_IP:8080/v1/scripts/xxxx 4、错误提示如下:INFO: Attempting to connect to:http://192.168.xx.xx:8080/v1ERROR:http://192.168.xx.xx:8080/v1is not accessible (Failed to connect to 192.168.xx.xx port 8080: No route to host) 这个问题主要有以下几种情况: RANCHER SERVER服务器防火墙没有开通8080端口; 云平台安全组没有放行8080端口; Agent 服务器没有开启IP转发规则 [为什么我的容器无法连接到网络?]:{site.baseurl}}/rancher/faqs/ troubleshooting/1为什么我的容器无法连接到网络; =1为开启,=0为关闭 /etc/sysctl.conf net.ipv4.ip_forward=1 net.ipv6.conf.all.forwarding=1 主机hosts(/etc/hosts)文件没有配置; 5、rancher下创建的服务容器,docker inspect 查看到Entrypoint和CMD后面有/.r/r字符,这个起什么作用? ./r 是基于weave wait编译出来的。CNI网络下会添加/.r/r 这个参数,目的是:当容器启动时,其实网络设备还没设置好,这时候需要container 等待,不能启动真实业务,否则会失败。 6、添加hosts后 server上没有列出,agent报Host not registered yet. Sleeping 1 second and trying again.” Attempt=0 reportedUuid=752031dd-8c7e-4666-5f93-020d7f4da5d3 检查主机名和hosts配置, hosts中需要配置: 127.0.0.1 localhost hostip hostname Kubernetes常见问题 1、部署Kubernetes时候出现以下有关cgroup的问题 Failed to get system container stats for "/system.slice/kubelet.service": failed to get cgroup stats for "/system.slice/kubelet.service": failed to get container info for "/system.slice/kubelet.service": unknown container "/system.slice/kubelet.service" Expected state running but got error: Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "process_linux.go:258: applying cgroup configuration for process caused \"mountpoint for devices not found\"" 以上问题为Kubernetes版本与docker版本不兼容导致cgroup功能失效 2、Kubernetes err: [nodes "iZ2ze3tphuqvc7o5nj38t8Z" not found]” Rancher-Kubernetes中,节点之间通信需要通过hostname,如果没有内部DNS服务器,那么需要为每台节点配置hosts文件。 配置示例:假如某个节点主机名为node1,ip 地址为192.168.1.100 cat /etc/hosts<<EOF 127.0.0.1 localhost 192.168.1.100 node1 EOF 3、如何验证你的主机注册地址设置是否正确? 如果你正面临Rancher Agent和Rancher Server的连接问题,请检查主机设置。当你第一次尝试在UI中添加主机时,你需要设置主机注册的URL,该URL用于建立从主机到Rancher Server的连接。这个URL必须可以从你的主机访问到。为了验证它,你需要登录到主机并执行curl命令: curl -i <Host Registration URL you set in UI>/v1 你应该得到一个json响应。如果开启了认证,响应代码应为401。如果认证未打开,则响应代码应为200。 注意:普通的HTTP请求和websocket连接(ws://)都将被使用。如果此URL指向代理或负载平衡器,请确保它们可以支持Websocket连接。 4、Kuberbetes UI显示Service unavailable 很多同学正常部署Kuberbetes环境后无法进入Dashboard,基础设施应用栈均无报错。但通过查看 基础架构|容器 发现并没有Dashboard相关的容器.因为Kuberbetes在拉起相关服务(如Dashboard、内置DNS等服务)是通过应用商店里面的YML文件来定义的,YML文件中定义了相关的镜像名和版本。 而Rancher部署的Kuberbetes应用栈属于Kuberbetes的基础框架,相关的镜像通过dockerhub/rancher 仓库拉取。默认Rancher-catalog Kuberbetes YML中服务镜像都是从谷歌仓库拉取,在没有科学上网的情况下,国内环境几乎无法成功拉取镜像。 为了解决这一问题,优化中国区用户的使用体验,在RANCHER v1.6.11之前的版本,我们修改了http://git.oschina.net/rancher/rancher-catalog 仓库中的YML文件,将相关的镜像也同步到国内仓库,通过替换默认商店地址来实现加速部署;在RANCHER v1.6.11及之后的版本,不用替换商店catalog地址,直接通过在模板中定义仓库地址和命名空间就行实现加速;在后期的版本种,Kuberbetes需要的镜像都会同步到docker hub中。 安装方法见:《原生加速中国区Kubernetes安装》,《Rancher-k8s加速安装文档》 Docker常见问题 1、镜像下载慢,如何提高下载速度? touch /etc/docker/daemon.json cat >> /etc/docker/daemon.json <<EOF { "insecure-registries": ["0.0.0.0/0"], "registry-mirrors": ["https://7bezldxe.mirror.aliyuncs.com"] } EOF systemctl daemon-reload && systemctl restart docker PS:0.0.0.0/0 表示信任所有非https地址的镜像仓库,对于内网测试,这样配置很方便。对于线上生产环境,为了安全请不要这样配置 2、如何配置Docker后端存储驱动? 以overlay为例 touch /etc/docker/daemon.json cat >> /etc/docker/daemon.json <<EOF { "storage-driver": "overlay" } EOF systemctl daemon-reload && systemctl restart docker 3、docker info 出现 WARNING WARNING: No swap limit support WARNING: No kernel memory limit support WARNING: No oom kill disable support 编辑/etc/default/grub文件,并设置:GRUB_CMDLINE_LINUX="cgroup_enable=memory swapaccount=1" 接着 SUSE grub2-mkconfig -o /boot/grub2/grub.cfg Cetos Update grub Ubuntu update-grub 4、我怎么通过rancher让docker里的程序代理上网呢? 启动容器的时候,加一下 -e http_proxy= -e https_proxy= 5、Docker错误:无法删除文件系统 一些基于容器的实用程序(例如Google cAdvisor)会将Docker系统目录(如/ var / lib / docker /)挂载到容器中。例如,cadvisor的文档指示您运行cadvisor容器,如下所示: $ sudo docker run \ --volume=/:/rootfs:ro \ --volume=/var/run:/var/run:rw \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:ro \ --publish=8080:8080 \ --detach=true \ --name=cadvisor \ google/cadvisor:latest 当挂载/var/lib/docker/时,这会有效地将所有其他正在运行的容器的所有资源作为文件系统安装在挂载/var/lib/docker/的容器中。当您尝试删除这些容器中的任何一个时,删除尝试可能会失败,出现如下所示的错误: Error: Unable to remove filesystem for 74bef250361c7817bee19349c93139621b272bc8f654ae112dd4eb9652af9515: remove /var/lib/docker/containers/74bef250361c7817bee19349c93139621b272bc8f654ae112dd4eb9652af9515/shm: Device or resource busy 如果将/var/lib/docker/在/var/lib/docker/中的文件系统句柄上使用statfsor或fstatfs并且不关闭它们的容器,就会发生此问题。 通常,我们会以这种方式建议禁止挂载/var/lib/docker。然而,cAdvisor的核心功能需要这个绑定挂载。 如果您不确定是哪个进程导致错误中提到的路径繁忙并阻止它被删除,则可以使用lsof命令查找其进程。例如,对于上面的错误: sudo lsof /var/lib/docker/containers/74bef250361c7817bee19349c93139621b272bc8f65 本文转自 RancherLabs 51CTO博客,原文链接:http://blog.51cto.com/12462495/2050097

优秀的个人博客,低调大师

自己编译生成k8s的rpm包

我指的是以下几个安装包: -rw-r--r--. 1 root root 8976134 Jul 13 10:19 kubeadm-1.7.0-0.x86_64.rpm-rw-r--r--. 1 root root 9362110 Jul 13 10:19 kubectl-1.7.0-0.x86_64.rpm-rw-r--r--. 1 root root 17238982 Jul 13 10:19 kubelet-1.7.0-0.x86_64.rpm-rw-r--r--. 1 root root 7800450 Jul 13 10:19 kubernetes-cni-0.5.1-0.x86_64.rpm =============================== 参考说法: 官方的文档页面更新并不及时,同时他的 yum 源更新也很慢,再者…那他妈可是 Google 的服务器,能特么连上吗?以前总是在国外服务器使用yumdownloader下载,然后scp到本地,虽然能解决问题,但是蛋碎一地…最后找到了源头,如下 Kubernetes 编译的各种发行版安装包来源于 Github 上的另一个叫 release 的项目,地址点这里,把这个项目clone下来,由于本人是CentOS用户,所以进入 rpm 目录,在安装好 docker 的机器上执行那个docker-build.sh脚本即可编译 rpm 包,最后会生成到当前目录的output目录下,截图如下 https://github.com/kubernetes/release ==================================================== 这样,用kubeadm安装之前,rpm就可以先安装好啦。多,快,好,省! 有一个地方注意,默认会自动编译所有平台的,如果只要amd-x64,可以更改一下entry.sh文件,把其它平台去掉。加快时间。 当然,前提是要准备好fedora:24这个docker镜像文件哟。 #!/bin/sh # Entrypoint for the build container to create the rpms and yum repodata: # Usage: ./entry.sh GOARCH/RPMARCH,GOARCH/RPMARCH,.... set -e declare -a ARCHS if [ $# -gt 0 ]; then IFS=','; ARCHS=($1); unset IFS; else #GOARCH/RPMARCH ARCHS=( amd64/x86_64 arm/armhfp arm64/aarch64 ppc64le/ppc64le s390x/s390x ) fi for ARCH in ${ARCHS[@]}; do IFS=/ read GOARCH RPMARCH<<< ${ARCH}; unset IFS; SRC_PATH="/root/rpmbuild/SOURCES/${RPMARCH}" mkdir -p ${SRC_PATH} cp -r /root/rpmbuild/SPECS/* ${SRC_PATH} echo "Building RPM's for ${GOARCH}....." sed -i "s/\%global ARCH.*/\%global ARCH ${GOARCH}/" ${SRC_PATH}/kubelet.spec # Download sources if not already available cd ${SRC_PATH} && spectool -gf kubelet.spec /usr/bin/rpmbuild --target ${RPMARCH} --define "_sourcedir ${SRC_PATH}" -bb ${SRC_PATH}/kubelet.spec mkdir -p /root/rpmbuild/RPMS/${RPMARCH} createrepo -o /root/rpmbuild/RPMS/${RPMARCH}/ /root/rpmbuild/RPMS/${RPMARCH} done

优秀的个人博客,低调大师

KubeSphere 3.4.0 发布:支持 K8s v1.26

2023 年 07 月 26 日,KubeSphere 开源社区激动地向大家宣布,KubeSphere 3.4.0 正式发布! 让我们先简单回顾下之前三个大版本的主要变化: KubeSphere 3.1.0 新增了“边缘计算”、“计量计费” 等功能,将 Kubernetes 从云端扩展至边缘; KubeSphere 3.2.0 新增了对 “GPU 资源调度管理” 与 GPU 使用监控的支持,进一步增强了在云原生 AI 场景的使用体验; KubeSphere 3.3.0 新增了基于 GitOps 的持续部署方案,进一步优化了 DevOps 的使用体验。 今天,KubeSphere 3.4.0 已正式上线,该版本带来了值得大家关注的新功能以及增强:扩大对 Kubernetes 的支持范围,最新稳定性支持 1.26;重构告警策略架构,解耦为告警规则与规则组;提升集群别名展示权重,减少原集群名称不可修改导致的管理问题;升级 KubeEdge 组件到 v1.13 等。同时,还进行了多项修复、优化和增强,更进一步完善交互设计,并全面提升了用户体验。 在此,十分感谢该版本的所有参与者和贡献者,文末我们将列出各位贡献者的 ID,以表谢意! 主要更新 优化告警配置 KubeSphere 3.4.0 优化告警配置,添加了不同范围的告警规则组: 原单个告警策略拆分为多个规则组,通过规则组配置告警最小执行单元 支持内置告警规则编辑、禁用与重置 提升集群别名展示权重 运维人员往往需要通过定义集群名称,来对不同定位、不同地理位置的集群进行管理。在之前的版本中,集群仅支持被纳管时进行名称定义,这无疑给运维人员带来了比较大的操作困扰。 针对这个问题,KubeSphere 3.4.0 做出了相应的改动,提升了集群别名展示的权重,实现集群别名与名称同级别管理,帮助用户通过别名即可完成所有原来对名称的操作,也可通过对别名修改实现集群的灵活管理。 支持设置默认镜像仓库 在私有环境下需要将默认 dockerhub 统一替换成私有仓库,在之前的版本中,不支持指定默认仓库,只能进行手动选择。如果存在多个私有仓库,用户在操作时容易忽略导致操作错误。 在 KubeSphere 3.4.0 中,我们支持了设置默认的镜像仓库,让用户操作更加简单方便。 其他优化和增强 除上述几个主要功能外,KubeSphere 3.4.0 还有很多优化和增强: 支持 Kubernetes v1.26 升级 KubeEdge 组件到 v1.13 默认使用 OpenSearch v2.6.0 作为内部日志存储,不再默认将 Elasticsearch 作为内部日志存储 支持 pod grace period 配置 将 Notification Manager 版本升级到 v2.3.0 将 go 版本升级到 v1.19 优化多分支流水线的用户体验 修复 helm repo 分页查询错误 修复网关升级验证错误 修复集群网关日志和资源状态显示异常 更多更新详情请查看 release note。 安装和升级 KubeSphere 已将 v3.4.0 所有镜像在国内镜像仓库进行了同步与备份,国内用户下载镜像的安装体验会更加友好。 各位社区小伙伴在安装使用后,如果发现有任何 bug,欢迎提交 Issue。 致谢 以下是该版本中做出贡献的贡献者,感谢大家! leoendless yazhouio Bettygogo2021 weili520 harrisonliu5 junotx smartcat999 wansir imjoey sekfung renyunkang Fritzmomoto snowgo hongzhouzi chuan-you zhou1203 iawia002 sologgfun testwill LQBing littlejiancc wenchajun 社区在社区双周报中会为新的贡献者发放证书,也会在论坛证书墙中及时更新。如有遗漏,请联系我们补发。

优秀的个人博客,低调大师

KEDA 2.11 发布,基于 K8s 的扩展组件

KEDA 是一个基于 Kubernetes 的事件驱动自动扩展组件。它为运行在 Kubernetes 中的任何容器提供事件驱动的扩展。 以下是 KEDA 2.11 的一些亮点: 新的 Solr Scaler 暂停 ScaledJobs 自动缩放的功能 改进和扩展了 Prometheus Metrics 如果有多个带 CPU 和内存扩展器的扩展器,能够将其扩展为零 许多扩展器和核心部分的改进 以下是该版本的新弃用内容: Azure Data Explorer: 弃用了 metadata.clientSecret 更多详情可查看:https://github.com/kedacore/keda/releases/tag/v2.11.0

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册