Istio-VirtualService
虚拟服务(Virtual Service)以及目标规则(Destination Rule)是istio流量路由最核心的部分,虚拟服务规定了流量路由到istio服务中,每个虚拟服务都是由一组路由规则组成的。
示例1定义一个客户端,用来发送请求
apiVersion: apps/v1kind: Deploymentmetadata: name: clientspec: replicas: 1 selector: matchLabels: app: client template: metadata: labels: app: client spec: containers: - name: busybox image: busybox imagePullPolicy: IfNotPresent command: - /bin/sh - -c - sleep 3 ...
Istio-DestinationRule
在此之前,我们以及成功部署了Istio官方的bookinfo微服务。在做请求路由的示例之前,我们先来看一个名词-DestinationRule。
概念DestinationRule是Istio流量路由功能的关键部分,DestinationRule规定了流量如何路由到目标地址,你可以这么理解它,比如你现在在家,一会需要出发去公司,你使用百度导航查看从家如何去公司,结果百度导航搜索出来三条线路,也就是说从家到公司可以有3种路线,其实DestinationRule也一样,他就是定义了流量到达目标地址的路线,这么比喻是不是觉得可以理解DestinationRule了。
示例1我们先拿出一个DestionationRule的资源文件看一下:
apiVersion: networking.istio.io/v1alpha3kind: DestinationRulemetadata: name: reviewsspec: host: reviews subsets: - name: v1 labels: version: v1 - name: v2 ...
Istio-bookinfo部署
Istio官方提供了一个非常好的实战项目,来使开发者能够更加快速上手Istio,以及通过示例来了解Istio的特性。
bookinfo介绍这是Istio官方提供的一个bookinfo微服务项目,bookinfo使用了python、java、ruby、node四种语言开发了四个微服务,充分证明Istio可以在不受限于语言的环境下工作。
bookinfo微服务分为四个单独的微服务:
productpage:这个微服务主要调用details和reviews微服务,用来生成页面
details:包含书籍信息
reviews:书籍相关评论,调用ratings微服务
ratings:书籍评级信息
reviews微服务有3个版本:
v1版本不会调用ratings服务,也就是页面不会显示星级评分
v2版本调用ratings服务,使用黑色星级图标评分
v3版本调用ratings服务,使用红色星级图标评分
实行注入我们这边来使用默认名称空间default来部署我们的bookinfo微服务,所以我们需要对default名称空间下的资源实行istio注入,我们就使用自动注入把,当然你也可以手工的 ...
Linux挂载windows共享文件夹
创建windows共享文件夹首先先在一个磁盘创建一个文件夹,我们这里就命名win-volumes,然后鼠标右击win-volumes,选择属性,在共享里面点击共享
然后添加相应的用户,设置不同的权限,这边我们就用Administrator,最后点击共享
我们需要记住这个网络路径
挂载共享目录在linux上安装CIFS
yum -y install cifs-utils
在根目录创建一个app目录作为挂载点
mkdir /app
挂载刚刚创建的共享目录
mount -t cifs -o username=Administrator,password="abc123" //QAIN2DZP76PK1NC/win-volumes /app
查看挂载情况
df -hT
Rancher集成Harbor
配置选择 Default项目选择 资源-密文选择 镜像库凭证列表,然后点击 添加凭证取个名称,然后选择 自定义,修改harbor地址,填写用户名和密码自此,rancher 跟 harbor 镜像仓库就关联成功了。
Rancher导入Kubernetes集群
如果你已经安装好了Kubernetes集群,并且安装了Rancher,那么我们就将k8s集群导入到rancher里来
配置点击右上角 添加集群点击 导入起个名称 ,然后点击 创建这边我们先看最后一行,箭头标记的那个,其实他就是使用curl下载rancher相关的资源文件,然后将他交给 kubectl 去执行复制最后一行到k8s-master主机上执行,等待资源pod起来
kubectl get pods -n cattle-system
最后可以看到rancher界面显示集群已经添加成功
Rancher安装
安装
请保证已经安装好docker
docker pull rancher/rancher:v2.3.3
启动rancher#rancher目录mkdir -p /usr/local/rancher
docker run -d --restart=unless-stopped \--name=rancher \-p 80:80 -p 443:443 \-v /usr/local/rancher:/usr/local/rancher \rancher/rancher:v2.3.3
配置设置admin的密码进去之后右下角还可以设置语言
Filebeat收集tomcat日志
首先tomcat对我们有用的日志文件主要是catalina和localhost_access_log,下面主要介绍如何收集这2种日志
tomcat使用log4j日志输出先去这个地址下载对应tomcat版本的相关jar包:http://archive.apache.org/dist/tomcat/
就是我下面图片红框标注的2个jar
我们进入tomcat的lib目录下,将tomcat-juli-adapters.jar放入到里面
然后在lib目录下执行
wget https://archive.apache.org/dist/logging/log4j/1.2.17/log4j-1.2.17.jar
接着进入tomcat的bin目录,先将原本里面的tomcat-juli.jar重命名备份,然后再将我们刚刚下载的tomcat-juli.jar放入到里面
mv tomcat-juli.jar tomcat-juli.jar.bak#将刚刚下载的tomcat-juli.jar放进bin目录
进入tomcat的conf目 ...
Filebeat收集Nginx日志
配置nginx日志输出格式log_format access_json_log '{"@timestamp":"$time_local",' '"http_host":"$http_host",' '"clinetip":"$remote_addr",' '"request":"$request",' '"status":"$status",' '"size ...
推荐一款写Kubernetes的YAML的利器
在Kubernetes运维工作中,需要经常编写各种YAML资源文件,如果一个一个手敲,效率不但低下,而且容易出错,下面推荐一款工具+插件给大家,可以非常快速、有效的编写资源文件。我这边使用的是JetBrains的WebStorm2020.1.1版本编写Kubernetes资源文件的,当然你也可以使用他的其他产品PyCharm、IDEA等等
下载地址https://www.jetbrains.com/webstorm/download/
安装Kubernetes插件点击WebStorm左上角 File - Setting
使用使用起来也非常简单,创建项目后,我们新建一个yaml文件,然后就可以开始编写资源文件了我们只需要输入字母就可以看到提示啦,直接回车就是补全