All Projects → cloudfoundry-incubator → Kubo Release

cloudfoundry-incubator / Kubo Release

Licence: apache-2.0
Kubernetes BOSH release

Programming Languages

ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to Kubo Release

Wfl
A Simple Way of Creating Job Workflows in Go running in Processes, Containers, Tasks, Pods, or Jobs
Stars: ✭ 30 (-80.39%)
Mutual labels:  cloud-foundry, k8s
Etcd Cloud Operator
Deploying and managing production-grade etcd clusters on cloud providers: failure recovery, disaster recovery, backups and resizing.
Stars: ✭ 149 (-2.61%)
Mutual labels:  k8s
Arkade
Open Source Kubernetes Marketplace
Stars: ✭ 2,343 (+1431.37%)
Mutual labels:  k8s
Kathara
A lightweight container-based network emulation system.
Stars: ✭ 139 (-9.15%)
Mutual labels:  k8s
Ansible Role K3s
Ansible role for installing k3s as either a standalone server or HA cluster.
Stars: ✭ 132 (-13.73%)
Mutual labels:  k8s
Taro Mall
一个项目的架构,包括设计/前端/管理后台/后端/k8s集群架构,欢迎Star,欢迎Fork
Stars: ✭ 144 (-5.88%)
Mutual labels:  k8s
K8s
Kubernetes Helm Charts for the ORY ecosystem.
Stars: ✭ 127 (-16.99%)
Mutual labels:  k8s
Maratona Kubernetes
Repositório de código de demonstrações da Maratona Kubernetes 🇧🇷
Stars: ✭ 152 (-0.65%)
Mutual labels:  k8s
Casskop
This Kubernetes operator automates the Cassandra operations such as deploying a new rack aware cluster, adding/removing nodes, configuring the C* and JVM parameters, upgrading JVM and C* versions, and many more...
Stars: ✭ 148 (-3.27%)
Mutual labels:  k8s
Awesome Cka
☸️ A curated list for awesome resources needed to pass your Certified Kubernetes Administrator (CKA) exam.
Stars: ✭ 138 (-9.8%)
Mutual labels:  k8s
Apisix Ingress Controller
ingress controller for K8s
Stars: ✭ 139 (-9.15%)
Mutual labels:  k8s
Gcp Service Broker
Open Service Broker for Google Cloud Platform
Stars: ✭ 133 (-13.07%)
Mutual labels:  cloud-foundry
K9s
🐶 Kubernetes CLI To Manage Your Clusters In Style!
Stars: ✭ 14,585 (+9432.68%)
Mutual labels:  k8s
Eunomia
A GitOps Operator for Kubernetes
Stars: ✭ 130 (-15.03%)
Mutual labels:  k8s
Jetson
Helmut Hoffer von Ankershoffen experimenting with arm64 based NVIDIA Jetson (Nano and AGX Xavier) edge devices running Kubernetes (K8s) for machine learning (ML) including Jupyter Notebooks, TensorFlow Training and TensorFlow Serving using CUDA for smart IoT.
Stars: ✭ 151 (-1.31%)
Mutual labels:  k8s
Kazan
Kubernetes API client for Elixir
Stars: ✭ 129 (-15.69%)
Mutual labels:  k8s
Nice Knowledge System
📚不积跬步无以至千里,每天进步一点点,Passion,Self-regulation,Love and Share
Stars: ✭ 137 (-10.46%)
Mutual labels:  k8s
Faas Netes
Serverless on Kubernetes with OpenFaaS
Stars: ✭ 1,875 (+1125.49%)
Mutual labels:  k8s
K3s Ansible
Ansible playbook to deploy k3s kubernetes cluster
Stars: ✭ 153 (+0%)
Mutual labels:  k8s
Gardener
Kubernetes-native system managing the full lifecycle of conformant Kubernetes clusters as a service on Alicloud, AWS, Azure, GCP, OpenStack, EquinixMetal, vSphere, MetalStack, and Kubevirt with minimal TCO.
Stars: ✭ 2,093 (+1267.97%)
Mutual labels:  k8s

Cloud Foundry Container Runtime

A BOSH release for Kubernetes. Formerly named kubo.

Table of Contents

