Kube

基于prometheus打造分布式监控系统

霸气de小男生 提交于 2020-12-24 13:45:31
规划使用版本 产品名称 版本 url地址 prometheus 2.22.1 https://github.com/prometheus/prometheus/releases/tag/v2.22.1 alertmanager v0.21.0 https://github.com/prometheus/alertmanager/releases/tag/v0.21.0 consul 1.8.5 docker.io/consul consulR latest https://github.com/qist/registy-consul-service/releases victoriametrics v1.50.2 https://github.com/VictoriaMetrics/VictoriaMetrics/releases kube-prometheus v0.43.2 https://github.com/prometheus-operator/kube-prometheus kube-prometheus 修改版本 https://github.com/qist/k8s/tree/master/k8s-yaml/kube-prometheus grafana v7.3.2 docker.io/grafana/grafana 部署环境 部署环境 部署IP 部署方式

高可用的 K8S 集群构建

谁说胖子不能爱 提交于 2020-12-24 13:24:30
设置系统主机名以及 Host 文件的相互解析 hostnamectl set-hostname k8s-master01 hostnamectl set-hostname k8s-master02 hostnamectl set-hostname k8s-master03 vi /etc/hosts 10.10.21.8 k8s-master01 10.10.21.28 k8s-master02 10.10.21.38 k8s-master03 10.10.21.100 k8s-vip 安装依赖包 yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget net-tools git 设置防火墙为 Iptables 并设置空规则 systemctl stop firewalld && systemctl disable firewalld yum -y install iptables-services && systemctl start iptables && systemctl enable iptables&& iptables -F && service iptables save 关闭 SELINUX swapoff -a && sed -i '/

kubeadm 安装 kubernetes

五迷三道 提交于 2020-12-23 03:14:24
kubeadm 是 Kubernetes 主推的部署工具之一,正在快速迭代开发中,当前版本为 GA,暂不建议用于部署生产环境,其先进的设计理念可以借鉴。 一、kubeadm 原理介绍 kubeadm 会在初始化的机器上首先部署 kubelet 服务,kubelet 创建 pod 的方式有三种,其中一种就是监控指定目下(/etc/kubernetes/manifests)容器状态的变化然后进行相应的操作。kubeadm 启动 kubelet 后会在 /etc/kubernetes/manifests 目录下创建出 etcd、kube-apiserver、kube-controller-manager、kube-scheduler 四个组件 static pod 的 yaml 文件,此时 kubelet 监测到该目录下有 yaml 文件便会将其创建为对应的 pod,最终 kube-apiserver、kube-controller-manager、kube-scheduler 以及 etcd 会以 static pod 的方式运行。 本次安装 kubernetes 版本:v1.12.0 当前宿主机系统与内核版本: $ uname -r 3.10 .0 -514.16 .1 .el7.x86_64 $ cat /etc/redhat-release CentOS Linux

kubernetes概述-介绍、组件、架构

此生再无相见时 提交于 2020-12-19 04:18:59
前言 kubernetes项目的github地址: https://github.com/ https://github.com/kubernetes/kubernetes kubernetes的官方站点: https://kubernetes.io/ https://kubernetes.io/docs/ kubernetes基本介绍 1.kubernetes是什么? Kubernetes是一个开源的容器管理平台,简称k8s,用于管理多个主机上的容器化应用程序;提供应用程序的快速部署,维护和扩展的基本机制;Kubernetes提供了应用程序的快速部署、扩缩容,升级的能力,利用service可以实现服务注册和发现以及转发,通过ingress可以实现七层负载均衡等功能;Kubernetes这个名字源于希腊语,意思是舵手或飞行员。谷歌在2014年开放了Kubernetes项目.Kubernetes建立在谷歌拥有大量运行生产工作量的十五年经验的基础上,结合了社区中的最佳创意和实践,社区活跃度很高。 2.kubernetes容器编排工具的优势 1)灵活部署 kubernetes支持在多种平台部署,支持私有云,公有云,混合云下部署 2)安全高效 rbac 3)负载均衡 service四层负载均衡 ingress七层负载均衡 3.kubernetes的功能 1)多租户网络隔离

【Kubernetes系列】第1篇 架构及组件介绍

社会主义新天地 提交于 2020-12-19 04:04:39
1. Kubernetes简介 Kubernetes是谷歌开源的容器集群管理系统,是Google多年大规模容器管理技术Borg的开源版本,主要功能包括: 基于容器的应用部署、维护和滚动升级 负载均衡和服务发现 跨机器和跨地区的集群调度 自动伸缩 无状态服务和有状态服务 广泛的Volume支持 插件机制保证扩展性 Kubernetes发展非常迅速,已经成为容器编排领域的领导者。 2. Kubernetes 架构及组件介绍 2.1 kubernetes 架构 Kubernetes架构如图所示: Kubernetes主要由以下几个核心组件构成: etcd 保存整个集群的状态; apiserver 提供了资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制; controller manager 负责维护集群的状态,比如故障检测、自动扩展、滚动更新等; scheduler 负责资源的调度,按照预定的调度策略将实例(Pod)调度到相应的主机上; kubelet 负责维护容器的生命周期,同时也负责存储卷和网络的管理; container runtime 负责镜像管理以及容器的真正执行,在我们系统中指的是Docker kube-proxy 负责为应用提供集群内部的服务发现和负载均衡 推荐的插件 helm - kubernetes包管理工具 kube-dns/coreDNS

