GithubHelp home page GithubHelp logo

kubernetes / minikube Goto Github PK

View Code? Open in Web Editor NEW
28.4K 483.0 4.8K 211.92 MB

Run Kubernetes locally

Home Page: https://minikube.sigs.k8s.io/

License: Apache License 2.0

Go 56.46% Shell 4.02% Makefile 1.63% Python 0.01% NSIS 0.14% PowerShell 0.30% Dockerfile 0.39% CSS 0.03% HTML 36.24% JavaScript 0.58% NASL 0.03% C++ 0.04% C 0.01% SCSS 0.10% Lua 0.03%
minikube kubernetes cluster containers go cncf

minikube's Introduction

minikube

Actions Status GoReport Widget GitHub All Releases Latest Release OpenSSF Best Practices OpenSSF Scorecard

minikube logo

minikube implements a local Kubernetes cluster on macOS, Linux, and Windows. minikube's primary goals are to be the best tool for local Kubernetes application development and to support all Kubernetes features that fit.

screenshot

Features

minikube runs the latest stable release of Kubernetes, with support for standard Kubernetes features like:

As well as developer-friendly features:

For more information, see the official minikube website

Installation

See the Getting Started Guide

๐Ÿ“ฃ Please fill out our fast 5-question survey so that we can learn how & why you use minikube, and what improvements we should make. Thank you! ๐Ÿ‘ฏ

Documentation

See https://minikube.sigs.k8s.io/docs/

More Examples

See minikube in action here

Governance

Kubernetes project is governed by a framework of principles, values, policies and processes to help our community and constituents towards our shared goals.

The Kubernetes Community is the launching point for learning about how we organize ourselves.

The Kubernetes Steering community repo is used by the Kubernetes Steering Committee, which oversees governance of the Kubernetes project.

Community

minikube is a Kubernetes #sig-cluster-lifecycle project.

Join our community meetings:

minikube's People

Contributors

aaron-prindle avatar afbjorklund avatar andriydev avatar azhao155 avatar balopat avatar blueelvis avatar dependabot[bot] avatar dlorenc avatar govargo avatar ilya-zuyev avatar jeffmaury avatar jimmidyson avatar josedonizetti avatar judahnour avatar k8s-ci-robot avatar klaases avatar laozc avatar luxas avatar medyagh avatar minikube-bot avatar mschwrz avatar n0npax avatar prasadkatti avatar prezha avatar r2d4 avatar sharifelgamal avatar spowelljr avatar tstromberg avatar x7uplime avatar yosshy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

minikube's Issues

Add multi-node support

To provide a complete kubernetes experience, user might want to play & experience with features like scheduling and daemon set, etc. If minikube can emulate multiple kubernetes nodes, users can then use most of the kubernetes features.

This is probably not necessary in the first few versions of minikube. Once the single node setup is stable, we can look at emulating multiple nodes.

Up votes from users on this issue can be used as a signal to start working on this feature.

Allow configuration of Kube components

Currently there isn't a way to change localkube's configuration without recompiling. It would be useful if localkube could be configured using a set of YAML files.

Kube

Non-kube

A potential issue is that the structs for API Server, SkyDNS, and Etcd don't have JSON tags.

It would be nice if these could be editable on the host computer (perhaps in ~/.minikube) and could be synced over to the VM or mounted.

Build and release iso

This should have a fixed version of docker and other dependencies. We can release it separately (via GCS download) or maybe use go-bindata to pack it all up into the CLI binary.

Proxy for easier access to NodePort services

One of the major hurdles people have using k8s as a development platform is having easy access to DNS and uncomplicated access to "localhost" ports.

This might be something we can tackle in this bug, I discussed the idea here: coreos/coreos-kubernetes#444

Option 1 - Fancy Proxy

This is an idea to make working with the single-node cluster easier. The basic idea would be to have something like kubectl port-forward that forwards every nodePort to localhost based on the original targetPort. So, for example:

# User does something like this
$ kubectl run --image quay.io/philips/golang-outyet outyet
$ kubectl expose deployment outyet --target-port=8080 --port=8080 --type=NodePort


# This is the part that needs automating: 
$ socat tcp-listen:8080,reuseaddr,fork tcp:172.17.4.99:$(kubectl get service outyet -o template --template="{{range.spec.ports}}{{.nodePort}}{{end}}")

This would be a huge boon to people trying to use kubernetes as a development workflow for running caches, services, etc and developing against those APIs.

Psuedo code event loop:

for {
  for _, e := range kubernetesServiceEvent() {
    if e == newNodePort {
      go proxy(context, e.NodePort, e.NodeIP, "localhost", e.TargetIP)
    } 
    if e == dyingNodePort {
      contexts[e.NodePort].Done()
    }
  } 
}

Option 2 - VPN

