k8s
文章平均质量分 86
vinter-he
目前在一个创业型公司担任技术负责人,因为工作需要和个人爱好,接触了几种语言和些许架构知识,写的博客也多是记录和分享自己的工作和学习过程中的一些经验。以我的水平在平台上还算是个小学生,感谢在我前进路上帮过我的各位大牛,有不足之处,望大家不吝赐教。
展开
-
k8s的pod出现ImagePullBackOff(解决拉取私有镜像的权限问题)
出现的情况:ImagePullBackOff当大家部署deployment的时候,如果拉取的是私有仓库一般会先登录上去拉取镜像。但是有时候当某个节点资源紧张,或者是节点故障等原因,pod发生迁移的时候,会重新拉取镜像。这时候如果你的k8s是多个私有镜像账号混用等情况导致的登录状态失效,会导致ImagePullBackOff的错误。查看kubectl describe pod …Failed create pod sandbox: rpc error: code = Unknown desc = fai原创 2021-02-08 10:31:31 · 29060 阅读 · 2 评论 -
jenkins自动化部署应用到k8s(9):docker中的jenkins怎么调用kubectl进行部署
jenkins中安装kubectl因为jenkins中没有kubectl工具,所以如果想要调用的话首先要在jenkins的容器中安装这个命令。有两种方式,第一种:是直接调用宿主机的kubectl第二种:是在内部安装。另外比较重要的就是kubeconfig怎么导入使用。直接调用宿主机的kubectl和之前的文章一样,把工具映射进来,或者在jenkins的docker中安装kubectl也可以,拷贝进去也可以。最终命令就变为docker run --name jenkins.原创 2020-11-24 10:17:51 · 8672 阅读 · 3 评论 -
k8s滚动升级-只看这篇就够了
对于多实例服务,滚动更新采用对各个实例逐批次进行单独更新而非同一时刻对所有实例进行全部更新,来达到不中断服务的更新升级方式。对于Kubernetes集群来说,一个service可能有多个pod,滚动升级(Rolling update)就是指每次更新部分Pod,而不是在同一时刻将该Service下面的所有Pod shutdown,然后去更新(例如replace --force方案),逐个更新可以避免将业务中断,(但是也可能带来数据不一致的问题,本文就不过多讨论了)。关键代码在spec项中增加几个参数s原创 2020-10-14 15:43:55 · 16368 阅读 · 2 评论 -
k8s使用现有证书配置https
已有证书导入证书#kubectl create secret tls example-secret --key cert/xxx.key --cert cert/xxx.pem注意 名字和后缀是可以更改的,比如有可能证书的后缀是crt。ingressde yaml文件配置示例:apiVersion: extensions/v1beta1kind: Ingressmetadata: name: examplespec: tls: - hosts: - www原创 2020-09-29 14:38:12 · 13796 阅读 · 0 评论 -
阿里云上的k8s中某些节点的pod报dns错误,dns解析失败,bad address
php报错为:php_network_getaddresses:getaddrinfo failed问题可能出现的位置这类问题对应的都是dns解析错误。这里我的错误是因为我连接阿里云数据库用的域名方式,同样的错误还可能出现在调用带域名的网络服务等情况。这个问题为啥那么魔性首先我在阿里云上的k8s中有多个节点,使用的是同一个安全组策略(所以一开始没有考虑是网络安全组问题)。但是其中一个节点中的pod的dns出现问题。连接不到数据库,也ping不通其他的域名。而且如果你部署的pod数量大于1,那么你会发原创 2020-08-13 17:33:48 · 15145 阅读 · 0 评论 -
helm3进阶使用和出错排查
一些升级用法定义复杂类型模板我们上文中有讲过怎么遍历对象和数组,但是没有具体的讲怎么使用,现在教程来了。引用多级对象#values.yaml文件定义#资源占用,若不需要,直接写{}requests: cpu: 500m是怎么引用的apiVersion: apps/v1kind: Deploymentmetadata: ...省略spec: ...省略 template: ...省略 spec:原创 2020-08-07 17:21:43 · 16876 阅读 · 1 评论 -
helm3模板语法详解
https://www.cnblogs.com/lyc94620/p/10945430.html1.表达式模版表达式: {{ 模版表达式 }}模版表达式: {{- 模版表达式 -}}横杠(-)表示去掉表达式输出结果前面和后面的空格,去掉前面空格可以这么写{{- 模版表达式 }}去掉后面空格 {{ 模版表达式 -}}2. 变量和变量作用域默认情况最左面的点( . ), 代表全局作用域,用于引用全局对象,中间的点,很像是js中对json对象中属性的引用方式。例子:#这里引用了全局原创 2020-08-06 16:25:16 · 19776 阅读 · 2 评论 -
k8s包管理工具helm3应用
预备知识:k8s基本操作命令yaml文件格式linux基础操作(增加执行权限,移动文件,执行命令)最好有看过我之前的一套文章知道k8s各种资源的含义起因helm 是什么网上有很多官方的解释,说helm是Kubernetes 的包管理器。但是对于我自己的理解来说,我需要的基本都是订制自己的应用,所以对我来说helm更像是一个让我能快速的创建k8s部署文件的管理工具。helm解决了我的哪些难题看过我之前文章的都知道,我把公司的一些业务从传统分层架构搬到了k8s上,最初是其中一个项目,做了前原创 2020-08-05 17:24:22 · 13343 阅读 · 1 评论 -
从零搭建阿里云托管版k8s集群-容器日志采集(八)
相信很多人都知道可以自己搭建elk来方便的收集日志,查询日志。虽然搭建elk并不是十分复杂,可对于一般的开发人员来说,尤其是对linux操作不是很熟练的人,是一项相当有难度的工程。所幸现在阿里云已经为我们提供了日志服务,只需要点点点就可以收集到日志。开通日志服务进入阿里云控制台,点击左上角列表框,弹出的产品与服务中,搜索日志服务。由于我们在创建k8s集群的时候,为集群创建日志服务的时候已经开通过,所以直接可以进入。机器组的概念通俗的理解就是一组机器,使用日志服务,对这一组机器进行日志采集。阿原创 2020-07-22 16:28:46 · 13404 阅读 · 0 评论 -
从零搭建阿里云托管版k8s集群-ingress(七)
预备知识:- k8s基本操作命令- yaml文件格式- linux基础操作(增加执行权限,移动文件,执行命令)- 负载均衡和nat知识之前我们已经创建好了存储卷,容器,服务,hpa,但是目前的项目还没有一个统一的ip可以对外网服务,这就是ingress要做到事情。我们回忆一下,如果没有一个统一的入口,我们将要怎么处理k8s集群中的每一个服务呢,第一种想到的就是创建服务的时候,为每一个服务创建一个slb负载均衡器。阿里云的slb除了收取流量费用之外,还会收取实例费用,所以成..原创 2020-07-17 15:10:17 · 14038 阅读 · 0 评论 -
从零搭建阿里云托管版k8s集群-service(五)
预备知识:k8s基本操作命令yaml文件格式linux基础操作(增加执行权限,移动文件,执行命令)创建service什么是service呢,我说一下我的理解,不对的地方欢迎大家指正。service是定义一种从pod内部,集群内部来访问pod的一种网络抽象层,以便于内部的服务可以被其他的服务或者外部系统访问到,它提供负载均衡和服务发现,屏蔽了pod变化的ip信息(每个pod创建的时候都会分配一个随机的ip)。具体的我就不多说了,下面讲解service文件。apiVersion: v1kin原创 2020-07-17 10:47:29 · 13285 阅读 · 0 评论 -
从零搭建阿里云托管版k8s集群-部署和排查(四)
预备知识:docker基本知识k8s基本操作命令yaml文件格式‘linux基础操作(增加执行权限,移动文件,执行命令)准备工作在linux上(虚拟机也行)中通过 kubectl 连接 Kubernetes 集群打开阿里云容器服务->集群信息->连接信息安装和设置 kubectl 客户端。注意:下载最新的 kubectl 客户端的时候,因为是国外网站,可能下载不下来,可以登陆自己的ecs服务器,把kubectl二进制文件打包下来到本地,也是一样可以用的。#下载最新版本原创 2020-07-16 14:35:54 · 13271 阅读 · 0 评论 -
从零搭建阿里云托管版k8s集群-部署思路(三)
预备知识oss概念docker基本知识k8s基本知识yaml文件格式部署思路本文不涉及持续集成,尽量简单化处理。原定思路项目文件存放:nas日志文件存放:nas优点:项目文件使用nas存放,如果集群中存在多个项目,可以使用动态供给,不用为每一个项目单独创建一套pv。(具体请参看上一篇文章)日志文件集中存放在nas中,可以方便集中查询和管理。缺点:阿里云的sotrage class在使用nas的时候,不能通过命令行创建(目前是),在创建的时候遇到不少问题nas是内网访问原创 2020-07-14 17:20:55 · 13819 阅读 · 0 评论 -
从零搭建阿里云托管版k8s集群-存储卷(二)
预备知识白名单docker基本知识k8s基本知识yaml文件格式1. 给rds增加白名单注意阿里云的rds数据库默认的白名单只有127.0.0.1 也就是说只能本机器访问,所以要把k8s中机器或者vpc的网段加入到白名单中。2. 存储券2.1 存储券可以干什么存储券可以认为是一种存储资源,可以挂载在docker中的目录下,按照读写权限可以对其内容进行访问。比如可以挂载一个nas进去存储日志,挂载oss进去存储日志等注意:存储券必须先于pod创建,因为他是创建pod依赖的资源2.2原创 2020-07-14 16:58:05 · 13616 阅读 · 0 评论 -
从零搭建阿里云托管版k8s集群-创建集群(一)
预备知识:对k8s的运行原理有一定了解 对阿里云的eip,snat和基本网络知识有一定了解,熟悉linux操作### 准备条件两台及以上ecs服务器 阿里云账户余额100元以上(阿里云要求) 阿里云oss一个(oss和ecs在一个区域最好,目前40g一年才9块钱,足够用)首先阿里云创建k8s集群要求至少有两台ecs服务器,可以创建集群的时候购买,也可以预先购买好。另外云服务器可以选择不含有eip的,之后自己绑定eip以方便使用共享流量包,或者固定带宽,或者是在创建集群的时候选择使用s.原创 2020-07-14 13:55:06 · 16025 阅读 · 3 评论