All Projects → daniel-rhoades → acs-engine-terraform

daniel-rhoades / acs-engine-terraform

Licence: other
Azure Container Service (ACS) Engine running K8s and provisioned by Terraform

Programming Languages

HCL
1544 projects

Projects that are alternatives of or similar to acs-engine-terraform

xx
This tool simplifies the use of common shell, docker, and kubernetes commands
Stars: ✭ 57 (+147.83%)
Mutual labels:  k8s
tyk-operator
Tyk Operator for Kubernetes
Stars: ✭ 88 (+282.61%)
Mutual labels:  k8s
k8s-actions
Enable GitHub developers to deploy to Kubernetes service using GitHub Actions
Stars: ✭ 104 (+352.17%)
Mutual labels:  k8s
kube-alive
Some tools to experiment with Kubernetes to observe it's real-life behavior
Stars: ✭ 32 (+39.13%)
Mutual labels:  k8s
katana-skipper
Simple and flexible ML workflow engine
Stars: ✭ 234 (+917.39%)
Mutual labels:  k8s
gitops-build-lib
Jenkins pipeline shared library for automating deployments via GitOps
Stars: ✭ 23 (+0%)
Mutual labels:  k8s
k8s-buildkite-plugin
Run any buildkite build step as a Kubernetes Job
Stars: ✭ 37 (+60.87%)
Mutual labels:  k8s
command-line-cheat-sheet
📝 A place to quickly lookup commands (bash, vim, git, AWS, Docker, Terraform, Ansible, kubectl)
Stars: ✭ 30 (+30.43%)
Mutual labels:  k8s
KUR8
A visual overview of Kubernetes architecture and Prometheus metrics
Stars: ✭ 197 (+756.52%)
Mutual labels:  k8s
docker-nodebb
NodeBB forum software Docker image with persistent storage support. k8s tested.
Stars: ✭ 27 (+17.39%)
Mutual labels:  k8s
ansible-role-k8s
This role render an arbitrary number of Jinja2 templates and deploys or removes them to/from Kubernetes clusters.
Stars: ✭ 26 (+13.04%)
Mutual labels:  k8s
k8s-nuclei-templates
Nuclei templates for K8S security scanning
Stars: ✭ 85 (+269.57%)
Mutual labels:  k8s
go
OpenAPI based generated Go Client for Kubernetes
Stars: ✭ 134 (+482.61%)
Mutual labels:  k8s
aks-keyvault
Access Azure Key Vault secrets, keys and certs from AKS Pods using Secret Store CSI provider and Pod Identity.
Stars: ✭ 21 (-8.7%)
Mutual labels:  k8s
kubernetes-lts
Kubernetes LTS(long term support)
Stars: ✭ 186 (+708.7%)
Mutual labels:  k8s
charts
☸️ Helm Charts for YOURLS
Stars: ✭ 12 (-47.83%)
Mutual labels:  k8s
sig-windows-dev-tools
This is a batteries included local development environment for Kubernetes on Windows.
Stars: ✭ 52 (+126.09%)
Mutual labels:  k8s
k8s-istio-demo
Demo showing the capabilities of Istio
Stars: ✭ 22 (-4.35%)
Mutual labels:  k8s
helm-charts
Official Helm Chart Repository for InfluxData Applications
Stars: ✭ 133 (+478.26%)
Mutual labels:  k8s
kong-map
Kongmap is a free visualization tool which allows you to view and edit configurations of your Kong API Gateway Clusters, including Routes, Services, and Plugins/Policies. The tool is being offered for installation via Docker and Kubernetes at this time.
Stars: ✭ 60 (+160.87%)
Mutual labels:  k8s

acs-engine-terraform

Azure Container Service (ACS) Engine running K8s and provisioned by Terraform.

See my detailed article on Terraform, Kubernetes and Microsoft Azure to understand how to use it. But if you are feeling lazy, then do the following steps to get it working:

Some pre-requisites first:

Next, create a Terraform variables file (e.g. k8s.tfvars) with the following information:

azure_subscription_id = "<YOUR-AZURE-SUBSCRIPTION-ID-FOR-TERRAFORM>"
azure_tenant_id       = "<YOUR-AZURE-TENANT-ID-FOR-TERRAFORM>"
azure_client_id       = "<YOUR-AZURE-CLIENT-ID-FOR-TERRAFORM>"
azure_client_secret   = "<YOUR-AZURE-CLIENT-SECRET-FOR-TERRAFORM>"

dns_prefix                      = "<YOUR-DNS-PREFIX>"
ssh_key                         = "<YOUR-SSH-KEY>"

If you followed Terraform's Azure setup guide, then you'll already have the values for each of the azure_* variables, so replace those placeholders. The other substitutions should be made as follows:

  • YOUR-DNS-PREFIX - Enter anything you like to prefix the DNS record for your cluster, e.g dans-k8s-example
  • YOUR-SSH-KEY - The PEM encoded public version of the key you generated, e.g. just get the output from cat ~/.ssh/id_rsa.pub.

That should do it, so just run it now:

$ terraform apply -var-file="k8s.tfvars"

If the provisioning takes a long time, you might get an error, which will likely be due to a timeout. If you can see 16 items in the resource group in the Azure portal and the rest of the steps in the guide work, it should be all fine.

We can now remotely connect to the cluster, to get the K8s remote configuration it's easier just to grab this from the master like so:

$ scp -i <SSH-KEY> azureuser@<MASTER-PUBLIC-IP>:~/.kube/config ~/.kube/config

In the above example you'll need to replace the placeholder values:

  • SSH-KEY - Private SSH key matching the public key given to the cluster during setup, e.g. ~/.ssh/id_rsa;
  • MASTER-PUBLIC-IP - Find the master VM in the Azure portal, the public IP address will be attached to it.

Then test the connection using kubectl get nodes, which should return a list of our 2 nodes (1 master and 1 worker). You're done, you can now deploy your own pods, for example:

$ kubectl run nginx --image nginx
$ kubectl expose deployments nginx --port=80 --type=LoadBalancer
$ kubectl get services

Wait until the nginx service has been given an external (public) IP. In the background K8s is actually creating an Azure Load Balancer for this purpose (you can see it in the Azure portal). Then simply confirm it works by running curl http://<EXTERNAL-IP>, you should get the standard nginx welcome page. If curl just hangs then you probably forgot to manually fix that route I talked about above ;)

The lazy way to delete the setup when you are done is run:

$ az group delete --name "k8sexample"

You can't just run terraform apply -var-file="k8s.tfvars" unfortunately, because the setup of the K8s cluster via the ACS Engine is a bit of a hack at the moment. Also, you might be best to manually delete k8s_rendered.json and the _output directory between runs. If Terraform messes up then also delete the terraform.tfstate/terraform.tfstate.backup files.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].