<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="158881" data-post-id="158881">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Overbryd" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Overbryd/120/6202_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Overbryd
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I am not using anything special other than a <code>Deployment</code> resource on Kubernetes to run my applications.<br>
But there are a couple of libraries worth mentioning making integrating Kubernetes into your application a walk in the park:</p>
<ul>
<li><a href="https://github.com/coryodaniel/bonny" class="inline-onebox" rel="noopener nofollow ugc">GitHub - coryodaniel/bonny: The Elixir based Kubernetes Development Framework · GitHub</a> is a library to support writing actual operators for more complex Kubernetes integrations</li>
<li><a href="https://github.com/coryodaniel/k8s" class="inline-onebox" rel="noopener nofollow ugc">GitHub - coryodaniel/k8s: Kubernetes API Client for Elixir · GitHub</a> is an excellent Kubernetes API client</li>
<li><a href="https://github.com/bitwalker/libcluster" class="inline-onebox" rel="noopener nofollow ugc">GitHub - bitwalker/libcluster: Automatic cluster formation/healing for Elixir applications · GitHub</a> supports Erlang cluster formation for Elixir applications, it also ships with a designated <code>Cluster.Strategy.Kubernetes</code></li>
</ul>
<p>And worth mentioning is supporting software that are not Erlang/Elixir specific, but really leverage your Kubernetes experience:</p>
<ul>
<li><a href="https://github.com/containous/traefik" class="inline-onebox" rel="noopener nofollow ugc">GitHub - traefik/traefik: The Cloud Native Application Proxy · GitHub</a> acts as a Ingress controller, http/s load balancer</li>
<li><a href="https://github.com/jetstack/cert-manager" class="inline-onebox" rel="noopener nofollow ugc">GitHub - cert-manager/cert-manager: Automatically provision and manage TLS certificates in Kubernetes · GitHub</a> lets you automatically provision certificates (e.g. Lets Encrypt) to use with traefik</li>
<li><a href="https://github.com/kubernetes-sigs/external-dns" class="inline-onebox" rel="noopener nofollow ugc">GitHub - kubernetes-sigs/external-dns: Configure external DNS servers dynamically from Kubernetes resources · GitHub</a> lets you provision external DNS providers for dynamic DNS management (think of declarative external DNS for your whole infrastructure out of Kubernetes/API)</li>
</ul> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="158881" data-batch-url="/posts/batch_likers">
                        7
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/update-distributed-stateful-elixir-apps-in-kubernetes/19644/23">Post #22</a>
	                </div>
	            </div>
              <div id="likers-container-158881" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="158881"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #22"></div>
  </section>
</div>
    <div class="postbit" id="159729" data-post-id="159729">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="r8code" src="/assets/icons/user-9f439610.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  r8code
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Thx for the reply,<br>
and I just found this article <a href="https://www.theguild.nl/real-world-phoenix-lets-d4y-using-k8s/" class="inline-onebox" rel="noopener nofollow ugc">Real World Phoenix |&gt; Let's D4Y |&gt; __using__ K8S - Kabisa</a></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="159729" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/update-distributed-stateful-elixir-apps-in-kubernetes/19644/24">Post #23</a>
	                </div>
	            </div>
              <div id="likers-container-159729" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="159729"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #23"></div>
  </section>
</div>
    <div class="postbit" id="159760" data-post-id="159760">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="shanesveller" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/shanesveller/120/7962_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  shanesveller
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I would investigate most other ingress solutions before reaching for Traefik in a business context - Nginx Ingress and ALB Ingress are my personal recommendations. Ambassador is so-so and getting better, Istio is not just ingress and is a huge project to bite off besides, and I haven’t used any of the other Envoy-based ones in anger.</p>
<p>Traefik predates Kube and was never that good in its early days, and trying to support so many environments means it simply can’t embrace Kubernetes abstractions to the degree a single-purpose Kube-native project can achieve. It’s fine for home labs and POCs.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="159760" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/update-distributed-stateful-elixir-apps-in-kubernetes/19644/25">Post #24</a>
	                </div>
	            </div>
              <div id="likers-container-159760" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="159760"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #24"></div>
  </section>
</div>
    <div class="postbit" id="160190" data-post-id="160190">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Overbryd" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Overbryd/120/6202_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Overbryd
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p><a class="mention" href="/u/shanesveller" rel="nofollow">@shanesveller</a> like with all recommend/experience posts, YMMV.</p>
<p>But I have to emphasize that I am running a couple high traffic websites/applications behind traefik, one of them a mid-sized micro-service landscape.<br>
Traefik in a business and production setting has served me well since <code>1.x</code> and I am now on <code>2.x</code>.</p>
<p>The statement that traefik predates Kubernetes is somewhat sonsensical to me. AWS LBs, Nginx, etc predate Kubernetes and people have managed to adapt to it.</p>
<p>Admittedly I did not have the “easiest” time in the beginning with traefik, but that is due to the documentation that lacks some holistic examples. However, now having my declarations set, Traefik is humming along really really well.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="160190" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/update-distributed-stateful-elixir-apps-in-kubernetes/19644/26">Post #25</a>
	                </div>
	            </div>
              <div id="likers-container-160190" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="160190"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-last-post cat-last-post" title="Last post!"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <span class="all-loaded">— All posts loaded —</span>
</div></template></turbo-stream>