- 博客(40)
- 收藏
- 关注
原创 x86架构机器构建多CPU架构镜像
多CPU架构镜像前提条件目前使用的镜像都为x86架构的镜像,镜像架构与系统架构不匹配将无法进行正常部署。在进行本地构建镜像时,本地架构多为x86架构,无法正常构建其他架构的镜像,所以需要使用CPU虚拟化的方式来构建多CPU架构镜像。也可以直接通过其他CPU架构机器构建各自适配的镜像,这里使用x86架构机器构建其他架构(arm64)的镜像使用虚拟化构建有2种方式:Mac、windows专业版可以通过开启CPU虚拟化、安装docker deskTop 进行构建x86架构的Linux系统可以通过启动b
2021-02-20 17:11:16 864
原创 k8s使用glusterfs+heketi作为后端存储
环境准备modprobe dm_thin_poolmodprobe dm-snapshotcat >/etc/modules-load.d/glusterfs.conf<<EOFdm-snapshotdm_thin_poolEOF#yum install -y glusterfs-fuse lvm2yum -y localinstall --disablerepo=* env_package/*.rpm#如需开启防火墙。需开放端口iptables -N heket
2021-02-20 16:44:07 959
原创 对象存储
对象存储介绍简介作为文件系统的磁盘,操作系统不能直接访问对象存储。相反,它只能通过应用程序级别的API访问。ceph是一种分布式对象存储系统,通过ceph对象网关提供对象存储接口,也称为RADOS网关(RGW)接口,它构建在ceph RADOS层之上。RGW使用librgw(RADOS Gateway library)和librados,允许应用程序与ceph对象存储建立连接。RGW为应用程序提供了一个RESTful S3/swift兼容的接口,用于在ceph集群中以对象的形式存储数据。ceph还支持多
2021-02-20 16:42:18 1633
原创 istio部分问题定位及问题记录
istio问题定位分析服务调用异常一、定位到异常服务多服务调用链的问题定位。单服务的调用出现问题可直接查看网关或服务的日志确定具体问题。获取链路ID或traceId通过ID查询到发生异常调用的服务二、分析响应状态或日志1、查看服务状态(运行状态、可读探针、存活探针)2. 查看该请求的response_code(状态码)和response_flags(响应标识)1. response_flags为"-":常表现为TCP请求或程序异常2. response_flags为特定标识:可对
2021-02-20 16:38:55 2747
原创 svc拓扑感知实现原理
cluster ip工作原理某个node节点上的pod对集群的某个服务发起调用,首先通过OUTPUT链,然后按照规则链顺序一级一级往下找,直到iptables识别到调用服务的endpoint后端对应的pod IP地址服务状态[root@master test]# kubectl get pods -owideNAME READY STATUS RESTARTS AGE IP NODE NOM
2021-02-20 16:37:41 587
原创 pod拓扑传播限制和svc拓扑感知
pod拓扑传播限制k8在1.19版本之前,需要配置apiserver、scheduler启用该功能。配置feature gate开启EvenPodsSpreadmaxSkew描述Pod可能不均匀分布的程度。它是给定拓扑类型的任何两个拓扑域中的匹配Pod数量之间的最大允许差异。它必须大于零。其语义根据以下值的不同而有所不同whenUnsatisfiable:当whenUnsatisfiable等于“ DoNotSchedule”时,maxSkew是目标拓扑中匹配的容器数与全局最小值之间的最
2021-02-20 16:36:40 810
原创 kubeadm升级k8s集群
版本兼容性K8s所有组件 kube-controller,kube-scheduler,kubelet的版本号不得高于kube-apiserver的版本号些组件的版本号可低于kube-apiserver的1个次要版本在一个高可用集群中,多个kube-apiserver间的版本号最多只能相差一个次版本号最好所有组件与kube-apiserver版本号完全一致升级Kubernetes集群时,最先升级的核心组件就是kube-apiserver只能向上升级为一个次要版本kubectl版本最多只能比k
2021-02-20 16:35:27 666
原创 集群联邦(Federation)
联邦联合可以轻松管理多个群集。 它通过提供2个主要构件来实现:跨群集同步资源:联邦可以使多个群集中的资源保持同步。 例如,可以确保多个群集中部署相同的程序。跨群集发现:联邦提供了自动配置DNS服务器和负载均衡器与所有群集后端的功能。例如,您可以确保可以使用全局VIP或DNS记录来访问多个群集的后端。高可用:通过在群集之间传播负载并自动配置DNS服务器和负载平衡器,联邦会将群集故障的...
2019-04-15 17:03:06 4246
原创 Sidecar注入容器
介绍使用 Sidecar 模式部署服务网格时,无需在节点上运行代理(因此您不需要基础结构的协作),但是集群中将运行多个相同的 Sidecar 副本。从另一个角度看:我可以为一组微服务部署到一个服务网格中,你也可以部署一个有特定实现的服务网格。在 Sidecar 部署方式中,你会为每个应用的容器部署一个伴生容器。Sidecar 接管进出应用容器的所有流量。在 Kubernetes 的 Pod 中...
2019-04-15 17:02:44 2719
原创 Redhat配置yum
查看、卸载原有yum查看rpm -qa | grep yumyum-rhn-plugin-2.0.1-10.el7.noarchyum-metadata-parser-1.1.4-10.el7.x86_64yum-3.4.3-161.el7.noarchyum-utils-1.1.31-50.el7.noarchyum-langpacks-0.4.2-7.el7.noarch...
2019-04-15 17:02:31 2856
原创 Pilot
流量管理机制Pilot高层架构Pilot在Istio的控制面板中负责流量管理Istio流量管理相关组件图中红色的线表示控制流,黑色的线表示数据流。蓝色部分为和Pilot相关的组件。控制面板组件Discovery Services对应的docker为istio-release/pilot,进程为pilot-discovery,该组件的功能包括:从Service prov...
2019-04-15 17:02:16 1004
原创 Mixer
Mixer功能前置条件检查(Precondition Checking):某一服务响应外部请求前,通过Envoy向Mixer发送Check请求,检查该请求是否满足一定的前提条件,包括白名单检查、ACL检查等。配额管理(Quota Management):当多个请求发生资源竞争时,通过配额管理机制可以实现对资源的有效管理。遥测报告上报(Telemetry Reporting):该服务处理完请...
2019-04-15 17:01:47 934
原创 K8亲和性
nodeSelector调度方式label是kubernetes中一个非常重要的概念,用户可以非常灵活的利用标签来管理集群中的资源,比如最常见的一个就是service通过匹配标签去匹配Pod资源,而Pod的调度也可以根据节点的标签来进行调度。nodeSelector使用标签将pod强制调度到指定node节点上亲和性和反亲和性跳读亲和性可以分为软策略、硬策略两种。软策略:preferre...
2019-04-15 17:01:23 54768
原创 K8s管理
节点管理删除节点#设置node-1节点不参与pod的调度[root@master ~]# kubectl cordon node-1 node/node-1 cordoned[root@master ~]# kubectl get nodesNAME STATUS ROLES AGE VERSIONmaster...
2019-04-15 17:00:55 465
原创 k8+容器热备
安装docker准备nginx(nginx:v3)和keepalived镜像(osixia/keepalived)生成热备配置文件(docker-compose.yml Dockerfile nxinx.conf keepalived.conf check_nginx.conf)docker-compose.ymlversion: '2'services: keepalive...
2019-04-01 09:31:06 983
原创 Istio遥测
查询普罗米修斯的指标基于已经搭建好的istio环境和bookinfo应用创建配置[root@k8-master-1 ~]# cat new_telemetry.yaml apiVersion: "config.istio.io/v1alpha2"kind: metricmetadata: name: doublerequestcount namespace: istio...
2019-04-01 09:30:55 368
原创 Istio问题
Error: configmaps is forbiddenError: configmaps is forbidden: User “system:serviceaccount:kube-system:default” cannot list configmaps in the namespace “kube-system”#在kube-system命名空间中创建tiller账户kubec...
2019-04-01 09:30:46 1927
原创 Istio-熔断。镜像
断路器添加httpbin示例应用#自动注入kubectl apply -f istio-1.0.0/samples/httpbin/httpbin.yaml#手动注入kubectl apply -f <(istioctl kube-inject istio-1.0.0/samples/httpbin/httpbin.yaml)配置断路器1.创建目标规则cat &l...
2019-04-01 09:30:36 634
原创 Istio熔断
断路器实现模型apiVersion: networking.istio.io/v1alpha3kind: DestinationRulemetadata: name: httpbin spec: host: httpbin trafficPolicy: connectionPool: #设置上游服务的连接池。 tcp: #连接数限制,对 ...
2019-04-01 09:30:24 910 1
原创 Istio介绍
服务网格服务网格(Service Mesh)这个术语通常用于描述构成这些应用程序的微服务网络以及应用之间的交互。随着规模和复杂性的增长,服务网格越来越难以理解和管理。它的需求包括服务发现、负载均衡、故障恢复、指标收集和监控以及通常更加复杂的运维需求,例如 A/B 测试、金丝雀发布、限流、访问控制和端到端认证等。服务网格的工作Istio 将服务请求路由到目的地址,根据中的参数判断是到生产环...
2019-04-01 09:30:14 1295
原创 Istio安装及流量测试
Istio部署(本次安装以1.0.0为例)下载istio#macOS 或者 Linux 系统,使用如下命令自动下载和解压最新的发行版curl -L https://git.io/getLatestIstio | sh -或者到如下页面,根据操作系统下载对应发行版Istio release1。解压安装文件,切换到文件所在目录。安装文件目录下包含:install/ 目录下是 Kube...
2019-04-01 09:30:03 759
原创 Istio安全
认证Istio授权启用授权使用RbacConfig对象启用Istio授权。RbacConfig对象,可以指定mode值进行权限限制:OFF:禁用Istio授权。ON:为网格中的所有服务启用了Istio授权。ON_WITH_INCLUSION:仅对inclusion字段中指定的服务和命名空间启用Istio授权。ON_WITH_EXCLUSION:对网格中的所有服务启用Ist...
2019-04-01 09:29:37 356
原创 Istio v1alpha3
总体架构discovery service : 从 Kubernetes apiserver list/watch service、endpoint、pod、node 等资源信息,监听 istio 控制平面配置信息(如VirtualService、DestinationRule等), 翻译为 Envoy 可以直接理解的配置格式。proxy : 也就是 Envoy,直接连接 discover...
2019-04-01 09:29:26 670
原创 io测试
nmon下载nmon安装包#这里下载的centos系统的nmon包tar -zxvf centos7.tar.gzmv nmon_x86_64_centos7 /usr/local/bin/nmonnmon_analyser下载zip包在物理机上解压文件使用Excel打开nmon analyser v60.xlsm选择左下放的Analyser点击跳转的页面中的Analyze...
2019-04-01 09:29:14 1170
原创 io
yum -y install iotopyum -y install sysstat#读hdparm -t --direct /dev/sdb1-t参数为评估硬盘的读取效率(不经过磁盘cache)。-T参数为评估硬盘的读取效率(经过磁盘cache)direct 测试过程绕过机器自带的buffer#写time dd if=/dev/sdb1 of=/root/test.di...
2019-03-30 14:40:58 118
原创 Helm和Tiller安装Istio
安装Istio为Tiller配置service accountkubectl create -f install/kubernetes/helm/helm-service-account.yaml使用service account安装Tiller这里安装的Tiller版本要和helm版本一致,否则版本可能不兼容#这里直接指定镜像。helm init --service-a...
2019-03-30 14:40:41 933
原创 Ceph问题
激活监控节点错误#执行命令报错ceph-deploy mon create-initial可能的原因:防火墙问题,安装过ceph环境没有清理。#删除节点残存配置以便重新安装sudo rm -rf /etc/ceph/*sudo rm -rf /var/lib/ceph/*sudo rm -rf /var/log/ceph/*sudo rm -rf /var/run/ceph/...
2019-03-30 14:40:25 804
原创 ceph容器化-ceph daemon
docker pull ceph/daemon:tag-build-master-jewel-centos-7mkdir -p /etc/cephmkdir -p /var/lib/ceph/REPO=ceph/daemonTAG=tag-build-master-jewel-centos-7REPO_TAG=${REPO}:${TAG}##### 网络参数CEPH_PUBL...
2019-03-30 14:40:15 1064
原创 ceph命令
ceph health 查看监控状态ceph -w 查看ceph的实时运行状态ceph -s 查看状态信息ceph health detail 查看集群健康状态细节ceph mon stat 查看mon的状态信息ceph quorum_status 查看mon的选举状态ceph mon dump 查看mon的映射信息ceph mon remove mon-3 删除一个mon节点(m...
2019-03-30 14:40:02 295
原创 Ceph块设备、文件系统操作
块设备创建并操作使用块rbd创建rbd create --size 1024 foo #创建大小为1024M的块设备镜像rbd list #查看rbd map foo #映射到内核,并格式化块设备mkfs.ext4 -m0 /dev/rbd/rbd/foo #创建文件系统,将image格式化为ext4格式的文件系统mkdir /mnt/rbd #创建挂载目录mount /dev/...
2019-03-30 14:39:50 803
原创 Ceph安装部署
环境准备主机IP1IP2功能ceph1192.168.233.212102.168.145.212deploy、mon*1 、osd *2ceph2192.168.233.213102.168.145.213mon*1 、osd *2ceph3192.168.233.214102.168.145.214mon*1 、osd *2IP1...
2019-03-30 14:39:24 371
原创 ceph daemon镜像容器化ceph问题
问题1以docker容器启动ceph集群,比之kubernetes缺少故障修复能力。问题2创建PVC会自动创建PV。可能报错kube-controller-manager找不到rbd,检查rbd-provisioner相关是否创建成功。问题3创建pod报错。这是由于调度到的这个节点上ceph-common库没有安装(或者版本太旧)导致。安装(或升级)该库即可问题4问题5cep...
2019-03-30 14:39:10 552
原创 centos镜像安装nginx和keepalived
镜像安装nginx(http模块:nginx_upstream_check_module)yum install -y gcc gcc-c++yum install -y pcre pcre-devel openssl openssl-devel zlib zlib-develyum install -y patch wget unzip vimwget http://nginx....
2019-03-30 14:38:48 403
原创 shell发送email
配置mailx使用smtp服务器发送邮件安装[root@192 ~]# yum -y install mailx sendmail配置文件[root@192 ~]# vim /etc/mail.rc #添加内容set from=931145352@qq.comset smtp=smtp.qq.comset smtp-auth-user=931145352@qq.comset sm...
2018-11-05 10:18:28 1255
原创 noVNC
下载noVNCyum -y install gitgit clone git://github.com/kanaka/noVNC安装noVNCyum -y install tigervnc-server#创建安全连接openssl req -new -x509 -days 365 -nodes -out self.pem -keyout self.pem运行noVNC...
2018-11-05 10:18:15 763
原创 KVM和VNC
KVMKVMKVM:前身就是qemu,(全虚拟化的软件CPU、IO、内存),主要负责:虚拟化CPU、和内存。通过/dev/kvm访问内核实现虚拟化QEMU:虚拟化I/O(通过硬件辅助virtio)实现虚拟化。工具集安装KVM查看是否支持虚拟化cat /proc/cpuinfo#查看flags是否有SVM或VMXcat /proc/cpuinfo|grep svm...
2018-11-05 10:18:01 2244
原创 linux构建本地仓库与github连接
yum -y install gitssh-keygen -t rsacd ~/.ssh/配置githubSSH keys,将*。hub的内容拷贝过去ssh -T git@github.com #测试初始化配置git config --global user.name anyyyygit config --global user.email 931145352@qq.com...
2018-11-05 10:17:06 301
原创 Fabric
Fabric简介Fabric是基于Python实现的SSH命令行工具,简化了SSH的应用程序部署及系统管理任务,它提供了系统基础的操作组件,可以实现本地或远程shell命令,包括:命令执行、文件上传、下载及完整执行日志输出等功能。Fabric在Paramiko的基础上做了更高一层的封装,操作起来会更加简单。Fab 有三个封装,run,sudo 和env 它们的作用是run执行远程命令,su...
2018-11-05 10:16:22 601
原创 简单服务器和客户端的连接
服务器# -*- coding: utf-8 -*-import socketimport threadingfrom docutils.parsers.rst.directives import encoding#进行封装。第一个:服务器之间网络通信,第二个:流式socket,for TCPs=socket.socket(socket.AF_INET,socket.SOCK_STR...
2018-09-18 09:13:08 5147
原创 Linux实现远程连接数据库
远程连接数据库1,创建数据库安装mariadb,mariadb-server 打开数据库并且进行远程连接设置 systemctl start mariadbmysql -u root -p 添加对远程设备的权限设置和密码设置 * .* 前面的※号表示对所有用户,后面的※表示公开所有的数据 之后exit退出...
2018-09-06 19:45:00 21755
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人