在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称(OpenSource Name):kz8s/tack开源软件地址(OpenSource Url):https://github.com/kz8s/tack开源编程语言(OpenSource Language):HCL 62.4%开源软件介绍(OpenSource Introduction):terraform-aws-coreos-kubernetesOpinionated Terraform module for creating a Highly Available Kubernetes cluster running on
Container Linux by CoreOS (any channel) in an AWS
Virtual Private Cloud VPC. With prerequisites
installed The default configuration includes Kubernetes add-ons: DNS, Dashboard and UI. tl;dr# prereqs
$ brew update && brew install awscli cfssl jq kubernetes-cli terraform
# build artifacts and deploy cluster
$ make all
# nodes
$ kubectl get nodes
# addons
$ kubectl get pods --namespace=kube-system
# verify dns - run after addons have fully loaded
$ kubectl exec busybox -- nslookup kubernetes
# open dashboard
$ make dashboard
# obliterate the cluster and all artifacts
$ make clean Component and Tool Versions
Features
AWS
Container Linux by CoreOS
Kubernetes
Terraform
PrerequisitesQuick install prerequisites on Mac OS X with Homebrew: $ brew update && brew install awscli cfssl jq kubernetes-cli terraform Launch Cluster
make all To open dashboard: make dashboard To display instance information: make instances To display status: make status To destroy, remove and generally undo everything:
How Tack worksTack PhasesTack works in three phases:
Pre-TerraformThe purpose of this phase is to prep the environment for Terraform execution. Some tasks are hard or messy to do in Terraform - a little prep work can go a long way here. Determining the Container Linux by CoreOS AMI for a given region, channel and VM Type for instance is easy enough to do with a simple shell script. TerraformTerraform does the heavy lifting of resource creation and sequencing. Tack uses local
modules to partition the work in a logical way. Although it is of course possible to do all
of the Terraform work in a single Post-TerraformOnce the infrastructure has been configured and instantiated it will take some time for it to settle. Waiting for the 'master' ELB to become healthy is an example of this. ComponentsLike many great tools, tack has started out as a collection of scripts, makefiles and other tools. As tack matures and patterns crystalize it will evolve to a Terraform plugin and perhaps a Go-based cli tool for 'init-ing' new cluster configurations. The tooling will compose Terraform modules into a solution based on user preferences - think TLS Certificatescurl --cacert /etc/kubernetes/ssl/ca.pem --cert /etc/kubernetes/ssl/k8s-etcd.pem --key /etc/kubernetes/ssl/k8s-etcd-key.pem https://etcd.test.kz8s:2379/health
openssl x509 -text -noout -in /etc/kubernetes/ssl/ca.pem
openssl x509 -text -noout -in /etc/kubernetes/ssl/k8s-etcd.pem ElasticSearch and KibanaTo access Elasticseach and Kibana first start $ kubectl proxy
Starting to serve on localhost:8001
FAQsAdvanced Features and ConfigurationUsing an Existing VPCIf you have an existing VPC you'd like to deploy a cluster into, there is an option for this with tack. Constraints
Enabling Existing VPC Support
Testing Existing VPC Support from ScratchIn order to test existing VPC support, we need to generate a VPC and then try the overrides with it. After that we can clean it all up. These instructions are meant for someone wanting to ensure that the tack existing VPC code works properly.
Additional Configuration
Inspiration
Other Terraform Projects
References
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论