在Kubernetes中运行
如果您拥有Kubernetes群集或者甚至只是运行
Linkerd服务网格作为Kubernetes
部署Linkerd服务网格
使用以下命令部署Linkerd服务网格:
kubectl create ns linkerd
kubectl apply -f https://raw.githubusercontent.com/linkerd/linkerd-examples/master/k8s-daemonset/k8s/servicemesh.yml
您可以通过运行验证Linkerd是否已成功部署
kubectl -n linkerd port-forward $(kubectl -n linkerd get pod -l app=l5d -o jsonpath='{.items[0].metadata.name}') 9990 &
然后在您的浏览器中,通过访问http://localhost:9990 查看Linkerd管理仪表板。
请注意,如果您的群集使用CNI,则需要对Linkerd配置进行一些小的更改以启用CNI兼容性。这些在配置文件本身中都被注释掉。您可以在我们
配置你的应用
要将应用程序配置为使用Linkerd进行HTTP通信,您可以将http_proxy环境变量设置 为$(NODE_NAME):4140其中NODE_NAME为运行应用程序实例的节点的名称。该 NODE_NAME环境变量可以通过使用
env:
- name: NODE_NAME
valueFrom:
fieldRef:
fieldPath: spec.nodeName
- name: http_proxy
value: $(NODE_NAME):4140
查看我们的
请注意,spec.nodeName在某些环境(如
如果您的应用程序不支持http_proxy环境变量,或者您想要将应用程序配置为使用Linkerd进行HTTP / 2或gRPC通信,则必须将应用程序配置为直接向Linkerd发送通信:
$(NODE_NAME):4140 为HTTP
$(NODE_NAME):4240 对于HTTP / 2
$(NODE_NAME):4340 为gRPC
如果要发送HTTP或HTTP / 2流量直接到Linkerd,必须将主机/管理局头设置或.,并且 和是要代理服务和命名空间的名称。如果未指定,则默认为 default。
如果您的应用程序接收HTTP,HTTP / 2,和/或GRPC通信,那么必须有一个端口名称分别为http,h2和/或grpc 的Kubernetes服务对象。
入口
Linkerd服务网格也被配置为充当
请参阅我们的
下一步
这个配置是一个很好的起点,适用于广泛的用例。请查看我们