Coder Social home page Coder Social logo

drewboswell / charm-kubernetes-master Goto Github PK

View Code? Open in Web Editor NEW

This project forked from charmed-kubernetes/charm-kubernetes-control-plane

0.0 1.0 0.0 618 KB

Kubernetes master charm. Report bugs at https://bugs.launchpad.net/charmed-kubernetes.

License: Other

Python 96.15% Shell 3.85%

charm-kubernetes-master's Introduction

Kubernetes-master

Kubernetes is an open source system for managing application containers across a cluster of hosts. The Kubernetes project was started by Google in 2014, combining the experience of running production workloads combined with best practices from the community.

The Kubernetes project defines some new terms that may be unfamiliar to users or operators. For more information please refer to the concept guide in the getting started guide.

This charm is an encapsulation of the Kubernetes master processes and the operations to run on any cloud for the entire lifecycle of the cluster.

This charm is built from other charm layers using the Juju reactive framework. The other layers focus on specific subset of operations making this layer specific to operations of Kubernetes master processes.

Deployment

This charm is not fully functional when deployed by itself. It requires other charms to model a complete Kubernetes cluster. A Kubernetes cluster needs a distributed key value store such as Etcd and the kubernetes-worker charm which delivers the Kubernetes node services. A cluster requires a Software Defined Network (SDN), a Container Runtime such as containerd, and Transport Layer Security (TLS) so the components in a cluster communicate securely.

Please take a look at the Canonical Distribution of Kubernetes or the Kubernetes core bundles for examples of complete models of Kubernetes clusters.

Resources

The kubernetes-master charm takes advantage of the Juju Resources feature to deliver the Kubernetes software.

In deployments on public clouds the Charm Store provides the resource to the charm automatically with no user intervention. Some environments with strict firewall rules may not be able to contact the Charm Store. In these network restricted environments the resource can be uploaded to the model by the Juju operator.

Snap Refresh

The kubernetes resources used by this charm are snap packages. When not specified during deployment, these resources come from the public store. By default, the snapd daemon will refresh all snaps installed from the store four (4) times per day. A charm configuration option is provided for operators to control this refresh frequency.

NOTE: this is a global configuration option and will affect the refresh time for all snaps installed on a system.

Examples:

## refresh kubernetes-master snaps every tuesday
juju config kubernetes-master snapd_refresh="tue"

## refresh snaps at 11pm on the last (5th) friday of the month
juju config kubernetes-master snapd_refresh="fri5,23:00"

## delay the refresh as long as possible
juju config kubernetes-master snapd_refresh="max"

## use the system default refresh timer
juju config kubernetes-master snapd_refresh=""

For more information on the possible values for snapd_refresh, see the refresh.timer section in the system options documentation.

Configuration

This charm supports some configuration options to set up a Kubernetes cluster that works in your environment:

authorization-mode

Comma separated authorization modes. For example, enable RBAC and Node authorization:

juju config kubernetes-master authorization-mode="RBAC,Node"

dns_domain

The domain name to use for the Kubernetes cluster for DNS.

enable-dashboard-addons

Enables the installation of Kubernetes dashboard, Heapster, Grafana, and InfluxDB.

DNS for the cluster

The DNS add-on allows the pods to have a DNS names in addition to IP addresses. The Kubernetes cluster DNS server (based off the SkyDNS library) supports forward lookups (A records), service lookups (SRV records) and reverse IP address lookups (PTR records). More information about the DNS can be obtained from the Kubernetes DNS admin guide.

Actions

The kubernetes-master charm models a few one time operations called Juju actions that can be run by Juju users.

create-rbd-pv

This action creates RADOS Block Device (RBD) in Ceph and defines a Persistent Volume in Kubernetes so the containers can use durable storage. This action requires a relation to the ceph-mon charm before it can create the volume.

restart

This action restarts the master processes kube-apiserver, kube-controller-manager, and kube-scheduler when the user needs a restart.

More information

Contact

The kubernetes-master charm is free and open source operations created by the containers team at Canonical.

Canonical also offers enterprise support and customization services. Please refer to the Kubernetes product page for more details.

charm-kubernetes-master's People

Contributors

hyperbolic2346 avatar ktsakalozos avatar johnsca avatar kwmonroe avatar cynerva avatar joedborg avatar tvansteenburgh avatar wwwtyro avatar calvinhartwell avatar drewboswell avatar liggitt avatar smarterclayton avatar dixudx avatar aerostitch avatar knkski avatar kevin-wangzefeng avatar marcoceppi avatar mbruzek avatar matthyx avatar phvalguima avatar variabledeclared avatar xtrusia avatar mrhohn avatar axinojolais avatar halfcrazy avatar xiangpengzhao avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.