目录一、理论1.污点2.容忍3. Pod启动阶段4. 故障排除步骤5.对节点执行维护操作二、实验1.污点2.容忍三、问题1.pod上配置容忍生成资源报错四、总结一、理论1.污点(1)作用节点亲和性,是Pod的一种属性(偏好或硬性要求),它使Pod被吸引到一类特定的节点。Taint则相反,它使节点能够排斥一类特定的PodTaint和Toleration相互配合,可以用来避免Pod被分配到不合适的节点上。每个节点上都可以应用一个或多个taint,这表示对于那些不能容忍这些taint的Pod,是不会被该节点接受的。如果将toleration应用于Pod上,则表示这些Pod可以(但不一定)被调度到具有
预知ingress实现https代理创建证书密钥secrets保存密钥信息,部署pod时把secrets挂载到pod[root@master01~]#opensslreq-x509-sha256-nodes-days365-newkeyrsa:2048-keyouttls.key-out.crt-subj"/CN=nginxzzr/O=nginxzzr"req:生成证书文件的请求x509:生成x.509自签名的证书-sha256:表示生成的密钥不加密-day365:证书有效期365天-newkeyrsa:2048:RSA密钥对,长度2048位。-keyouttls.key-out.crt:密钥
目录一、理论1.Kubectl插件2.kubens 3.krew二、实验1.kubectl插件2.kubens 3.krew一、理论1.kubectl插件(1)概念kubectl插件其实就是以kubectl-为前缀的任意可执行文件,比如执行:ln-s/bin/echo/usr/local/bin/kubectl-echo此时就相当于安装了个echo的kubectl插件,kubectl插件可以通过kubectl + 插件名执行,kubectlxxx其实就是相当于运行kubectl-xxx。2.kubens (1)概念k8s每次查看指定命名空间的资源都需要加-n命名空间来指定命名空间,我们可以通过
背景如何做团队技术文章分享和沉淀?这是一个老生常谈的话题。常见的技术选型可以是Confluence、Dokuwiki、Gitbook等。但对于敏捷团队来说,这些都不够优雅,我们希望能把技术文章像代码一样进行协作和版本管理。更新技术文章后,能够自动部署到公司的K8S集群。那么,CODINGDevOps+Hexo一定是你的不二之选,这也是CODING目前的实践。Hexo是一个快速、简洁且高效的博客框架。我们只需要书写Markdown格式的技术文章,通过命令能够直接生成静态页面,方便浏览和部署。本文将介绍如何使用CODINGDevOps建立流水线,推送技术文章到Git仓库后,自动触发流水线执行构建并
k8s多集群配置管理平台临时集群特性模拟生产环境整体环境说明内网:10.17.1.44[root@localhostaccount-server]#kubectlgetnodesNAMESTATUSROLESAGEVERSIONlocalhostReadymaster25hv1.17.5[root@localhostaccount-server]#kubectlgetpods-ANAMESPACENAMEREADYSTATUSRESTARTSAGEcattle-systemcattle-cluster-agent-689f8dcc64-7slpk1/1Running078mcattle-sys
(1)版本配置系统版本:CentOSLinuxrelease7.9.2009(Core)内核版本:5.4.259-1.el7.elrepo.x86_64k8s版本:v1.15.1(2)报错原因分析在安装和配置Kubernetes(k8s)集群时,有时会遇到各种错误和问题。其中一个常见的问题是在初始化过程中出现"errorexecutionphasepreflight"错误。这个错误通常与交换空间(swap)的使用、Docker版本和kubeadm配置有关。(3)–experimental-upload-certs已被弃用报错初始化语句导致报错Flag--experimental-upload-
1.概述kubectl命令是操作Kubernetes集群的最直接和最高效的途径,熟练掌握命令的使用能起到事半功倍的效果,整理命令有助于加深记忆,该文仅记录关于pod常用的操作运维命令。2.查看namespaces查看k8s集群中目前存在的namespaceskubectlgetnamespaces输入如下3.查看pods3.1查看所有的pods列表查看k8s集群中所有的podskubectlgetpods-A3.2查看指定namespace的pods列表查看namespace为ceph的pods列表kubectlgetpods-nceph3.3查看pods列表详细信息kubectlgetpod
多集群的切换是K8s运维中比不可少的问题,常见的基于多个集群进行切换的方法有三种:切换config文件通过context进行集群切换用kubecm进行集群切换切换config文件我们先看看放在.kube下默认的config集群:$kubectlconfigviewapiVersion:v1clusters:-cluster:certificate-authority-data:DATA+OMITTEDserver:name:kubernetescontexts:-context:cluster:kubernetesuser:"2xxxxxxxxx7"name:2xxxxxxxxxxxxxxxx
在k8s中部署Prometheus和GrafanaIntro上次我们主要分享了asp.netcore集成prometheus,以及简单的prometheus使用,在实际在k8s中部署的时候就不能在使用前面讲的静态配置的方式来部署了,需要使用Prometheus的服务发现。部署规划Prometheus和Grafana的部署放在一个单独的namespace——monitoring下面,这样的好处在于可以屏蔽掉一些细节,别的namespace无感知,也不需要知道它们的存在可以使用kubectlcreatenamespacemonitoring来创建命名空间或者kubectlapply执行下面的yam
k8s的namespace一直Terminating的完美解决方案在k8s集群中进行测试删除namespace是经常的事件,而为了方便操作,一般都是直接对整个名称空间进行删除操作。相信道友们在进行此步操作的时候,会遇到要删除的namespace一直处于Terminating。下面我将给出一个完美的解决方案,测试demo创建demonamespace#kubectlcreatenstestnamespace/testcreated删除demonamespace#kubectldeletenstestnamespace"test"deleted一直处于deleted不见exit查看状态可见test