cnskylee
有一天我远行了,当你看到这个博客,希望你能知道这个世界有一个“我”曾经来过……
展开
-
【Kubernetes】使用Kubeshark监控K8s集群的API流量
下载完成后,我们将文件移动到 /usr/local/bin 目录下,并将 /usr/local/bin 添加到系统的环境变量中即可。Kubeshark 是一款针对 Kubernetes 的 API 流量分析器,提供对 Kubernetes 内部网络的实时协议级可见性,捕获和监控进出容器、Pod、节点和集群的所有流量和有效负载。Kubeshark 提供了一个即时的、身份感知的服务地图,其中包含实时性能 KPI,可用于将您的分析重点放在集群的特定部分。原创 2023-06-29 16:13:21 · 1603 阅读 · 0 评论 -
【Kubernetes】calico与K8s版本兼容性报错解决
联网查询,很多博客都说该报错就是因为calico与K8s版本不兼容导致。于是删除calico-1.20.0相关组件,并使用calico-1.20.2版本测试,发现资源创建成功。今晚使用Kubernetes-1.20.15版本搭建K8s集群的时候,使用calico 1.20.0作为网络组件,但是在创建calico相关pod的时候,出现了下面的报错。查询calico官网,1.20.0版本是兼容K8s 1.20.x版本的,虽然有上面的报错,但是K8s集群的节点和pod运行都是成功的。原创 2023-02-25 19:53:40 · 4559 阅读 · 0 评论 -
【kubernetes】使用crictl对k8s节点进行调试
备注:由于我本地虚拟机使用的K8s版本为1.24.10,因此使用外挂cri-dockerd实现k8s与docker之间的接口和操作。crictl 是 CRI 兼容的容器运行时命令行接口,可以使用它来检查和调试 Kubernetes 节点上的容器运行时和应用程序。下载后上传到K8s集群的admin节点服务器上,解压,配置环境变量(增加/usr/local/bin),修改配置,即可使用。停止一个或多个运行中的 Pod。杀死一个或多个运行中的容器。停止一个或多个运行中的容器。更新一个或多个容器的配置。原创 2023-02-21 10:41:18 · 3635 阅读 · 0 评论 -
【kubernetes】通过外置CRI-DOCKER建立起新版K8s与Docker间的桥梁
kubernetes 从1.24版本开始,正式移除了内置的dockershim组件,这个组件是kubernetes官方开发和维护的一个容器运行时接口组件(即Container Runtime Interface),CRI的作用主要有两方便,一个是镜像的操作,如:下载、删除等,另一方面是对于容器的操作,包括容器的创建、停止和删除等。dockershim被移除后,意味着需要使用第三方的dockershim组件,如:cri-docker、containerd,才能继续在k8s集群中使用docker。原创 2023-01-30 10:48:51 · 4817 阅读 · 0 评论 -
【Kubernetes】关于K8s集群证书过期问题的处理过程记录
一个相对完整的思路,处理k8s集群证书过期问题。原创 2022-09-28 09:40:25 · 3216 阅读 · 0 评论 -
【Kubernetes】浅聊K8s集群中的Image、Pod以及Container
其实,熟悉docker的小伙伴们应该都知道,容器和镜像,其实是两个不同的概念。我们可以从docker_hub上下载别人制作好的docker镜像(如下所示)。这里有一个Digest字符串,需要大家留意下,后面会提到。 使用dockerfile创建一个Tomcat镜像 镜像制作好之后,我们使用命令成功运行这个镜像之后,运行的实例,就被成为容器,我们也习惯性的称它们为docker容器。 相对于普通的docker容器,在K8s集群环境下中,多了一些概念,如:Maste...原创 2022-06-28 12:33:14 · 1645 阅读 · 0 评论 -
【Kubernetes】Kubernetes各大版本的最新版本下载地址
截至2022年6月21日,Kubernetes各大版本的最新版本下载地址:原创 2022-06-21 10:41:47 · 5510 阅读 · 0 评论 -
【Kubernetes】K8s相关资源的版本兼容性列表
以下资源的版本兼容性列表是我根据相关组件的官网信息整理出来的,希望可以给初学K8s的小伙伴们提供一个快速上手的入口。表-1:K8s dashboard与K8s各大版本间的兼容列表表-2:Ingress-nginx与K8s各大版本间的兼容列表 表-3:Calico与K8s各大版本间的兼容列表参考:https://github.com/kubernetes/dashboard/releaseshttps://github.com/kubernetes/ingress-nginxhttps://pro原创 2022-06-21 09:45:22 · 2541 阅读 · 0 评论 -
【Kubernetes】创建dashboard-admin
接我的上一篇博客:【Kubernetes】K8s Dashboard的部署说明下面我给大家介绍下如何创建 dashboard-admin 账户权限。在当前K8s集群的任意一个admin节点,执行下面的命令,即可完成 dashboard-admin 账户权限的创建。# 第一步,在kube-system这个命名空间,创建dashboard-admin这个服务账户[root@k8s-master01 ~]# kubectl create serviceaccount dashboard-admin原创 2022-05-16 19:36:51 · 743 阅读 · 0 评论 -
【Kubernetes】K8s Dashboard的部署说明
Kubenetes-dashboard是官方发布的一款优秀的K8s WEB-UI,部署后就可以通过浏览器对已经部署的K8s集群进行资源监控和管理了。由于K8s版本迭代还是非常快的,因此Kubenetes-dashboard与K8s的版本之间存在一个兼容性关系。官方也给出了明确的版本兼容性关系说明。大家可以自行去官网查阅,下载和本地安装的K8s集群的版本兼容的dashboard。兼容性关系这里就不做赘述了。我本地虚拟机安装的K8s集群的版本为1.21.1...原创 2022-05-15 10:26:26 · 828 阅读 · 0 评论 -
【Kubernetes】k8s二进制集群安装规划
今天尝试了一下,将etcd集群从k8s集群的master节点剥离的安装方式,花了5、6个小时搭建完成,虽然头昏脑胀,但是成就感还是有的。之前将etcd集群分别部署在k8s集群的三个master节点上,在运行的过程中发现一个问题,就是当master节点挂了2个节点后,etcd集群即不可用,这样就会导致etcd集群的高可用与k8s的master节点的高可用形成冲突。剥离之后,etcd集群和master集群的高可用就互不影响了,提升了整个k8s集群的稳定性和...原创 2022-05-03 15:43:20 · 421 阅读 · 0 评论 -
【Kubernetes】K8s官方公布从1.24版本开始移除dockershim
根据Kubernetes官方博客于4月7日发布的最新消息称,从Kubernetes 1.24版本开始,dockershim将不会再被包含在Kubernetes的包中。官方文档(翻译): 可以肯定地说,随着Kubernetes 1.24的发布而受到最多关注的是Dockershim的移除。Dockershim 在 v1.20 中被弃用。正如Kubernetes 1.20 更改日志中所述:“kubelet 中的 Docker 支持现已弃用,并将在将来的版本中被删除。k...原创 2022-04-19 15:43:35 · 3080 阅读 · 0 评论 -
【Kubernetes】kubectl create/expose对deployment名字校验前后不一致问题
先上命令记录:# 创建一个名称为nginx-1.16的deployment,没有任何报错,没有触发校验规则$kubectl create deployment nginx-1.16 --replicas=3 --image=nginx:1.16 -n load-balancedeployment.apps/nginx-1.16 created# 接着创建Service,可以发现在为这个nginx-1.16的deployment创建service的时候,被正则校验出nginx-1.16因含有.原创 2021-08-10 15:41:22 · 2421 阅读 · 0 评论 -
【Kubernetes】使用weave-scope监控k8s集群
Weave-scope是一款非常绚丽的,可以用来监控k8s集群(集群网络拓扑、集群资源使用等)的强大的可视化工具。网上关于Weave-scope功能的介绍文章很多,这里就不赘述了。安装:安装的前提是你需要有一套正在运行的K8s集群,我本地有一套3节点的简易K8s集群。# kubectl apply -f "https://cloud.weave.works/k8s/scope.yaml?k8s-version=$(kubectl version | base64 | tr -d...原创 2022-01-11 16:43:27 · 735 阅读 · 0 评论 -
【Kubernetes】k8s集群安装步骤(一) - Etcd集群配置、部署
Etcd版本:3.4.16_adm641、配置hosts文件########## vmserver1-41每一台都配置vi /etc/hostsvmserver1 k8s-mastervmserver2 k8s-node01vmserver3 k8s-node02########## 设置静态主机名########## vmserver1hostnamectl set-hostname --static k8s-master########## vmserve...原创 2021-05-26 09:51:59 · 728 阅读 · 0 评论 -
【Kubernetes】从零搭建K8s集群(一) - 系统安装
【文章摘要】本节将为您介绍,如何为搭建一套K8s集群来安装和配置虚拟机环境。本次将以CentOS7.9官方镜像为安装介质。【正文】1、虚拟机环境介绍Host IP OS Version CPU Core Memory Host Name 192.168.223.201 CentOS 7.9 2C 4GB k8s-master 192.168.223.202 CentOS 7.9 2C 4GB k8s-node01原创 2021-08-03 15:33:38 · 361 阅读 · 0 评论 -
【Kubernetes】从零搭建K8s集群(二) - 环境配置
1、IP和主机名映射cat >> /etc/hosts << EOF192.168.223.201 k8s-master192.168.223.202 k8s-node01192.168.223.203 k8s-node02EOF2、关闭防火墙systemctl stop firewalld.servicesystemctl disable firewalld.servicesed -i 's/^SELINUX=.\*/SELINUX=disable原创 2021-08-03 15:57:59 · 417 阅读 · 0 评论 -
【Kubernetes】K8s amd64位最新(服务端)稳定版下载
1.22.3https://dl.k8s.io/v1.22.3/kubernetes-server-linux-amd64.tar.gzRemovedNothing has changed.1.21.6https://dl.k8s.io/v1.21.6/kubernetes-server-linux-amd64.tar.gzRemovedNothing has changed.1.20.12https://dl.k8s.io/v1.20.12/kubernetes-ser原创 2021-11-02 14:56:37 · 974 阅读 · 0 评论 -
【Kubernetes】通过sessionAffinity实现客户端与Pod的会话保持
首先,我们创建一个多实例的deployment,并为这个deployment创建service。---创建deployment: nginx[root@k8s-master ~]# kubectl create deployment nginx --image=nginx:1.20.1 --replicas=3deployment.apps/nginx created[root@k8s-master ~]# kubectl get pods -o wideNAME原创 2021-10-08 15:47:30 · 1339 阅读 · 0 评论 -
【Kubernetes】CKA认证考试需要注意的点
1)考试前的准备工作中,考官几乎是90%以上发送过来的信息都是英文,有几条是中文,英语基础不好的,需要提前主备好在线翻译的页面。2)考试前的准备工作中,需要进行share camera 和 share desktop,分享摄像头,如果是windows 10,需要同时打开相机和麦克风(设置-隐私-相机设置打开/麦克风设置打开),否则无法分享摄像头。3)考试前的准备工作中考官需要通过摄像头检查两侧耳朵里面(是否有耳麦),检查电脑桌(不要有其他物品,包括猫等宠物),检查四面墙壁,检查身份证和护照,手机原创 2021-09-25 11:29:25 · 1104 阅读 · 0 评论 -
【Kubernetes】calico-node的pod实例一直报错重启的问题
【背景】今天测试K8s集群的node节点扩容,扩容的整个过程都很顺利,但是后来发现在新扩容的node节点(k8s-node04)上,一直有一个calico-node的pod实例报错、不断重启。【现象】从下面的pod实例的运行状态查询结果来看,可以发现有一个pod实例(calico-node-xl9bc)在不断的重启。[root@k8s-master01 ~]# kubectl get pods -A| grep calicokube-system ...原创 2021-09-04 20:59:52 · 2273 阅读 · 0 评论 -
【Kubernetes】Kubeadm安装的K8s集群的版本升级过程测试(三)
k8s-node02节点升级节点驱逐的过程貌似有报错,但是最后也没有影响到版本升级,pods和service运行均正常。 过程中需要下载coredns镜像(v1.8.4)--->>> k8s-node02上操作[root@k8s-node02 ~]# yum install kubeadm-1.22.1-0 --disableexclude=kubernetes已加载插件:fastestmirrorLoading mirror speeds from cached host原创 2021-09-02 16:24:49 · 547 阅读 · 0 评论 -
【Kubernetes】Kubeadm安装的K8s集群的版本升级过程测试(二)
k8s-node01节点升级--->>> K8s-node01上操作[root@k8s-node01 ~]# yum install -y kubeadm-1.22.1-0 --disableexclude=kubernetes已加载插件:fastestmirrorLoading mirror speeds from cached hostfile * base: mirrors.bupt.edu.cn * extras: mirrors.ustc.edu.cn * up原创 2021-09-02 16:21:14 · 350 阅读 · 0 评论 -
【Kubernetes】Kubeadm安装的K8s集群的版本升级过程测试(一)
环境说明:Kubeadm安装的 3 节点K8s集群(1.21.4)升级目标:由 1.21.4 版本升级到1.22.1 版本升级过程记录:K8s-admin[root@k8s-master ~]# yum install -y kubeadm-1.22.1-0 --disableexclude=kubernetes已加载插件:fastestmirrorLoading mirror speeds from cached hostfile * base: mirrors.aliyun.com.原创 2021-09-02 16:17:30 · 315 阅读 · 0 评论 -
【Kubernetes】K8s集群的Etcd数据库的备份与还原
先看看报错:endpoints只能是单个节点# ETCDCTL_API=3 /usr/local/bin/etcdctl snapshot save snap.db --cacert=/etc/etcd/ssl/ca.pem --cert=/etc/etcd/ssl/etcd.pem --key=/etc/etcd/ssl/etcd-key.pem --endpoints="https://192.168.223.91:2379,https://192.168.223.92:2379,https://原创 2021-09-01 21:23:14 · 1195 阅读 · 2 评论 -
【Kubernetes】K8s集群operator模式安装minio
尝试过使用网上分享的minio.yaml安装minio集群,但是结果都失败了,主要原因是访问不了minio的管理页面。下面的yaml就是网上各类技术文章使用的最多的一个,有些yaml连nodePort都没有配置,执行了,然后还能通过nodePort访问到minio的管理页面。apiVersion: v1kind: Servicemetadata: name: minio labels: app: miniospec: clusterIP: None por...原创 2021-09-01 15:53:00 · 1581 阅读 · 0 评论 -
【Kubernetes】使用rook-ceph为K8s集群创建共享存储
一、前提条件1. 需要一套正常运行的K8s集群(使用二进制或者Kubeadm安装)。2. 为指定的节点分别创建一块独立的磁盘(无需格式化和挂载);备注:本次测试集群为1-master、2-node的3节点集群,按照上图的模式为3个节点各创建一块独立的硬盘,并且预先(预占)分配所需空间。二、版本说明K8s集群:1.21.4Docker-CE:20.10.8Rook-ceph:1.6三、集群安装说明# wget https://raw.githubusercontent原创 2021-08-31 11:52:01 · 888 阅读 · 3 评论 -
【Kubernetes】基于ingress-nginx-controller实现服务发现和负载均衡
整个过程探索了很久,原理没太搞明白,反正能通过自定义的ingress规则访问到后端(node上运行的pod里面的)Nginx服务了。另外,本试验的可重复性未做验证,请勿在生产环境执行下面的过程复现。环境说明:k8s二进制集群(1.21.4):3master+3node Harbor:2.3.1 Ingress-nginx:0.48.1过程步骤展示:修改ingress-nginx.yaml的配置,两处:第一处:修改镜像的地址为本地Harbor仓...原创 2021-08-28 20:38:45 · 698 阅读 · 0 评论 -
【Kubernetes】基于serviceaccount来实现k8s连接私有仓库
当我们需要在K8s集群中部署pod的时候,我们通常会选择从外网将需要镜像拉取到本地,然后上传到本地私有仓库,最后修改deploy.yaml文件中的image地址为所需镜像的本地私有仓库地址。涉及的步骤如下:======== 以安装ingress-nginx为例 ==========---创建namespace: ingress-nginx$ kubectl create namespace ingress-nginx---创建连接私有仓库的registrykey: ingres...原创 2021-08-26 15:59:00 · 427 阅读 · 0 评论 -
【Kubernetes】K8s集群中CoreDNS的功能
其实,我们从CoreDNS这个命名就不难理解,这个组件的功能应该是用来做DNS解析的。但是,具体它是如何工作的呢?下面我们就来一探究竟。从下面命令的查询结果来看,我们发现 kube-dns 服务的集群IP为10.96.0.10# kubectl get svc -n kube-systemNAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGEkube-dns...原创 2021-08-24 21:18:41 · 1084 阅读 · 0 评论 -
【Kubernetes】Pod的健康检查策略学习分享
参考:https://kubernetes.io/zh/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/原创 2021-08-23 15:49:08 · 205 阅读 · 0 评论 -
【Kubernetes】Kubernetes常用命令总结
创建命名空间# kubectl create namespace slbnamespace/slb created创建一个deployment# kubectl create deployment web --image=nginx:1.20.1 -n slbdeployment.apps/web created# kubectl get pods -n slbNAME READY STATUS RESTARTS AGEweb-65d5.原创 2021-08-23 09:08:53 · 199 阅读 · 0 评论 -
【Kubernetes】一张图了解Pod创建的基本流程
上面这张时序图展示了pod创建的基本流程:1. 首先,用户提交创建Pod的请求,可以通过API Server的REST API ,也可用kubectl命令行工具,支持Json和Yaml两种格式。2. API Server开始处理用户请求,并将Pod数据存储到Etcd数据库中。3. Scheduler 通过 API Server 的watch机制,查看到新的pod,尝试为Pod绑定Node。4. 过滤主机:调度器用一组规则过滤掉不符合要求的主机,比如Pod指定了所需要的资源,那...原创 2021-08-22 22:00:12 · 1427 阅读 · 0 评论 -
【Kubernetes】关于Kubeadm搭建的集群的证书更新问题
使用二进制部署K8s集群的时候,我们可以在创建证书的时候,指定证书的有效期,比如10年。但是,使用Kubeadm创建的K8s集群,证书的有效期默认只有一年。所以,对于Kubeadmin创建的集群,我们就需要了解如何在证书有效期前,及时的更新证书。 下面是使用Kubeadm创建的集群(2021年8月19日搭建)的证书有效期查询结果:# kubeadm certs check-expiration[check-expiration] Reading configurat...原创 2021-08-20 10:18:25 · 772 阅读 · 0 评论 -
【Kubernetes】K8s官方文档使用技巧
学习K8s有很多技巧,其中一个技巧就是要多浏览官方(https://kubernetes.io/zh/)的说明文档,对于英语基础不是太好的,K8s官方还提供了中文版的页面。点击【文档】,我们就进入了K8s文档的主页。主页上看起来也没多少知识点,别急!我们可以在左上角的搜索框中随便输入一个K8s的技术名词,比如:Taint直接回车,会跳转到结果展示页面,我们点击第一条,污点(Taints)和容忍(Tolerations)再次跳转页面,在这个搜索页面,我们可以看见页面的左框架页里面就有很原创 2021-08-19 07:30:28 · 1209 阅读 · 0 评论 -
【Kubernetes】不带to-revision的kubectl rollout undo存在无限死循环问题
第一步,编写首次部署所需的yaml文件,包括三块:命名空间定义、服务定义、部署定义,内容如下apiVersion: v1kind: Namespacemetadata: name: load-balance---kind: ServiceapiVersion: v1metadata: labels: app: nginx-1161 name: nginx-1161 namespace: load-balancespec: type: NodePort原创 2021-08-11 12:14:17 · 1615 阅读 · 3 评论 -
【Kubernetes】K8s集群安装metrics-server-0.5.0
官方最新的Release版本为:0.5.0https://github.com/kubernetes-sigs/metrics-server/releases在线安装命令:$ kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.5.0/components.yaml离线安装方法:由于yaml文件里面有一个镜像包,国内无法直接联网下载。因此,我们需要先将这个剧本文件原创 2021-08-09 14:28:39 · 1719 阅读 · 5 评论 -
【Kubernetes】从零搭建K8s集群(三) - 集群安装
【文章摘要】本节主要通过kubeadm来完成k8s三节点(1-master、2-Node)集群的快速安装。【正文】1、公网连接测试测试三台虚拟机到公网是否畅通,安装过程中需要联网下载部分组件、镜像和配置文件。2、安装docker-ce在master下载、安装docker,可以先从docker官方下载最新的docker-ce 20.10.7的几个包[root@k8s-master ~]# mkdir docker-ce[root@k8s-master ~]# cd docker原创 2021-08-03 16:56:17 · 534 阅读 · 0 评论 -
【Kubernetes】Coredns pods的ContainerCreating问题排查过程
本地测试环境搭建了一套简单的K8s集群,1个Master节点、1个Node节点。查询pods的状态时,发现coredns的两个pods实例一直处于容器创建(ContainerCreating)状态,而flannel容器实例运行正常。如下图所示:继续查看coredns其中一个pod实例的详细信息,发现容器状态为挂起(Pending),从Events并没有发现什么明显的报错。...原创 2021-08-02 14:59:08 · 4716 阅读 · 0 评论 -
【Kubernetes】K8s集群配置、安装Ingress-nginx-0.48.1
初学K8s,随着学习和研究的不断深入,慢慢发现使用Service+NodePort方式访问Pod的应用是不安全的,因为随着不同Pod应用的增加,宿主机暴露出来的端口就会越来越多,因此宿主机的安全性就会出现很多问题。因此,Ingress-nginx就进入了学习的视野。 Ingress-nginx是什么,有哪些强大的功能和优点,这里就不赘述了,网上很多介绍,感兴趣的可以自己Bing(https://cn.bing.com/)搜索。1、Ingress-nginx下载官方版...原创 2021-07-23 10:01:11 · 2230 阅读 · 3 评论