Prerequisites

  • A BOSH Director configured with UAA, Credhub, and BOSH DNS runtime config. We recommend using BOSH Bootloader for this.

  • Latest kubo-deployment tarball

  • Accessing the master:

    • Single Master: Set up a DNS name pointing to your master's IP address
    • Multiple Masters: A TCP load balancer for your master nodes.
      • Use a TCP load balancer configured to connect to the master nodes on port 8443.
      • Add healthchecks using either a TCP dial or HTTPS by looking for a 200 OK response from /healthz.
      • if you have used BOSH Bootloader on GCP then you need to manually create a firewall rule. Allow access to port TCP 8443 to VMs in your BBL network tagged cfcr-master from your load balancer's IP.
  • Cloud Config with

    • vm_types named minimal, small, and small-highmem (See cf-deployment for reference)
    • network named default
    • three availability zones azs named z1,z2,z3

    Note: the cloud-config properties can be customized by applying ops-files. See manifests/ops-files for some examples.

    If using loadbalancers then apply the vm_extension called cfcr-master-loadbalancer to the cloud-config to add the instances to your loadbalancers. See BOSH documentation for information on how to configure loadbalancers.

Hardware Requirements

Kubernetes uses etcd as its datastore. The official infrastructure requirements and example configurations for the etcd cluster can be found here.

Deploying CFCR

  1. Upload the latest Xenial stemcell to the director.

  2. Untar the kubo-deployment tarball and rename it kubo-deployment

  3. Deploy

    Option 1. Single Master
    cd kubo-deployment
    
    bosh deploy -d cfcr manifests/cfcr.yml \
      -o manifests/ops-files/misc/single-master.yml \
      -o manifests/ops-files/add-hostname-to-master-certificate.yml \
      -v api-hostname=[DNS-NAME]
    
    Option 2. Three Masters
    cd kubo-deployment
    
    bosh deploy -d cfcr manifests/cfcr.yml \
      -o manifests/ops-files/add-vm-extensions-to-master.yml \
      -o manifests/ops-files/add-hostname-to-master-certificate.yml \
      -v api-hostname=[LOADBALANCER-ADDRESS]
    

    Note: Loadbalancer address should be the external address (hostname or IP) of the loadbalancer you have configured.

    Check additional configurations, such as setting Kubernetes cloud provider, in docs.

  4. Add Kubernetes system components

    bosh -d cfcr run-errand apply-specs
    
  5. Run the following to confirm the cluster is operational

    bosh -d cfcr run-errand smoke-tests
    

Configuring CFCR

Please check out our manifest and ops-files in kube-deployment for examples on how to configure kubo-release. Additionally, we have a doc page to describe how to configure Kubernetes components for the release.

CFCR can be deployed with Pod Security Policies. Check for more details in the doc

Configuring Proxy for CFCR

CFCR allows you to configure proxy for all components. Check recommendations for no proxy settings first.

BOSH Lite

CFCR clusters on BOSH Lite are intended for development. We run the deploy_cfcr_lite script to provision a cluster with the latest stemcell and master of kubo-release. This requires that the cloned kubo-release repository can be found from cd ../kubo-release from within the kubo-deployment directory.

cd kubo-deployment
./bin/deploy_cfcr_lite

Accessing the CFCR Cluster with kubectl

  1. Login to the Credhub Server that stores the cluster's credentials:
    credhub login
    
  2. Find the director name by running
    bosh env
    
  3. Configure the kubeconfig for your kubectl client:
    cd kubo-deployment
    
    ./bin/set_kubeconfig <DIRECTOR_NAME>/cfcr https://[DNS-NAME-OR-LOADBALANCER-ADDRESS]:8443
    

Backup & Restore

We use BBR to perform backups and restores of the etcd node within a CFCR cluster, for both single and three master deployments. Our backup currently takes an etcd snapshot without interruptions to the cluster. However, for restore we take both the kube-apiserver and etcd offline to restore the cluster with the specified snapshot. Restore is a destructive operation that will completely overwrite any existing data on the cluster. For a closer look at the bbr scripts, check out:

To run the bbr cli against a CFCR cluster, follow the steps under "BOSH Deployment" on the BBR documentation page.

Monitoring

Follow the recommendations in etcd's documentation for monitoring etcd metrics.

DNS

By default CFCR runs with CoreDNS in preference of Kube-DNS.

If you are migrating from an earlier version of CFCR, Kube-DNS can be removed by running:

kubectl delete deployment -n kube-system kube-dns

You may notice that a kube-dns service remains, this is also required by the CoreDNS spec.

Deprecations

Deployment scripts and docs

CFCR had a set of scripts, including deploy_bosh and deploy_k8s, that were the primary mechanism we supported to deploy BOSH and Kubernetes clusters. We no longer support these and have removed the corresponding documentation from https://docs-cfcr.cfapps.io

The BOSH oriented method documented in this README.md is the supported method to deploy Kubernetes clusters with CFCR.

Heapster

K8s 1.11 release kicked off the deprecation timeline for the Heapster component, see here for more info. As a result, we're in the process of replacing Heapster with Metrics Server in the upcoming releases of kubo-release.

Heapster can be removed by running:

kubectl delete deployment -n kube-system heapster

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].