<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>– Install and configure Code Blind on Kubernetes</title><link>https://codeblind-ai.github.io/docs/installation/</link><description>Recent content in Install and configure Code Blind on Kubernetes on</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="https://codeblind-ai.github.io/docs/installation/index.xml" rel="self" type="application/rss+xml"/><item><title>Docs: Create Kubernetes Cluster</title><link>https://codeblind-ai.github.io/docs/installation/creating-cluster/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://codeblind-ai.github.io/docs/installation/creating-cluster/</guid><description/></item><item><title>Docs: Install Code Blind</title><link>https://codeblind-ai.github.io/docs/installation/install-agones/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://codeblind-ai.github.io/docs/installation/install-agones/</guid><description>
&lt;p>If you have not yet created a cluster, &lt;a href="https://codeblind-ai.github.io/docs/installation/creating-cluster/">follow the instructions&lt;/a>
for the environment where you will be running Code Blind.&lt;/p></description></item><item><title>Docs: Deploy Kubernetes cluster and install Code Blind using Terraform</title><link>https://codeblind-ai.github.io/docs/installation/terraform/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://codeblind-ai.github.io/docs/installation/terraform/</guid><description>
&lt;h2 id="prerequisites">Prerequisites&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://www.terraform.io/">Terraform&lt;/a> v1.0.8&lt;/li>
&lt;li>Access to the the Kubernetes hosting provider you are using (e.g. &lt;code>gcloud&lt;/code>,
&lt;code>awscli&lt;/code>, or &lt;code>az&lt;/code> utility installed)&lt;/li>
&lt;li>Git&lt;/li>
&lt;/ul>
&lt;div class="alert alert-info" role="alert">
&lt;h4 class="alert-heading">Note&lt;/h4>
&lt;p>All our Terraform modules and examples use a
&lt;a href="https://github.com/josephbarnett/codeblind.ai/blob/release-1.38.0/" target="_blank" data-proofer-ignore>Helm 3 Module&lt;/a>.&lt;/p>
&lt;p>The last Code Blind release to include a Helm 2 module was &lt;a href="https://agones.dev/blog/2020/09/29/1.9.0-kubernetes-1.16-nuget-and-tcp-udp/">1.9.0&lt;/a>.&lt;/p>
&lt;/div></description></item><item><title>Docs: Confirming Code Blind Installation</title><link>https://codeblind-ai.github.io/docs/installation/confirm/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://codeblind-ai.github.io/docs/installation/confirm/</guid><description>
&lt;p>To confirm Code Blind is up and running, run the following command:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kubectl describe --namespace agones-system pods
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>It should describe six pods created in the &lt;code>agones-system&lt;/code> namespace, with no error messages or status. All &lt;code>Conditions&lt;/code> sections should look like this:&lt;/p>
&lt;pre tabindex="0">&lt;code>Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
&lt;/code>&lt;/pre>&lt;p>All this pods should be in a &lt;code>RUNNING&lt;/code> state:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" style="background-color:#f8f8f8;-moz-tab-size:4;-o-tab-size:4;tab-size:4;">&lt;code class="language-bash" data-lang="bash">&lt;span style="display:flex;">&lt;span>kubectl get pods --namespace agones-system
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;pre tabindex="0">&lt;code>NAME READY STATUS RESTARTS AGE
agones-allocator-5c988b7b8d-cgtbs 1/1 Running 0 8m47s
agones-allocator-5c988b7b8d-hhhr5 1/1 Running 0 8m47s
agones-allocator-5c988b7b8d-pv577 1/1 Running 0 8m47s
agones-controller-7db45966db-56l66 1/1 Running 0 8m44s
agones-ping-84c64f6c9d-bdlzh 1/1 Running 0 8m37s
agones-ping-84c64f6c9d-sjgzz 1/1 Running 0 8m47s
&lt;/code>&lt;/pre>&lt;p>That&amp;rsquo;s it!&lt;/p>
&lt;p>Now with Code Blind installed, you can utilise its &lt;a href="https://kubernetes.io/docs/concepts/api-extension/custom-resources/">Custom Resource Definitions&lt;/a> to create
resources of type &lt;code>GameServer&lt;/code>, &lt;code>Fleet&lt;/code> and more!&lt;/p>
&lt;h2 id="whats-next">What&amp;rsquo;s next&lt;/h2>
&lt;ul>
&lt;li>Go through the &lt;a href="https://codeblind-ai.github.io/docs/getting-started/create-gameserver/">Create a Game Server Quickstart&lt;/a>&lt;/li>
&lt;/ul></description></item><item><title>Docs: Upgrading Code Blind and Kubernetes</title><link>https://codeblind-ai.github.io/docs/installation/upgrading/</link><pubDate>Fri, 16 Aug 2019 00:19:19 +0000</pubDate><guid>https://codeblind-ai.github.io/docs/installation/upgrading/</guid><description>
&lt;div class="alert alert-info" role="alert">
&lt;h4 class="alert-heading">Note&lt;/h4>
Whichever approach you take to upgrading Code Blind, make sure to test it in your development environment
before applying it to production.
&lt;/div>
&lt;h2 id="upgrading-code-blind">Upgrading Code Blind&lt;/h2>
&lt;p>The following are strategies for safely upgrading Code Blind from one version to another. They may require adjustment to
your particular game architecture but should provide a solid foundation for updating Code Blind safely.&lt;/p>
&lt;p>The recommended approach is to use &lt;a href="https://codeblind-ai.github.io/#upgrading-agones-multiple-clusters">multiple clusters&lt;/a>, such that the upgrade can be tested
gradually with production load and easily rolled back if the need arises.&lt;/p>
&lt;div class="alert alert-warning" role="alert">
&lt;h4 class="alert-heading">Warning&lt;/h4>
Changing &lt;a href="https://codeblind-ai.github.io/docs/guides/feature-stages/#feature-gates">Feature Gates&lt;/a> within your Code Blind install
can constitute an &amp;ldquo;upgrade&amp;rdquo; as it may create or remove functionality
in the Code Blind installation that may not be forward or backward compatible with installed resources in an existing
installation.
&lt;/div>
&lt;h3 id="upgrading-code-blind-multiple-clusters">Upgrading Code Blind: Multiple Clusters&lt;/h3>
&lt;p>We essentially want to transition our GameServer allocations from a cluster with the old version of Code Blind,
to a cluster with the upgraded version of Code Blind while ensuring nothing surprising
happens during this process.&lt;/p>
&lt;p>This also allows easy rollback to the previous infrastructure that we already know to be working in production, with
minimal interruptions to player experience.&lt;/p>
&lt;p>The following are steps to implement this:&lt;/p>
&lt;ol>
&lt;li>Create a new cluster of the same size or smaller as the current cluster.&lt;/li>
&lt;li>Install the new version of Code Blind on the new cluster.&lt;/li>
&lt;li>Deploy the same set of Fleets, GameServers and FleetAutoscalers from the old cluster into the new cluster.&lt;/li>
&lt;li>With your matchmaker, start sending a small percentage of your matched players&amp;rsquo; game sessions to the new cluster.&lt;/li>
&lt;li>Assuming everything is working successfully on the new cluster, slowly increase the percentage of matched sessions to the new cluster, until you reach 100%.&lt;/li>
&lt;li>Once you are comfortable with the stability of the new cluster with the new Code Blind version, shut down the old cluster.&lt;/li>
&lt;li>Congratulations - you have now upgraded to a new version of Code Blind! 👍&lt;/li>
&lt;/ol>
&lt;h3 id="upgrading-code-blind-single-cluster">Upgrading Code Blind: Single Cluster&lt;/h3>
&lt;p>If you are upgrading a single cluster, we recommend creating a maintenance window, in which your game goes offline
for the period of your upgrade, as there will be a short period in which Code Blind will be non-responsive during the upgrade.&lt;/p>
&lt;h4 id="installation-with-installyaml">Installation with install.yaml&lt;/h4>
&lt;p>If you installed &lt;a href="https://codeblind-ai.github.io/docs/installation/install-agones/yaml/">Code Blind with install.yaml&lt;/a>, then you will need to delete
the previous installation of Code Blind before upgrading to the new version, as we need to remove all of Code Blind before installing
the new version.&lt;/p>
&lt;ol>
&lt;li>Start your maintenance window.&lt;/li>
&lt;li>Delete the current set of Fleets, GameServers and FleetAutoscalers in your cluster.&lt;/li>
&lt;li>Make sure to delete the same version of Code Blind that was previously installed, for example:
&lt;code>kubectl delete -f https://raw.githubusercontent.com/googleforgames/agones/&amp;lt;old-release-version&amp;gt;/install/yaml/install.yaml&lt;/code>&lt;/li>
&lt;li>Install Code Blind &lt;a href="https://codeblind-ai.github.io/docs/installation/install-agones/yaml/">with install.yaml&lt;/a>.&lt;/li>
&lt;li>Deploy the same set of Fleets, GameServers and FleetAutoscalers back into the cluster.&lt;/li>
&lt;li>Run any other tests to ensure the Code Blind installation is working as expected.&lt;/li>
&lt;li>Close your maintenance window.&lt;/li>
&lt;li>Congratulations - you have now upgraded to a new version of Code Blind! 👍&lt;/li>
&lt;/ol>
&lt;h4 id="installation-with-helm">Installation with Helm&lt;/h4>
&lt;p>Helm features capabilities for upgrading to newer versions of Code Blind without having to uninstall Code Blind completely.&lt;/p>
&lt;p>For details on how to use Helm for upgrades, see the &lt;a href="https://v2.helm.sh/docs/helm/#helm-upgrade">helm upgrade&lt;/a> documentation.&lt;/p>
&lt;p>Given the above, the steps for upgrade are simpler:&lt;/p>
&lt;ol>
&lt;li>Start your maintenance window.&lt;/li>
&lt;li>Delete the current set of Fleets, GameServers and FleetAutoscalers in your cluster.&lt;/li>
&lt;li>Run &lt;code>helm upgrade&lt;/code> with the appropriate arguments, such a &lt;code>--version&lt;/code>, for your specific upgrade&lt;/li>
&lt;li>Deploy the same set of Fleets, GameServers and FleetAutoscalers back into the cluster.&lt;/li>
&lt;li>Run any other tests to ensure the Code Blind installation is working as expected.&lt;/li>
&lt;li>Close your maintenance window.&lt;/li>
&lt;li>Congratulations - you have now upgraded to a new version of Code Blind! 👍&lt;/li>
&lt;/ol>
&lt;h2 id="upgrading-kubernetes">Upgrading Kubernetes&lt;/h2>
&lt;p>The following are strategies for safely upgrading the underlying Kubernetes cluster from one version to another.
They may require adjustment to your particular game architecture but should provide a solid foundation for updating your cluster safely.&lt;/p>
&lt;p>The recommended approach is to use &lt;a href="https://codeblind-ai.github.io/#multiple-clusters">multiple clusters&lt;/a>, such that the upgrade can be tested
gradually with production load and easily rolled back if the need arises.&lt;/p>
&lt;p>Code Blind has &lt;a href="https://codeblind-ai.github.io/docs/installation/#agones-and-kubernetes-supported-versions">multiple supported Kubernetes versions&lt;/a> for each version. You can stick with a minor Kubernetes version until it is not supported by Code Blind, but it is recommended to do supported minor (e.g. 1.12.1 ➡ 1.13.2) Kubernetes version upgrades at the same time as a matching Code Blind upgrades.&lt;/p>
&lt;p>Patch upgrades (e.g. 1.12.1 ➡ 1.12.3) within the same minor version of Kubernetes can be done at any time.&lt;/p>
&lt;h3 id="multiple-clusters">Multiple Clusters&lt;/h3>
&lt;p>This process is very similar to the &lt;a href="https://codeblind-ai.github.io/#upgrading-agones-multiple-clusters">Upgrading Code Blind: Multiple Clusters&lt;/a> approach above.&lt;/p>
&lt;p>We essentially want to transition our GameServer allocations from a cluster with the old version of Kubernetes,
to a cluster with the upgraded version of Kubernetes while ensuring nothing surprising
happens during this process.&lt;/p>
&lt;p>This also allows easy rollback to the previous infrastructure that we already know to be working in production, with
minimal interruptions to player experience.&lt;/p>
&lt;p>The following are steps to implement this:&lt;/p>
&lt;ol>
&lt;li>Create a new cluster of the same size or smaller as the current cluster, with the new version of Kubernetes&lt;/li>
&lt;li>Install the same version of Code Blind on the new cluster, as you have on the previous cluster.&lt;/li>
&lt;li>Deploy the same set of Fleets and/or GameServers from the old cluster into the new cluster.&lt;/li>
&lt;li>With your matchmaker, start sending a small percentage of your matched players&amp;rsquo; game sessions to the new cluster.&lt;/li>
&lt;li>Assuming everything is working successfully on the new cluster, slowly increase the percentage of matched sessions to the new cluster, until you reach 100%.&lt;/li>
&lt;li>Once you are comfortable with the stability of the new cluster with the new Kubernetes version, shut down the old cluster.&lt;/li>
&lt;li>Congratulations - you have now upgraded to a new version of Kubernetes! 👍&lt;/li>
&lt;/ol>
&lt;h3 id="single-cluster">Single Cluster&lt;/h3>
&lt;p>If you are upgrading a single cluster, we recommend creating a maintenance window, in which your game goes offline
for the period of your upgrade, as there will be a short period in which Code Blind will be non-responsive during the node
upgrades.&lt;/p>
&lt;ol>
&lt;li>Start your maintenance window.&lt;/li>
&lt;li>Scale your Fleets down to 0 and/or delete your GameServers. This is a good safety measure so there aren&amp;rsquo;t race conditions
between the Code Blind controller being recreated and GameServers being deleted doesn&amp;rsquo;t occur, and GameServers can end up stuck in erroneous states.&lt;/li>
&lt;li>Start and complete your control plane upgrade(s).&lt;/li>
&lt;li>Start and complete your node upgrades.&lt;/li>
&lt;li>Scale your Fleets back up and/or recreate your GameServers.&lt;/li>
&lt;li>Run any other tests to ensure the Code Blind installation is still working as expected.&lt;/li>
&lt;li>Close your maintenance window.&lt;/li>
&lt;li>Congratulations - you have now upgraded to a new version of Kubernetes! 👍&lt;/li>
&lt;/ol></description></item></channel></rss>