
K8S
文章平均质量分 89
hakula007
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
K8S 容器退出状态码Exit Code 分析
K8S 容器退出状态码解释,常见的Exit Code 排查分析,Exit Code 1、Exit Code 137、Exit Code 139、Exit Code 143 等等原创 2022-07-14 15:59:26 · 8104 阅读 · 1 评论 -
K8S入门知识整理-持续更新
目录1.查看节点的日志信息:journalctl -u kubelet -n 10002.查看对应deployment的pod数量,并对其进行设置:kubectl get deployments&kubectl scale deployment nginx-deployment --replicas3.node节点加入k8s集群:kubeadm join --token 1f627e.a37793601a406d7e 10.0.1.22:6443 --discovery-toke...原创 2021-03-11 17:29:59 · 1546 阅读 · 1 评论 -
K8S亲和性调度2
前面一篇文章讲述了:K8S亲和性调度1,现在仔细回头去看看,发现有很多地方没有理解透彻,不够深入,今天我们重新来理解下亲和性调度这一块知识。一般情况下我们部署的 Pod 是通过集群的自动调度策略来选择节点的,默认情况下调度器考虑的是资源足够,并且负载尽量平均,但是有的时候我们需要能够更加细粒度的去控制 Pod 的调度,比如我们内部的一些服务 gitlab 之类的也是跑在Kubernetes集群上的,我们就不希望对外的一些服务和内部的服务跑在同一个节点上了,害怕内部服务对外部的服务产生影响;但是有的时候我原创 2021-03-11 17:26:46 · 3134 阅读 · 0 评论 -
K8S 的亲和性调度1
一般情况下我们部署的 POD 是通过集群自动调度选择某个节点的,默认情况下调度器考虑的是资源足够,并且负载尽量平均,但是有的时候我们需要能够更加细粒度的去控制 POD 的调度,比如我们内部的一些服务 gitlab 之类的也是跑在Kubernetes集群上的,我们就不希望对外的一些服务和内部的服务跑在同一个节点上了,害怕内部服务对外部的服务产生影响;有的时候呢我们两个服务直接交流比较频繁,又希望能够将这两个服务的 POD 调度到同样的节点上。这就需要用到 Kubernetes 里面的一个概念:亲和性,亲和性主原创 2021-03-11 17:24:40 · 1035 阅读 · 0 评论 -
K8S生态--交付prometheus监控及grafana炫酷dashboard到K8S集群
由于docker容器的特殊性,传统的zabbix无法对k8s集群内的docker状态进行监控,所以需要使用prometheus来进行监控:什么是Prometheus?Prometheus是由SoundCloud开发的开源监控报警系统和时序列数据库(TSDB)。Prometheus使用Go语言开发,是Google BorgMon监控系统的开源版本。2016年由Google发起Linux基金会旗下的原生云基金会(Cloud Native Computing Foundation), 将Promethe原创 2020-06-12 20:33:44 · 1453 阅读 · 0 评论 -
K8S实战-配置中心(四)分环境使用apollo配置中心
要进行分环境,需要将现有实验环境进行拆分portal服务,可以各个环境共用,但是apollo-adminservice和apollo-configservice必须要分开。1、zk环境拆分为test和prod环境添加dns解析:# vi /var/named/od.com.zonezk-test.od.com A 10.4.7.11zk-prod.od.com A 10.4.7.122、namespace 分环境,创建test ...原创 2020-06-12 20:28:02 · 1372 阅读 · 0 评论 -
K8S实战-配置中心(三)配置服务使用apollo配置中心
使用配置中心,需要开发对代码进行调整,将一些配置,通过变量的形式配置到apollo中,服务通过配置中心来获取具体的配置在配置中心修改新增如下配置:项目信息:配置:重新打包镜像,使用apollo版本的代码:修改dp.yaml,将镜像使用我们刚刚打包的这个:应用资源配置清单:# kubectl apply -f http://k8s-yaml.od.com/dubbo-server/dp.yaml创建dubbo服务消费者:ap...原创 2020-06-12 19:53:11 · 656 阅读 · 0 评论 -
K8S实战-配置中心(二)交付apollo配置中心到K8S
apollo官网:官方地址apollo架构图:apollo需要使用数据库,这里使用mysql,注意版本需要在5.6以上:本次环境mysql部署在10.4.7.11上,使用mariadb:10.1以上版本# vi /etc/yum.repos.d/MariaDB.repo[mariadb]name = MariaDBbaseurl = https://mirrors.ustc.edu.cn/mariadb/yum/10.1/centos7-amd64/gpg...原创 2020-06-12 19:51:04 · 733 阅读 · 0 评论 -
K8S实战-配置中心(一)configmap资源
在我们的环境中测试使用configmap资源,需要先对我们的环境进行一些准备,首先将dubbo服务调整为0个pod ,然后把zookeeper进行拆分:拆分zk环境,模拟测试环境跟生产环境:停止zookeeper:# sh /opt/zookeeper/bin/zkServer.sh stop# rm -rf /data/zookeeper/data/*# rm -rf /data/zookeeper/logs/*# vi /op...原创 2020-06-12 19:49:14 · 1129 阅读 · 0 评论 -
K8S实战-交付dubbo服务到k8s集群(六)使用blue ocean流水线构建dubbo-consumer服务
我们这里的dubbo-consumer是dubbo-demo-service的消费者:我们之前已经在jenkins配置好了流水线,只需要填写参数就行了。由于dubbo-consumer用的gitee的私有仓库,需要添加公钥,这里大家可以自己找个client服务来做实验。下面是我们通过jenkins构建的镜像,已经上传到我们的harbor私有仓库当中了:这里我们构建了两次,构建了两个镜像,11bb9cd这个用来做模拟生产发版更新实验。...原创 2020-06-12 19:48:01 · 510 阅读 · 0 评论 -
K8S实战-交付dubbo服务到k8s集群(五)交付dubbo-monitor监控服务到K8S
首先下载dubbo-monitor源码包7-200dubbo-monitor是监控zookeeper状态的一个服务,另外还有dubbo-admin,效果一样,感兴趣的可以自己研究一下。# cd /opt/src# wget https://github.com/Jeromefromcn/dubbo-monitor/archive/master.zip# yum -y install unzip# unzip master.zip# mv dubbo-monitor-mster ..原创 2020-06-12 19:46:42 · 539 阅读 · 0 评论 -
K8S实战-交付dubbo服务到k8s集群(四)使用blue ocean流水线构建dubbo-demo-service
使用jenkins创建一个新的项目:dubbo-demo,选择流水线构建勾选保存构建历史和指定项目为参数化构建项目:添加构建参数:以下配置项,是王导根据多年生产经验总结出来的甩锅大法:除了base_image和maven是choice parameter,其他都是string parameter添加完成后,效果如图:编写pipeline:仔细查看这个pipeline,里面都是我们上面编写的参数。pipeline { agent...原创 2020-06-12 19:45:28 · 721 阅读 · 1 评论 -
K8S实战-交付dubbo服务到K8S集群(三)安装配置maven和java运行时环境的底包镜像
maven 官方地址:官方地址下载maven,shdd7-200# cd /opt/src# wget https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz# mkdir /data/nfs-volume/jenkins_home/maven-3.6.1-8u232# tar -zxf apache-maven-3.6.1-bin.tar.gz -C .原创 2020-06-12 19:43:26 · 434 阅读 · 1 评论 -
K8S实战-交付dubbo服务到k8s集群(二)交付jenkins到k8s集群
首先下载jenkins镜像并上传到我们自己的私有仓库:7-200# docker pull jenkins/jenkins:2.190.3# docker tag 22b8b9a84dbe harbor.od.com/public/jenkins:v2.190.3# docker push harbor.od.com/public/jenkins:v2.190.3为了适应我们的环境,我们的jenkins不能直接使用,需要进行配置:# mkdir -p /data/dockerfi原创 2020-06-12 19:40:27 · 755 阅读 · 1 评论 -
K8S实战-交付dubbo服务到k8s集群(一)准备工作
本次交付的服务架构图:因为zookeeper属于有状态服务,不建议将有状态服务,交付到k8s,如mysql,zk等。首先部署zk集群:zk是java服务,需要依赖jdk,jdk请自行下载:集群分布:7-11,7-12,7-21# mkdir /opt/src# mkdir /usr/jav# cd /opt/src# tar -xf jdk-8u221-linux-x64.tar.gz -C /usr/java/# ln -s /usr/java/jd...原创 2020-06-12 19:38:32 · 584 阅读 · 0 评论 -
K8S进阶(六)K8S平滑升级
当我们遇到K8S有漏洞的时候,或者为了满足需求,有时候可能会需要升级或者降级版本,为了减少对业务的影响,尽量选择在业务低谷的时候来升级:首先准备好文件:我这里选择的是内网文件服务器上下载的,请自行下载所需的k8s源文件:3这里演示更换一个节点:7-21查看版本:将7-21更换成1.15.2# cd /opt/src# wget http://192.168.1.60:8080/day1/kubernetes-server-linux-amd64-v1.15.2..原创 2020-06-12 19:35:43 · 1123 阅读 · 0 评论 -
K8S进阶(五)dashboard--WEB管理
dashboard是k8s的可视化管理平台,是三种管理k8s集群方法之一首先下载镜像上传到我们的私有仓库中:hdss7-200# docker pull k8scn/kubernetes-dashboard-amd64:v1.8.3# docker tag fcac9aa03fd6 harbor.od.com/public/dashboard:v1.8.3# docker push harbor.od.com/public/dashboard:v1.8.3编辑dashboard资源原创 2020-06-12 19:33:33 · 1177 阅读 · 0 评论 -
K8S进阶(四)服务暴露-ingress控制器之traefik
上一章我们测试了在集群内部解析service名称,下面我们测试在集群外部解析:根本解析不到,因为我们外部用的dns是10.4.7.11,也就是我们的自建bind dns,这个DNS服务器上也没有响应的搜索域。如何能让集群外部访问nginx-dp?这里有两种服务暴露方式:修改工作模式,在kube-proxy中修改,并重启1、使用nodeport方式,但是这种方式不能使用ipvs,只能使用iptables,iptables只能使用rr调度方式。原理相当于端口映射,将容器内的端口映..原创 2020-06-12 19:29:52 · 1373 阅读 · 0 评论 -
K8S进阶(二) 核心网络插件Flannel的安装
网络插件Flannel介绍:https://www.kubernetes.org.cn/3682.html首先,flannel利用Kubernetes API或者etcd用于存储整个集群的网络配置,其中最主要的内容为设置集群的网络地址空间。例如,设定整个集群内所有容器的IP都取自网段“10.1.0.0/16”。接着,flannel在每个主机中运行flanneld作为agent,它会为所在主机从集群的网络地址空间中,获取一个小的网段subnet,本主机内所有容器的IP地址都将从中分配。然后,fla原创 2020-06-12 19:24:43 · 4595 阅读 · 0 评论 -
K8S进阶(一) kubectl工具使用详解
管理k8s核心资源的三种基本方法:一、陈述式-主要依赖命令行工具--可以满足90%以上的使用场景,但是缺点也很明显: 命令冗长,复杂,难以记忆 特定场景下,无法实现管理需求 对资源的增、删、查操作比较容易,改比较麻烦,需要patch来使用json串来更改。 1.1 查看名称空间 查询时,为了避免重名,需要指定名称空间。# kubectl get namespace简写:# kubectl get ns 1.2 查询命名空间中的资源,使用-n ...原创 2020-05-28 23:29:48 · 3684 阅读 · 0 评论 -
K8S安装(七) 部署知识点总结
1、k8s各个组件之间通信,在高版本中,基本都是使用TSL通信,所以申请证书,是必不可少的,而且建议使用二进制安装,或者在接手一套K8S集群的时候,第一件事情是检查证书有效期,证书过期或者TSL通信问题会报x509相关错误。可以从k8s kubelet-kuberconfig 使用 echo '证书' | base64 -d 反解获得k8s证书(比如阿里云)# cfssl-certinfo -domain=ca.pem -cert=client.pem2、在安装k8s运算节点的..原创 2020-05-28 22:34:04 · 495 阅读 · 0 评论 -
K8S安装(六) kube-proxy组件安装
Kube-Proxy简述参考文献:https://ywnz.com/linuxyffq/2530.html运行在每个节点上,监听 API Server 中服务对象的变化,再通过管理 IPtables 来实现网络的转发Kube-Proxy 目前支持三种模式:UserSpace k8s v1.2 后就已经淘汰 IPtables 目前默认方式 IPVS--推荐,支持7层 需要安装ipvsadm、ipset 工具包和加载 ip_vs 内核模块 kube-proxy部署在hdss7-原创 2020-05-28 22:32:04 · 3002 阅读 · 0 评论 -
K8S安装(五) kubelet组件安装
概述资料地址:https://blog.youkuaiyun.com/bbwangj/article/details/81904350Kubelet组件运行在Node节点上,维持运行中的Pods以及提供kuberntes运行时环境,主要完成以下使命:1.监视分配给该Node节点的pods2.挂载pod所需要的volumes3.下载pod的secret4.通过docker/rkt来运行pod中的容器5.周期的执行pod中为容器定义的liveness探针6.上报pod的状态...原创 2020-05-28 22:08:20 · 1877 阅读 · 0 评论 -
K8S安装(四) kube-scheduler组件安装
介绍资料转载地址:https://www.jianshu.com/p/c4c60ccda8d0kube-scheduler在集群中的作用kube-scheduler是以插件形式存在的组件,正因为以插件形式存在,所以其具有可扩展可定制的特性。kube-scheduler相当于整个集群的调度决策者,其通过预选和优选两个过程决定容器的最佳调度位置。kube-scheduler源码中的关键性调用链kube-scheduler部署在hdss7-21,22上:创建启动脚本:...原创 2020-05-28 21:49:46 · 1067 阅读 · 0 评论 -
K8S安装(三) kube-controller-manager组件安装
Controller Manager简介详细介绍请参考链接:Kubernetes组件之kube-controller-managerController Manager作为集群内部的管理控制中心,负责集群内的Node、Pod副本、服务端点(Endpoint)、命名空间(Namespace)、服务账号(ServiceAccount)、资源定额(ResourceQuota)的管理,当某个Node意外宕机时,Controller Manager会及时发现并执行自动化修复流程,确保集群始终处于预期的工作状态原创 2020-05-28 21:44:11 · 1743 阅读 · 4 评论 -
K8S安装(一) 环境准备及etcd组件安装及etcd管理软件etcdkeeper安装
实验环境:架构图:主机环境:操作系统:因docker对内核需要,本次部署操作系统全部采用centos7.6(需要内核3.8以上)VM :2C 2G 50G * 5 PS:因后面实验需要向k8s交付java服务,所以运算节点直接4c8g,如果不交付服务,全部2c2g即可。IP及服务规划:安装步骤:所有机器上安装epel源:#yum -y install epel-release关闭防火墙以及selinux:# systemc...原创 2020-05-27 01:21:00 · 2011 阅读 · 1 评论