Linkerd2安装和使用
官方地址:https://linkerd.io/2/getting-started/步骤1:安装CLI如果这是您第一次运行Linkerd,则需要将命令行界面(CLI)下载到本地计算机上。此CLI与Linkerd进行交互,包括将控制平面安装到Kubernetes集群上。要安装CLI,请运行:curl -sL https://run.linkerd.io/install | sh或者,您可...

全栈工程师开发手册 (作者:栾鹏)
架构系列文章
官方地址:https://linkerd.io/2/getting-started/
步骤1:安装CLI
如果这是您第一次运行Linkerd,则需要将命令行界面(CLI)下载到本地计算机上。此CLI与Linkerd进行交互,包括将控制平面安装到Kubernetes集群上。
要安装CLI,请运行:
curl -sL https://run.linkerd.io/install | sh
或者,您可以直接通过Linkerd版本页面下载CLI 。
接下来,将linkerd客户端复制到环境变量目录下/usr/local/bin/下,并重命名为linkerd:这样就能在任何地方使用linker命令了
cp linkerd-stable-2.6.0 /usr/local/bin/linkerd
使用以下命令验证CLI是否已安装并正常运行:
linkerd version
您应该看到CLI版本,以及Server version: unavailable。这是因为您尚未在集群上安装控制平面。不用担心,您将很快安装控制平面。
步骤3:将Linkerd安装到群集上
现在您已经有了在本地运行的CLI和可以使用的集群,现在该将控制平面安装到其自己的名称空间中了(默认情况下为 linkerd)。为此,请运行:
linkerd install >> deploy-linker.yaml
该linkerd install命令将生成带有所有必要控制平面资源的Kubernetes清单。(如果需要,您可以检查输出!)。
deploy-linker.yaml文件中有部分镜像是无法拉取的,需要我们转为或制作为国内镜像. 我们可以使用github和阿里云仓库来制作成国内镜像,参考:https://blog.csdn.net/luanpeng825485697/article/details/83378731
我这里已经制作了部分版本的镜像
gcr.io/linkerd-io/web:stable-2.6.0
替换为
registry.cn-shenzhen.aliyuncs.com/luanpeng/gcr.io.linkerd-io.web:stable-2.6.0
gcr.io/linkerd-io/proxy:stable-2.6.0
替换为
registry.cn-shenzhen.aliyuncs.com/luanpeng/gcr.io.linkerd-io.proxy:stable-2.6.0
gcr.io/linkerd-io/proxy-init:v1.2.0
替换为
registry.cn-shenzhen.aliyuncs.com/luanpeng/gcr.io.linkerd-io.proxy-init:v1.2.0
prom/prometheus:v2.11.1
替换为
registry.cn-shenzhen.aliyuncs.com/luanpeng/prom.prometheus:v2.11.1
gcr.io/linkerd-io/grafana:stable-2.6.0
替换为
registry.cn-shenzhen.aliyuncs.com/luanpeng/gcr.io.linkerd-io.grafana:stable-2.6.0
这样在通过kubectl apply将清单插入其中将指示Kubernetes将这些资源添加到您的集群中,要求kubernetes在1.12版本以上。
根据群集的Internet连接速度,群集可能需要一两分钟才能提取Linkerd映像。发生这种情况时,我们可以通过运行以下命令来验证安装:
linkerd check
该命令将耐心等待,直到Linkerd已安装,正在运行并变得正常为止。
打开dashboard
本地代理的方式
linkerd dashboard &
开发 linkerd-web service的端口
为应用注入
1 命令注入
kubectl get -n yournamespace deploy -o yaml |linkerd inject - |kubectl apply -f -
此命令检索在yournamespace 名称空间中运行的所有部署,通过运行linkerd inject,然后将其重新应用于集群。该linkerd inject命令将注释添加到Pod规范,指示Linkerd添加(“注入”)数据平面的代理作为容器添加到Pod规范。
2 也可以通过手动添加后apply文件
也就是在deployment的spec/template中添加 annotations: linkerd.io/inject: enabled
spec:
selector:
matchLabels:
app: yourapp
version: v1.0.0
replicas: 2
template:
metadata:
annotations:
linkerd.io/inject: enabled
# linkerd.io/inject: disabled 禁用自动注入
labels:
app: yourapp
version: v1.0.0
spec:
注入效果
每个应用pod会增加两个容器
- linkerd-init,一个Kubernetes 初始化容器 ,配置iptables为通过代理自动转发所有传入和传出的TCP流量。(请注意,如果已启用Linkerd CNI插件,则此容器不存在。)
- linkerd-proxy,Linkerd数据平面代理本身。
与控制平面一样,可以验证所有数据在数据平面上的工作方式是否正常。要执行此检查,请运行:
linkerd -n yournamespace check --proxy
监控
linkerd -n yournamespace stat deploy 实时流量指标
linkerd -n yournamespace top deploy 查看每种请求的统计情况(次数,最大时延,最小时延等)
linkerd -n yournamespace tap deploy 查看每次请求的情况
而这些都是可以在web界面中查看到的,所以我们可以通过web界面查看.
同时在web界面还配有grafana显示
参考:https://mp.weixin.qq.com/s?__biz=MzIwNDIzODExOA==&mid=2650167427&idx=1&sn=dc219a9e725d371086065fc00e78182f&chksm=8ec1c4cab9b64ddc263d97e995a91be0f38628d2452c40d15421cfa4a5fe77ca643a8ef073e1&mpshare=1&scene=1&srcid=&sharer_sharetime=1572345436364&sharer_shareid=13fe4d560ad7f178a70a6b90efad8011#rd
更多推荐
所有评论(0)