草庐IT

k8smaster

全部标签

K8S deployment 重启的三种方法

一般重启deployment,常规操作是删掉对应的pod,但如果有多个副本集的话,一个个删很麻烦。除了删除pod,还可以:方案一:加上环境变量kubectlpatchdeploy-p'{"spec":{"template":{"spec":{"containers":[{"name":"","env":[{"name":"RESTART_TIME","value":"'$(date+%s)'"}]}]}}}}'方案二:重新设置镜像kubectlsetimagedeploy/=-n方案三:使用rolloutkubectlrolloutrestartdeploy-nPS:rolloutrestar

解决K8S节点NotReady状态

问题场景使用kubectlgetnode指令查看节点状态检查kubeadm的文件,检查k8s初始化信息,情况正常kubeadmconfigimageslist--configkubeadm-config.yaml查看系统中的pod,发现少了一个flannel的podkubectlgetpods-nkube-system出现pod的NotReady这个问题的情况不一样,有的人是flannel有但是状态是Error:ErrImagePull,这种情况下可以删除后重试,删除指令:kubectldeletepodskube-flannel-ds-amd64-rkjv2-nkube-system手动拉取

K8S | 容器和Pod组件

对比软件安装和运行;一、场景作为研发人员,通常自己电脑的系统环境都是非常复杂,在个人的习惯上,是按照下图的模块管理电脑的系统环境;对于「基础设施」、「主机操作系统」、「系统软件」来说,通常只做配置修改;对于自行安装的软件环境来说,个人通常这样分类:「应用软件」、「研发软件」、「持续集成」、「虚拟机环境」;应用软件:主要指常用的办公软件,比如文档编写,画图设计,通信产品等;研发软件:比如基础开发环境,各种中间件环境,数据存储查询等;持续集成:主流的就是Jenkins、Docker、Kubernetes等组件,整体比较复杂,不好管理;虚拟机环境:研发必备的Linux操作系统,用来部署一些标准的组件

k8s快速生成yaml的两种方式

第一.kubectlcreate命令[root@k8s-master~]#kubectlcreatedeploymentnginx--image=nginx-oyaml--dry-run#不创建pod,打印出来W010616:21:43.89167917615helpers.go:663]--dry-runisdeprecatedandcanbereplacedwith--dry-run=client.apiVersion:apps/v1kind:Deploymentmetadata:creationTimestamp:nulllabels:app:nginxname:nginxspec:re

K8S 设置pod使用host网络、配置DNS

1.如果希望Pod可以使用宿主机的网络,可以添加hostNetwork:trueapiVersion:apps/v1kind:Deploymentmetadata:name:spark-applabels:app:spark-appspec:selector:matchLabels:app:spark-appreplicas:1template:metadata:labels:app:spark-appspec:hostNetwork:truecontainers:-name:spark-appimage:spark-app-image 但这样起来后似乎就用不了K8S配置的Service的域名

如何批量删除k8s中的异常pod信息

kubectlgetpods发现有很多pod出问题了Evicted可使用kubectl中的强制删除命令#打印指定命名空间下的所有Evicted的podkubectlgetpods-nnamespace|grepEvicted|awk'{print$1}'##发现有很多“Evicted”状态的pod##问题原因:这是由于node节点的磁盘或内存资源不够后将现有的pod进行了驱赶。#批量删掉podkubectlgetpods-nnamespace|grepEvicted|awk'{print$1}'|xargskubectldeletepods-nnamespace批量删除所有“Evicted”状

k8s中强制删除pod方法

文章目录k8s删除pod一直处于terminating状态,无法被删除k8s删除pod一直处于terminating状态,无法被删除删除pod的时候发现pod一直处于terminating状态,而且使用delete命令删除的时候一直会卡的没反应。可以使用强制删除的方法解决:#强制删除PODkubectldeletepod[podname]--force--grace-period=0-n[namespace]#强制删除名称空间kubectldeletenamespaceNAMESPACENAME--force--grace-period=0筛选出集群中状态是Terminating的pod,随后

从业务出发,K8S环境自建和非自建整体架构设计比较

新钛云服已累计为您分享751篇技术干货随着数字化转型的大潮到来,越来越多的企业开始上云,同时也纷纷加入到微服务和K8S队伍中。但在K8S整体环境究竟应该用自建的还是非自建?以及他们需要用到的服务,究竟应该自建还是直接用PAAS服务?这些问题往往会困扰住大家。我在这里以中立的角度阐述下各自的优劣,给大家提供一些参考帮助大家能做出更利于公司发展的选择。在进行对比之前,我们先来了解一些概念。1、什么是自建K8S?所谓自建,就是使用自己在物理机和虚拟机上部署的开源Kubernetes平台。2、什么是非自建K8S?非自建就是云上的PAAS服务,全套的从物理层到容器层的环境都由云厂商提供,底层也是基于开源

K8S Containerd导入Docker image镜像

Kubernetes在v1.20版本宣布弃用Dockershim(在v1.24正式移除),改用CRI接口去操作更为基础的containerd或CRI-O。K8S在创建容器时,或多或少有些镜像无法正常拉取(网络等原因)。还在使用DockerEngine时我们能方便的pull第三方同步的镜像,然后tag成需要的标签版本,让K8S从本地获取到想要的镜像。因Docker将其容器格式和运行时runC捐赠给OCI(开放容器标准),OCI标准化了容器工具和底层实现之间的大量接口。因此改用containerd或CRI-O万变不离其宗,他们都支持运行符合OCI标准的镜像。理论存在,实践开始。我集群的容器运行时是

K8S查看服务器日志

现在越来越多的服务通过K8S进行部署,所以这里简单记录下在我们日常工作中,使用k8s进行查看服务器的相关日志命令。首先需要使用账号密码进入到服务器中第一个命令kubetctlgetpod-A这个是查看所有的服务信息其中NAMESPACE是命名空间,name则是你服务节点的名称,注意,这个节点名称每次部署之后都会刷新不一样的名称第二个命令kubectllogs-fname节点名称YYYY--tail500-n你的NAMESPACE名称XXX所以在每次部署完之后,如果想看节点的日志,都要先用第一个命令查看节点名称,否则如果重新部署之后,还是用原来的节点名称来执行第二个命令去查看日志,会提示找不到相