-
Notifications
You must be signed in to change notification settings - Fork 47
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Created troubleshooting guide and categories (#63)
* Created troubleshooting guide and categories * Created troubleshooting guide * Updated README.md Updated spelling error! Opps! Updated spelling error.
- Loading branch information
Showing
11 changed files
with
127 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
This contains the troubleshooting Clusters related to thundernetes | ||
|
||
## **Category: Cluster** | ||
|
||
### **Architecture** | ||
|
||
## **Configuration** | ||
|
||
### **How to** | ||
|
||
### **Scaling** | ||
|
||
### **Deployments** | ||
|
||
### **Nodes** |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
This contains the troubleshooting Deployment related to thundernetes | ||
|
||
## **Category: Deployment** |
20 changes: 20 additions & 0 deletions
20
docs/troubleshooting/GameServers/HowCanIFindThePublicIPAddress.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
## How can I find the Public IP address from inside a GameServer? | ||
|
||
The GSDK call to get the Public IP is not supported at this time, it returns "N/A". However, you can easily get the Public IP address by using one of the following web sites from your game server: | ||
|
||
``` | ||
curl http://canhazip.com | ||
curl http://whatismyip.akamai.com/ | ||
curl https://4.ifcfg.me/ | ||
curl http://checkip.amazonaws.com | ||
curl -s http://whatismijnip.nl | awk '{print $5}' | ||
curl -s icanhazip.com | ||
curl ident.me | ||
curl ipecho.net/plain | ||
curl wgetip.com | ||
curl ip.tyk.nu | ||
curl bot.whatismyipaddress.com | ||
wget -q -O - checkip.dyndns.org | sed -e 's/[^[:digit:]\|.]//g' | ||
``` | ||
|
||
The above methods work since the Node hosting your Pod has a Public IP. |
32 changes: 32 additions & 0 deletions
32
.../troubleshooting/GameServers/HowCanIRunMyGameServerPodInANonDefaultNamespace.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
## How can I run my game server pods in a non-default namespace? | ||
|
||
By default, thundernetes monitors the ```default``` namespace. If you want to run your game servers in a different namespace, you should first install the necessary ServiceAccount/RoleBinding RBAC roles on this namespace. This is because the sidecar running on the GameServer Pod needs access to talk to the Kubernetes API server. For information on Kubernetes RBAC, check here. | ||
|
||
You can save the following configuration on a yaml file and then run ```kubectl apply -f /path/to/file.yaml``` to create the namespace and RBAC objects. | ||
|
||
```yaml | ||
apiVersion: v1 | ||
kind: Namespace | ||
metadata: | ||
name: mynamespace | ||
--- | ||
apiVersion: v1 | ||
kind: ServiceAccount | ||
metadata: | ||
name: gameserver-editor | ||
namespace: mynamespace | ||
--- | ||
apiVersion: rbac.authorization.k8s.io/v1 | ||
kind: RoleBinding | ||
metadata: | ||
name: gameserver-editor-rolebinding | ||
namespace: mynamespace | ||
roleRef: | ||
apiGroup: rbac.authorization.k8s.io | ||
kind: ClusterRole | ||
name: gameserver-editor-role | ||
subjects: | ||
- kind: ServiceAccount | ||
name: gameserver-editor | ||
namespace: mynamespace | ||
``` |
12 changes: 12 additions & 0 deletions
12
docs/troubleshooting/GameServers/HowToScheduleGameServerNodes.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
## How do I schedule thundernetes Pods and GameServer Pods into different Nodes? | ||
|
||
There might be cases in which you would like to have system and operator Pods (Pods that are created on the kube-system and thundernetes-system namespaces) and your GameServer Pods scheduled on different Nodes. One reason for this might be that you want special Node types for your GameServers. For example, you might want to have a dedicated Node for your GameServers that are dependent on a special GPU. Another reason might be that you don't want any interruption whatsoever to Pods that are critical for the cluster to run properly. One approach to achieve this isolation is: | ||
|
||
1. Create a separate NodePool to host your GameServer Pods. Check here on how to do it on Azure Kubernetes Service. Create this on "user" mode so that "kube-system" Pods are not scheduled on this NodePool. When creating a NodePool, you can specify custom Labels for the Nodes. Let's assume that you apply the ```agentpool=gameserver``` Label. | ||
2. Use the ```nodeSelector``` field on your GameServer Pod spec to request that the GameServer Pod is scheduled on Nodes that have the ```agentpool=gameserver``` Label. Take a look at this sample YAML file for an example. | ||
3. When you create your GameServer Pods, those will be scheduled on the NodePool you created. | ||
4. You should also modify the ```nodeSelector``` field on the controller Pod spec to make it will be scheduled on the system Node Pool. On AKS, if the NodePool is called nodepool1, you should add this YAML snippet to the ```thundernetes-controller-manager``` Deployment on the [YAML install file](https://github.com/PlayFab/thundernetes/blob/39f3c8bb3cb4d4f95d128a9700be72cb1014cd21/installfiles/operator.yaml): | ||
```nodeSelector: | ||
agentpool: nodepool1 | ||
``` | ||
You should add this YAML snippet to any workloads you don't want to be scheduled on the GameServer NodePool. Check here for additional information on assigning pods to Nodes and check here for more information on AKS system and user node pools. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
## Help! What should we do if a GameServer gets stuck? | ||
|
||
We can advise to ```kubectl delete gs <Name>``` since this will take down both the GameServer instance, the corresponding Pod as well as the GameServerDetail CRD instance (in case the game server was allocated). | ||
|
||
:exclamation: Do not delete the Pod. It will be deleted automatically when the GameServer is deleted. | ||
:exclamation: Do not manually override GameServer.status details, this will create issues during controller reconciliation. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
This contains troubleshooting troubleshooting Game Servers related to thundernetes | ||
|
||
## **Category: Game Servers** | ||
|
||
### **How to** | ||
* [How can I find the public IP Address from inside a Game Server?](./HowCanIFindThePublicIPAddress.md) | ||
* [Help! My Game server is stuck!](./MyGameServerIsStuck.md) | ||
|
||
* [My Game Servre is stuck. What can I do?](./MyGameServerIsStuck.md) | ||
* [How can I run my game server pods in a non-default namespace?](./HowCanIRunMyGameServerPodInANonDefaultNamespace.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
This contains the troubleshooting Kubernetes related to thundernetes | ||
|
||
## **Category: Kubernetes** | ||
|
||
### **How-to** |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
This contains the troubleshooting Metrics related to thundernetes | ||
|
||
## **Category: Metrics** | ||
|
||
### **How-to** |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
# thundernetes Troubleshooting Guide | ||
|
||
This is a public repository for all of thundernetes Troubleshooting guides, and is intended to provide a central location for community driven troubleshooting content. | ||
|
||
### Table of Contents | ||
Troubleshooting guides are grouped by categories, and stored in relevantly named subdirectories; each directory containing a README the lists the commonly used and exposed guides through portal as recommendations during ticket creation process. The following are the categories of guides that are stored in reletantly named directories: | ||
|
||
- [Cluster](./Cluster/README.md) - Scaling, Nodes, Patch Orchestration | ||
- [Deployment](./Deployment/README.md) - Deployments, Game Server Deployments, Game Server Deployment Configs | ||
- [Game Server](./GameServer/README.md) - Game Servers, Game Server Configurations, Game Server Clusters, Game Server Nodes | ||
- [Kubernetes](./Kubernetes/README.md) - Things related to Kubernetes | ||
- [Metrics](./Metrics/README.md) - Metrics, Monitoring, Grafana, Prometheus | ||
- [Security](./Security/README.md) - Certificates, KeyVault, Azure Active Directory, Permissions | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
This contains the troubleshooting Security related to thundernetes | ||
|
||
## **Category: Security** | ||
|
||
### **How-to** |