Having a simple VPN setup would allow a user to get access to cluster DNS and cluster networking. The downside here is that stuff like OpenVPN, etc is a major hurdle. Anyone know of a simple VPN in Go that works cross platform?

Update Kubernetes to HEAD

@dlorenc you mentioned you were working on this.

Good to know, as I just had been thinking about doing it too :)
Assigning that to you then.

Secure access to minikube

We should have secure access to minikube.
Even with a self signed cert, it should be https and with token access.

Support mounting host directories into pods

Having the ability to mount local directories to pods will improve the developer experience a lot.

  • Builds can be done in a local kube cluster
  • Testing changes to an app will be much faster, without requiring creation of a docker container and a registry.

Given that most hypervisors can already support mapping host directories, adding this feature should be straightforward.

Compatible with Docker for Mac

Several Localkube users have requested support for Docker for Mac, instead of relying directly on VirtualBox. Wanted to open an issue to discuss whether this is something we want to pursue.

ssh onto node

An issue with documentation I guess, how can I ssh onto the machine that minikube starts?

This is an issue when using private docker repos for example as I need to login to docker hub on the node that minikube will pull images on.

Figure out testing strategy for localkube/k8s

We'll need to test localkube vs. kubernetes at HEAD (or as close to it as possible). This is non-trivial because localkube vendors and directly links in kubernetes packages.

One idea:

Have a CI job that updates all vendored kubernetes components from master daily and runs tests, then discards the changes. This job should alert on failures, which would indicate manual work will need to be done.

Weekly/monthly updates can be made and committed by an actual person.

cc @vishh Does this make sense?

Package/install/link in kubectl code

If users don't have kubectl on their path we should offer to install it somehow. We could link it into the minikube binary like monokube does or use an official build.

too much memory during build with docker-machine

Hi,

I tried a build using a docker-machine based host on OSX.
Bumped the host to 2 GB ram on virtual box and the build keeps failing.

Status: Downloaded newer image for golang:1.6
CGO_ENABLED=1 go build -ldflags="-s" -o ./out/localkube ./cmd/localkube
# k8s.io/minikube/cmd/localkube
/usr/local/go/pkg/tool/linux_amd64/link: running gcc failed: fork/exec /usr/bin/gcc: cannot allocate memory

It would be great to make the build without docker and/or to reduce the needed RAM.

-sebastien

Support serviceaccounts

Without them DNS addon won't work (and lots of other things as well)
It is not an issue if we keep relying on weave in localkube.

Allow for privileged nodes

Ran into an issue today helping someone set up Pachyderm on localkube around privileged nodes. We should probably support these in minikube.

Bundle the localkube binary with the release

Rather than fetching it from github, we should include a fixed copy of the localkube binary that will run in the VM. This can either be transferred in from the minikube CLI or baked into the VM image.

Switch build.sh to a Makefile

Once the localkube merge lands (#39 ), the build is getting complicated enough to deserve a real makefile. We'll want to building localkube for a different OS than minikube in most cases, with different sets of flags (static vs. dynamic linking, etc.).

Unable to do port forwarding: socat not found

I'm trying to forward local port 5000 to a pod port 5000 with kubectl:

kubectl port-forward --namespace kube-system kube-registry-v0-4icv2_kube-system 5000:5000 &

But I get the following error:

an error occurred forwarding 5000 -> 5000: error forwarding port 5000 to pod kube-registry-v0-4icv2_kube-system, uid : unable to do port forwarding: socat not found

Labels for this repo

I just changed colors for the cla: xx labels to match with the official Kubernetes repo.

In this issue we should consider which labels we need.
Examples:

  • priority/P[0-3]
  • area/(localkube|minikube|dependencies|build-release|testing|??)
  • help-wanted
  • lgtm
  • release-note
  • machine/(windows|osx|linux|arm)
  • kind/(bug|feature|documentation|support|??)

Also, we should remove those labels we aren't using, but are there by default
@dlorenc @vishh

DNS not working (or not enabled)?

Using localkube, SkyDNS was enabled however it does not seem to be setup on minikube:

[ root@curl-131556218-gq56k:/ ]$ nslookup kubernetes.default
Server:    10.1.30.3
Address 1: 10.1.30.3

nslookup: can't resolve 'kubernetes.default'
[ root@curl-131556218-gq56k:/ ]$

Is it not enabled? It seems like something that is quite commonly used. Is it a bug or me doing something wrong?

Release version 0.1.0

Once we've fixed all the issues in the 0.1 milestone we should do a build and release. We'll have to build and tag an ISO as well as the minikube binaries. Right now it's only been tested on Mac and Linux, so we should stick to those. Windows support can come later.

certificate signed by unknown authority

I was using minikube, then I started using an AWS cluster then switched back to minikube and now I get this :(

โžœ  minikube git:(master) kubectl cluster-info
error: couldn't read version from server: Get https://192.168.99.100:443/api: x509: certificate signed by unknown authority

I don't really understand what's going on here?

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.