k8s节点NotReady问题处理

自作多情 提交于 2020-12-19 02:32:42
我把三台虚拟机重启,发现2个节点一直处于NotReady状态,便去查找问题,到最后是因为子节点的kubelet的状态异常了,restart一下就好了,下面转一下解决的思路 昨天晚上,针对K8S环境做了一次压测,50路并发实施,早上起来看监控,发现昨晚8点之后,系统好像都宕掉了,一看master节点和一个node节点状态变成了not ready,主要定位手段如下: 1. 查看master kubelet状态 systemctl status kubelet 状态正常 2. 查看master kube-proxy状态 systemctl status kube-proxy 状态正常 3. 查看master kube-apiserver状态 systemctl status kube-apiserver 状态正常 4. 查看master kube-scheduler状态 systemctl status kube-scheduler 状态正常 5. 查看master etcd状态 systemctl status etcd 状态正常 6. 查看flannel状态 在kubernetes-dashboard上看到flannel挂掉了,查看日志如下 Failed create pod sandbox: rpc error: code = Unknown desc = failed to

kubeadm安装集群系列-2.Master高可用

徘徊边缘 提交于 2020-12-18 03:44:04
Master高可用安装 VIP负载均衡可以使用haproxy+keepalive实现,云上用户可以使用对应的ULB实现 准备kubeadm-init.yaml文件 1 apiVersion: kubeadm.k8s.io/v1beta2 2 bootstrapTokens: 3 - groups: 4 - system:bootstrappers:kubeadm:default-node-token 5 token: k60p22.go0fadibgqm2xcx8 6 ttl: 24h0m0s 7 usages: 8 - signing 9 - authentication 10 kind: InitConfiguration 11 localAPIEndpoint: 12 advertiseAddress: 10.8.31.84 13 bindPort: 6443 14 nodeRegistration: 15 criSocket: /var/run/dockershim.sock 16 name: k8s-test-master-1 17 taints: 18 - effect: NoSchedule 19 key: node-role.kubernetes.io/master 20 --- 21 apiServer: 22 timeoutForControlPlane:

GitHub Actions 完成CI CD

别说谁变了你拦得住时间么 提交于 2020-12-18 00:57:46
在之前我的部署、版本控制、CI、CD都是在 Jenkins 下来完成的 在前几天看到github上的一个新玩具actions,简直惊为天人 它能在你的仓库触发事件(Push,Pull,issue,...)的时候给你分配一台服务器执行一些预定好的命令 并且它的脚本编写非常简单只要半个小时就能学会 这篇文章主要讲述 使用github actions 做CI AND CD 以跳过jenkins的环节 1、首先 需要拉取代码到它分配的服务器 2、添加编译环境 3、代码编译 4、将编译好的结果上传到dockerhub(镜像仓库) 5、连接k8s集群 6、通知k8s进行镜像更换并做一个版本记录 有关actions 的使用入门不在累述 name: .NET Core #名字 on: [push] #触发事件 jobs: build: runs -on: ubuntu- latest #分配的服务器系统 steps: - uses: actions/ checkout@v1 #执行一个checkout@v1 脚本 - name: Setup .NET Core #将要执行的命令组名称 uses: actions /setup-dotnet@v1 #执行一个setup- dotnet@v1 脚本 它的主要作用是安装net dotnet 编译环境 with: #参数 传递给setup - dotnet

win10家庭版安装k8s单节点环境

青春壹個敷衍的年華 提交于 2020-12-17 19:31:30
1: 安装 hype-V 首先 win10家庭版 要开启 hype-V 新建如下内容的hype-v.bat文件 pushd "%~dp0" dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i" del hyper-v.txt Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL 然后保存,然后右键以管理员身份运行,等待运行完成提示重启电脑,重启即可 安装docker https://www.docker.com/get-started 下载win版本 安装即可 拉取阿里云的镜像 阿里云专门搞了一个win的镜像加载工具,镜像源在阿里云,比较快 git clone https://github.com/AliyunContainerService/k8s-for-docker-desktop.git cd k8s-for-docker-desktop

K8S从入门到放弃系列-(12)Kubernetes集群Coredns部署

江枫思渺然 提交于 2020-12-16 20:11:39
摘要:   集群其他组件全部完成后我们应当部署集群 DNS 使 service 等能够正常解析,1.11版本coredns已经取代kube-dns成为集群默认dns。 1)下载yaml配置清单 [root@k8s-master01 ~]# mkdir /opt/k8s/ coredns [root@k8s -master01 ~]# cd /opt/k8s/coredns/ [root@k8s -master01 coredns]# wget https: // raw.githubusercontent.com/coredns/deployment/master/kubernetes/coredns.yaml.sed [root@k8s-master01 coredns]# mv coredns.yaml. sed coredns.yaml 2)修改默认配置清单文件 [root@k8s-master01 ~]# vim /opt/k8s/coredns/coredns.yaml # 第一处修改 apiVersion: v1 kind: ConfigMap metadata: name: coredns namespace: kube - system data: Corefile: | .: 53 { errors health ready kubernetes cluster