角色 节点名 节点ip master n1 192.168.14.11 节点1 n2 192.168.14.12 节点2 n3 192.168.14.13 https://raw.githubusercontent.com/lannyMa/scripts/master/k8s/ 准备token.csv和bootstrap.kubeconfig文件 - 在master生成token.csv BOOTSTRAP_TOKEN="41f7e4ba8b7be874fcff18bf5cf41a7c"…
我会陆陆续续小结下. dns相关 dns策略 1.集群内 2.指定内网 subdomain 3.访问互联网 resovel.conf kube-dns架构图解及策略 nginx-ingress: DNS Policy导致hostnetwork网络问题 coredns/kube-dns配置subdomain 有状态集群 我研究了下有状态集群的特点: 有状态集群: 有状态,无状态的区别 stateful的特点 现不仅能解决每个有状态节点有各自的数据, 数据还得同步. Kubernetes如何支持有状…
默认2个参数就可以启动(必需) kube-apiserver \ --service-cluster-ip-range=10.254.0.0/16 \ --etcd-servers=http://192.168.14.132:2379 默认http是127.0.0.1:8080 https://0.0.0.0:6443 设置insecure-bind-address(默认127.0.0.1) kube-apiserver \ --service-cluster-ip-range=10.254.0…
k8s集群部署 1. 角色分配 角色 IP 安装组件 k8s-master 10.0.0.170 kube-apiserver,kube-controller-manager,kube-scheduler,etcd k8s-node0 10.0.0.113 kubelet,kube-proxy,docker,flannel,etcd k8s-node1 10.0.0.56 kubelet,kube-proxy,docker,flannel,etcd 2. 环境预备 #系统更新 sudo yum…
redis主从集群搭建及容灾部署(哨兵sentinel) Redis也用了一段时间了,记录一下相关集群搭建及配置详解,方便后续使用查阅. 提纲 l  Redis安装 l  整体架构 l  Redis主从结构搭建 l  Redis容灾部署(哨兵sentinel) l  Redis常见问题 Redis安装 发行版:CentOS-6.6 64bit 内核:2.6.32-504.el6.x86_64 CPU:intel-i7 3.6G 内存:2G 下载redis,选择合适的版本 [root@rocket…
基于Hexo搭建博客并部署到Github Pages 之前在简书上写东西,觉得自己还是太浮躁.本来打算用Flask自己写一个,以为是微框架就比较简单,naive.HTML.CSS.JS等都要学啊,我几乎没有这方面的基础,写到Web表单那儿果断弃了,转向简单的Hexo + Github Pages.不过要想搭建博客的同时巩固Python,Flask确实是一个不错的选择. 获取Github Pages 去Github官网注册账号 新建一个repo,注意名称一定是your_username.githu…
搭建jenkins实现自动化部署 一.安装jenkins 1.添加yum repos,然后安装 sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key 注:如果上边的执行成功就不用再执行这两行了 sudo wget -O /etc/yum.repos.d/j…
Redis也用了一段时间了,记录一下相关集群搭建及配置详解,方便后续使用查阅. 提纲 Redis安装 整体架构 Redis主从结构搭建 Redis容灾部署(哨兵sentinel) Redis常见问题 Redis安装 发行版:CentOS-6.6 64bit 内核:2.6.32-504.el6.x86_64 CPU:intel-i7 3.6G 内存:2G 下载redis,选择合适的版本 [root@rocket software]# wget http://download.redis.io/re…
目录 1. 本地搭建 1.1 安装Hugo 1.2 创建站点 1.3 新建页面和文章 1.4 使用主题 1.5 修改配置文件 1.6 预览 2. 部署 之前担心过现有博客平台(如博客园,CSDN)突然倒闭了,博文特别是插图来不及备份:也考虑过自建博客可以更随意,因此有了自建博客的打算.花了两天时间,走了一些弯路,有一些经验总结: 做事情一定要搞清楚需求,掂量自己的实力.原本我只是想做一个备份,那么本地写好markdown,存好插图,再同步到博客园就行了,没有必要费力建博客搭网站.虽然Hexo和H…
centos系统搭建PXE网络安装centos+ubuntu+Windows Centos搭建PXE,安装部署操作系统 一 . 原理: 1.什么是PXE: PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer prot…
Haproxy配合Nginx搭建Web集群部署实验 1.Haproxy介绍 2.Haproxy搭建 Web 群集 1.Haproxy介绍: a)常见的Web集群调度器: 目前常见的Web集群调度器分为软件和硬件 软件通常使用开源的 LVS.Haproxy.Nginx LVS性能最好,但是搭建相对复杂:Nginx的upstream模块支持集群功能,但是对集群节点健康检查功能不强,高并发没有Haproxy好 硬件一般使用的比较多的是F5,也有很多人使用梭子鱼.绿盟等国内产品. b)Haproxy应用…
本博客搭建k8s集群1.12.2版本 1. 准备2台以上最低2核4G的服务器 2. 关闭机器的防火墙 12 systemctl disable firewalldsystemctl stop firewalld 生产环境下建议不要关闭防火墙,只开放k8s所用的端口 3. 配置docker和k8s仓库为阿里云镜像仓库 首先选择一台性能比较好的机器作为主节点 1 wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/do…
准备 服务器:3台机器--1台主.2台工作节点,可以使用virtualbox 搭建虚拟机 主机名 centos version ip docker version flannel version 主机配置 备注 master01 7.7.1908 192.168.56.101 19.03.8 v0.12.0-amd64 2P 2G 20G node01 7.7.1908 192.168.56.102 19.03.8 v0.12.0-amd64 2P 2G 20G node02 7.7.1908…
之前有写过对于传统项目的性能测试监控,但是对于目前市场占比已经很低,大部分项目使用k8s,今天讲一下对于k8s如何去监控. 对于k8s的监控我们所有的操作都要在master下进行. 一.部署grafana 作者会提供一个grafana的yaml文件,对于文件进行适配项目的修改即可 1.修改配置文件 spec: containers: - name: grafana #镜像版本号 image: grafana/grafana:7.2.1 ports: - containerPort: 3000 e…
一介绍 flannel是CoreOS提供用于解决Dokcer集群跨主机通讯的覆盖网络工具.它的主要思路是:预先留出一个网段,每个主机使用其中一部分,然后每个容器被分配不同的ip:让所有的容器认为大家在同一个直连的网络,底层通过UDP/VxLAN等进行报文的封装和转发.flannel是Overlay网络的一种,也是将源数据包封装在另一种网络包里面进行路由转发和通信,目前已经支持UDP,VXLAN,host-gw,AWS,VPC,GCE路由等级传输,推荐 vxlan或者host-gw 二搭建(这里以…
背景 首先这标题有点绕,我先解释下: 首先我们有静态服务器,上面某个目录有Vue路由history模式打包的应用程序(也就是build后的产物): 但是静态服务器一般不做对外域名用的,我们需要在k8s nginx-ingress上做下域名二级目录代理,转发到该静态目录: 这就是本文的背景,相信也是很多开发/运维同学的需求: 由上: #我们静态服务目录是,/cso/ https://static.chinacloudapi.cn/cso/ #静态服务下文件的url是 https://static.…
原文 https://www.myf5.net/post/2343.htm 现象: 从内部某个pod的容器里直接访问service的cluster地址,请求可以被正常转发到各个node上的pod里 但是从外部网络,访问nodeport发布的服务,则发现请求不能被转发到其他node上 排错发现,请求没有被转发到其他node的物理接口,说明问题出在接受请求的那台node本身上 查看iptables filter表发现,转发数据包匹配一条docker创建的规则导致丢弃 [root@docker3 ~]…
意外停掉一台node的kubelet,发现调度有问题,研究了下调度的细节 k8s架构 控制层- kubelet(配合节点docker工作) 数据层- kube-proxy 逻辑图: object 参考: https://kubernetes.io/docs/concepts/# 各个组件各司其职 参考: http://www.cnblogs.com/jianyuan/p/5063530.html pod rc svc之间的关系 参考: 启动一个简单的集群: tomcat+mysql 测试pod调…
所有节点安装nfs yum install nfs-utils rpcbind -y mkdir -p /ifs/kubernetes echo "/ifs/kubernetes 192.168.x.0/24(rw,sync,no_root_squash)" >> /etc/exports 仅在nfs服务器上 systemctl start rpcbind nfs 节点测试没问题即可 可以参考下以前写的: http://blog.csdn.net/iiiiher/artic…
k8s架构图解 启动参数及证书梳理 master端必须要装flannel 注: flannel网络能确保各节点间 Pod 网段实现互通 master 节点与 node 节点上的 Pods 通过 Pod 网络通信,所以需要在 master 节点上部署 Flannel 网络. 外部访问集群的方式: 1,ingress 2,通过apiserver 这种方式结合kube-proxy kubectl proxy --address='10.64.3.7' --port=8086 --accept-host…
一直没有时间完成drone系列文章.drone-wechat插件实现了一半,由于企业微信token申请比较麻烦,所以也没有进展.今天抽出时间,研究了一下scp插件,主要目的是实现非容器项目的部署.其实就是借助scp插件,将构建好的go项目可执行文件和配置文件发布到指定主机上.本项目依旧基于baa-cicd项目. .drone.yml 直接上.drone.yml 文件 workspace: base: /go path: src/gogs.xxx.com/baa-cicd pipeline: bu…
作者 | 张振 阿里巴巴高级技术专家 一.资源元信息 1. Kubernetes 资源对象 我们知道,Kubernetes 的资源对象组成:主要包括了 Spec.Status 两部分.其中 Spec 部分用来描述期望的状态,Status 部分用来描述观测到的状态. 今天我们将为大家介绍 K8s 的另外一个部分,即元数据部分.该部分主要包括了用来识别资源的标签:Labels, 用来描述资源的注解:Annotations, 用来描述多个资源之间相互关系的 OwnerReference.这些元数据在…
k8s用命名空间namespace把资源进行隔离,默认情况下,相同的命名空间里的服务可以相互通讯,反之进行隔离. 服务Service 1.1 Service Kubernetes中一个应用服务会有一个或多个实例(Pod,Pod可以通过rs进行多复本的建立),每个实例(Pod)的IP地址由网络插件动态随机分配(Pod重启后IP地址会改变).为屏蔽这些后端实例的动态变化和对多实例的负载均衡,引入了Service这个资源对象,如下所示: apiVersion: v1 kind: Service met…
Ingress是kubernetes集群对外提供服务的一种方式.ingress部署相对比较简单,官方把相关资源配置文件,都已经集合到一个yml文件中(mandatory.yaml),镜像地址也修改为quay.io. 1.部署 官方地址:https://github.com/kubernetes/ingress-nginx 1.1 下载部署文件: ## mandatory.yaml为ingress所有资源yml文件的集合### 若是单独部署,需要分别下载configmap.yaml.namespa…
集群部署好后,如果我们想知道集群中每个节点及节点上的pod资源使用情况,命令行下可以直接使用kubectl top node/pod来查看资源使用情况,默认此命令不能正常使用,需要我们部署对应api资源才可以使用此命令.从 Kubernetes 1.8 开始,资源使用指标(如容器 CPU 和内存使用率)通过 Metrics API 在 Kubernetes 中获取, metrics-server 替代了heapster.Metrics Server 实现了Resource Metrics API…
Dashboard是k8s的web界面,用户可以用 Kubernetes Dashboard 部署容器化的应用.监控应用.并对集群本身进行管理,在 Kubernetes Dashboard 中可以查看集群中应用的运行状态. 1.下载yaml配置文件 wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml 2.创建dash…
摘要: 集群其他组件全部完成后我们应当部署集群 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.c…
k8s快速入门 1.快速创建k8s集群 参考网站:https://kubernetes.io/docs/tutorials/kubernetes-basics 点击教程菜单 1. Create a Cluster -> Interactive Tutorial - Creating a Cluster note:通过 Kubernetes 的命令行工具 kubectl 远程管理集群 minikube start 创建集群 kubectl cluster-info 查看集群信息 Kubernete…
描述 ceph-csi扩展各种存储类型的卷的管理能力,实现第三方存储ceph的各种操作能力与k8s存储系统的结合.通过 ceph-csi 使用 ceph rbd块设备,它动态地提供rbd以支持 Kubernetes 持久化存储,并将这些rbd映射给 pod做为块设备持久化数据使用. Ceph 将pod存在块设备的数据以副本机制的方式存储在多个osd上,实现pod数据具有更高的可靠性. 部署环境信息 OS: CentOS Linux release 7.9.2009 (Core) Kubectl…
hostPort相当于docker run -p 8081:8080,不用创建svc,因此端口只在容器运行的vm上监听 缺点: 没法多pod负载 $ cat pod-hostport.yaml apiVersion: v1 kind: Pod metadata: name: webapp labels: app: webapp spec: containers: - name: webapp image: tomcat ports: - containerPort: 8080 hostPort:…