{"id":619,"date":"2020-12-11T11:33:46","date_gmt":"2020-12-11T03:33:46","guid":{"rendered":"https:\/\/www.yinyubo.cn\/?p=619"},"modified":"2022-05-17T09:30:25","modified_gmt":"2022-05-17T01:30:25","slug":"traefik-2","status":"publish","type":"post","link":"https:\/\/www.yinyubo.com\/?p=619","title":{"rendered":"traefik\u66b4\u9732kubernetes\u91cc\u7684http\u670d\u52a1\u548ctcp\u670d\u52a1"},"content":{"rendered":"<h1 class=\"md-end-block md-heading\"><span class=\"md-plain md-expand\">traeifk\u4f7f\u7528\u8bf4\u660e<\/span><\/h1>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">traefik\u4f7f\u7528helm\u5b89\u88c5\uff0c\u642d\u914dmetalLB\u4f7f\u7528\uff0c\u7531metalLB\u5206\u914dIP\u5730\u5740\u7ed9traefik\u7684loadbalancer<\/span><\/p>\n<pre class=\"lang:python decode:true md-fences md-end-block ty-contain-cm modeLoaded\"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"golang\">helm repo add traefik https:\/\/helm.traefik.io\/traefik\nhelm upgrade -i traefik traefik\/traefik --version 9.11.0 -f traefik\/values.yaml<\/code><\/pre>\n<div class=\"md-hr md-end-block\" tabindex=\"-1\">\n<hr \/>\n<\/div>\n<h2 class=\"md-end-block md-heading\"><span class=\"md-plain\">traefik\u66b4\u9732http\u670d\u52a1\u7684\u4f8b\u5b50<\/span><\/h2>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">\u914d\u7f6e\u5982\u4e0bhttp-ingress.yaml\u6587\u4ef6\uff0c\u66b4\u9732\u4e00\u4e2anginx\uff0c\u6d4f\u89c8\u5668\u901a\u8fc7nginx.demo.test.local\u8bbf\u95ee<\/span><\/p>\n<pre class=\"lang:python decode:true \"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"golang\">#http-ingress.yaml\napiVersion: traefik.containo.us\/v1alpha1\nkind: IngressRoute\nmetadata:\n  name: simpleingressroute\n  namespace: default\nspec:\n  entryPoints:\n \u00a0  - web\n  routes:\n  - match: Host(`nginx.demo.test.local`)\n \u00a0  kind: Rule\n \u00a0  services:\n \u00a0  - name: test-demo-service\n \u00a0 \u00a0  port: 80<\/code><\/pre>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">\u89e3\u91ca\uff1a<\/span><\/p>\n<ol>\n<li><span class=\"md-plain\">metadata.name\u4e0d\u80fd\u91cd\u590d<\/span><\/li>\n<li><span class=\"md-plain md-expand\">namespace\u662f\u66b4\u9732\u7684svc\u5bf9\u5e94\u7684namespace<\/span><\/li>\n<li><span class=\"md-plain\">Host(<\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>nginx.demo.test.local<\/code><\/span><span class=\"md-plain\">)\u8868\u793a\u63a5\u53d7\u5230\u6d4f\u89c8\u5668\u8bbf\u95eenginx.aimp.sferetest.local\u7684\u65f6\u5019\uff0c\u8f6c\u5230test-demo-service\u670d\u52a1\u768480\u7aef\u53e3<\/span><\/li>\n<li><span class=\"md-plain\">entryPoints\u5bf9\u5e94\u7684\u662f\u6211\u4eec\u5b89\u88c5traefik\u65f6,values.yaml\u91cc\u7684ports\u53c2\u6570\u4e0b\u9762\u7684\u540d\u79f0\uff0c\u5982web\u76848000\u662f\u5185\u90e8\u7aef\u53e3\uff0c80\u662f\u5bf9\u5916\u63d0\u4f9b\u8bbf\u95ee\u7684\u7aef\u53e3<\/span><\/li>\n<\/ol>\n<pre class=\"lang:python decode:true \"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"golang\">#values.yaml\nports:\n \u00a0# The name of this one can't be changed as it is used for the readiness and\n \u00a0# liveness probes, but you can adjust its config to your liking\n  web:\n \u00a0  port: 8000\n \u00a0 \u00a0# hostPort: 8000\n \u00a0  expose: true\n \u00a0  exposedPort: 80\n \u00a0 \u00a0# The port protocol (TCP\/UDP)\n \u00a0  protocol: TCP<\/code><\/pre>\n<div class=\"md-hr md-end-block\" tabindex=\"-1\">\n<hr \/>\n<\/div>\n<h2 class=\"md-end-block md-heading\"><span class=\"md-plain\">traefik\u66b4\u9732tcp\u670d\u52a1\u7684\u4f8b\u5b50<\/span><\/h2>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">\u914d\u7f6e\u5982\u4e0btcp-ingress.yaml\u6587\u4ef6,\u66b4\u9732\u4e00\u4e2aredis\uff0c\u901a\u8fc7loadbalancerIP:6851\u8bbf\u95ee<\/span><\/p>\n<pre class=\"lang:python decode:true \"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"golang\"># tcp-ingress.yaml\napiVersion: traefik.containo.us\/v1alpha1\nkind: IngressRouteTCP\nmetadata:\n  name: redisingleressroute\n  namespace: test\nspec:\n  entryPoints:\n \u00a0  - redis\n  routes:\n  - match: HostSNI(`*`)\n \u00a0  kind: Rule\n \u00a0  services:\n \u00a0  - name: redis\n \u00a0 \u00a0  port: 6379<\/code><\/pre>\n<p class=\"md-end-block md-p\"><span class=\"md-plain\">\u89e3\u91ca\uff1a<\/span><\/p>\n<ol>\n<li class=\"md-end-block md-p\"><span class=\"md-plain\">kind\u5f97\u662fIngressRouteTCP<\/span><\/li>\n<li class=\"md-end-block md-p\"><span class=\"md-plain\">match\u5fc5\u987b\u662fHostSNI(<\/span><span class=\"md-pair-s\" spellcheck=\"false\"><code>*<\/code><\/span><span class=\"md-plain\">)<\/span><\/li>\n<li class=\"md-end-block md-p\"><span class=\"md-plain\">entryPoints\u5bf9\u5e94\u7684\u662f\u6211\u4eec\u5b89\u88c5traefik\u65f6,values.yaml\u91cc\u7684ports\u53c2\u6570\u4e0b\u9762\u7684\u540d\u79f0\uff0c\u5982redis\u76846379\u662f\u5185\u90e8\u7aef\u53e3\uff0c6851\u662f\u5bf9\u5916\u63d0\u4f9b\u8bbf\u95ee\u7684\u7aef\u53e3<\/span><\/li>\n<\/ol>\n<pre class=\"lang:python decode:true  \"><code class=\"EnlighterJSRAW\" data-enlighter-language=\"golang\">#values.yaml\n  redis:\n \u00a0  port: 6379\n \u00a0 \u00a0# hostPort: 8000\n \u00a0  expose: true\n \u00a0  exposedPort: 6851\n \u00a0 \u00a0# The port protocol (TCP\/UDP)\n \u00a0  protocol: TCP<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>traeifk\u4f7f\u7528\u8bf4\u660e traefik\u4f7f\u7528helm\u5b89\u88c5\uff0c\u642d\u914dmetalLB\u4f7f\u7528\uff0c\u7531metalLB\u5206\u914dIP\u5730\u5740\u7ed9 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-619","post","type-post","status-publish","format-standard","hentry","category-k8s"],"_links":{"self":[{"href":"https:\/\/www.yinyubo.com\/index.php?rest_route=\/wp\/v2\/posts\/619","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yinyubo.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yinyubo.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yinyubo.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yinyubo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=619"}],"version-history":[{"count":2,"href":"https:\/\/www.yinyubo.com\/index.php?rest_route=\/wp\/v2\/posts\/619\/revisions"}],"predecessor-version":[{"id":867,"href":"https:\/\/www.yinyubo.com\/index.php?rest_route=\/wp\/v2\/posts\/619\/revisions\/867"}],"wp:attachment":[{"href":"https:\/\/www.yinyubo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=619"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yinyubo.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=619"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yinyubo.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=619"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}