Kubernetes Running Locally
1. Requirements
1) Linux
Not running Linux? Consider running Minikube, or on a cloud provider like Google Compute Engine.
It recommends Ubuntu16.04.
2) Go
You need go in your path (see here for supported versions), please make sure it is installed and in your $PATH.
It recommends Go1.9.2+.
$ wget https://golang.org/dl/go1.9.2.linux-amd64.tar.gz
$ tar -C /usr/local -xzf go1.9.2.linux-amd64.tar.gz
PS: It's better to set environments by adding the following sections into /etc/profile like this:
3) Docker
At least Docker 1.10+. Ensure the Docker daemon is running and can be contacted (try docker ps).
Some of the Kubernetes components need to run as root, which normally works fine with docker.
$ apt-get install docker.io
$ docker env
4) etcd
You need an etcd in your path, please make sure it is installed and in your $PATH.
It recommends etcd3.2.6+.
$ wget https://github.com/coreos/etcd/releases/download/v3.2.6/etcd-v3.2.6-linux-amd64.tar.gz
$ tar -C /usr/local -xzf etcd-v3.2.6-linux-amd64.tar.gz
5) OpenSSL
You need OpenSSL installed. If you do not have the openssl command available, the script will print an appropriate error.
$ apt-get install openssl
6) CFSSL
The CFSSL binaries (cfssl, cfssljson) must be installed and available on your $PATH.
The easiest way to get it is something similar to the following:
$ apt-get install build-essential
$ go get -u github.com/cloudflare/cfssl/cmd/...
PS: This command will download and build cfssl packages into $GOPATH/bin
2. Networking
Kubernetes is using CNI as the networking plugin, like flannel,dhcp,loopback and so forth.
1) Build CNI
$ go get github.com/containernetworking/plugins/...
PS: This command will download and build CNI packages into $GOPATH/bin
2) Add Conf
$ mkdir -p /etc/cni/net.d
3. Kubernetes
1) Download
$ git clone https://github.com/kubernetes/kubernetes.git
2) Build
$ cd kubernetes
$ make
3) Set Env
set environments by adding the following sections into /etc/profile like this:
4) Run
$ cd kubernetes
$ hack/local-up-cluster.sh # Build and Run
$ hack/local-up-cluster.sh -O # Already build and Run
5) Test
$ cluster/kubectl.sh get pods
$ cluster/kubectl.sh run my-nginx --image=nginx --replicas=2 --port=80
## begin wait for provision to complete, you can monitor the docker pull by opening a new terminal
$ docker images
## you should see it pulling the nginx image, once the above command returns it
$ docker ps
## you should see your container running!
exit
## end wait
## introspect Kubernetes!
$ cluster/kubectl.sh get pods
PS: The following docker images will be automatically download.
They can be shown by command "docker images".
Actually these containers will be run to provider the Kubernetes DNS Cluster Service.
gcr.io/google_containers/k8s-dns-sidecar-amd64
gcr.io/google_containers/k8s-dns-kube-dns-amd64
gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64
gcr.io/google_containers/pause-amd64
4. Trouble Shooting
1) swap
- Error
Running with swap on is not supported, please disable swap!
- Solution
* Identify configured swap devices and files with cat /proc/swaps.
* Turn off all swap devices and files with swapoff -a.
* Remove any matching reference found in /etc/fstab.
* Optional: Destroy any swap devices or files found in step 1 to prevent their reuse.
* Due to your concerns about leaking sensitive information, you may wish to consider performing some sort of secure wipe.
2) Improvement
$ vi s.sh
~/go/src/kubernetes/hack/local-up-cluster.sh -O
$ source s.sh # simply to run kubernetes server
$ cp kubernetes/_output/bin/kubelet /usr/local/bin/
$ kubelet # simply to replace cluster/kubectl.sh into kubelet
$ alias k=kubectl
3) Improvement
# export SERVICE_ACCOUNT_LOOKUP=false
# export NET_PLUGIN=kubenet #just for gce
$ kubectl exec POD_NAME -it /bin/bash
$ kubectl logs
$ kubectl cluster-info dump
Kubernetes Running Locally的更多相关文章
- 问题解决:psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
错误提示: psql: could not connect to server: No such file or directory Is the server running locally and ...
- 问题解决:psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
错误提示: psql: could not connect to server: No such file or directory Is the server running locally and ...
- 关于Kubernetes(简称K8S)的开启及基本使用,基于Docker Desktop & WSL2
背景介绍 Kubernetes(简称k8s)已成为目前业界容器编排的事实标准,其搭配Docker可建立非常高效便捷的高可扩展.高可用应用服务架构. Kubernetes的名字来自希腊语,意思是&quo ...
- Announcing the public preview of Azure Dev Spaces
Today, we are excited to announce the public preview of Azure Dev Spaces, a cloud-native development ...
- docker官方文档学习-1-Docker for mac安装配置
https://docs.docker.com/docker-for-mac/ Get started with Docker for Mac 首先像在本博客docker-1-环境安装及例子实践处将环 ...
- Distributed Phoenix Chat with PubSub PG2 adapter
转自:https://www.poeticoding.com/distributed-phoenix-chat-with-pubsub-pg2-adapter/ In this article we’ ...
- spark源码分析以及优化
第一章.spark源码分析之RDD四种依赖关系 一.RDD四种依赖关系 RDD四种依赖关系,分别是 ShuffleDependency.PrunDependency.RangeDependency和O ...
- [转]gitlab ci/cd 发布
转自 https://meigit.readthedocs.io/en/latest/configure_gitlab_i18n_and_create_gitlab_ci_with_gitlab_ru ...
- 在PC上测试移动端网站和模拟手机浏览器的5大方
查了很多资料,尝试了大部分方法,下面将这一天的努力总结下分享给大家,也让大家免去看那么多文章,以下介绍的方法,都是本人亲自测试成功的方法,测试环境winxp. 一.Chrome*浏览器 chrome模 ...
随机推荐
- CALayer, CoreGraphics与CABasicAnimation介绍
今天我们来看一下CALayer.CoreGraphics和CABasicAnimation.这些东西在处理界面绘制.动画效果上非常有用. 本篇博文就讲介绍CALayer的基本概念,使用CoreGrap ...
- QGIS与Python
Qgis python开发教程(一):https://blog.csdn.net/u011435933/article/details/80419496
- java爬虫入门
本文内容 涞源于 罗刚 老师的 书籍 << 自己动手写网络爬虫一书 >> ; 本文将介绍 1: 网络爬虫的是做什么的? 2: 手动写一个简单的网络爬虫; 1: 网络爬虫是做 ...
- Python 数据分析—第十章 日期处理
日期时间数据类型及工具 from datetime import datetime now = datetime.now() print(now.year,now.month,now.day) #以毫 ...
- VCS简介
VCS -Version Control System 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统. 特征 1.记录文件的所有历史变化 2.随时可恢复到任何一个历史状 ...
- 浅谈HTTPS以及Fiddler抓取HTTPS协议(摘抄)
一.浅谈HTTPS 我们都知道HTTP并非是安全传输,在HTTPS基础上使用SSL协议进行加密构成的HTTPS协议是相对安全的.目前越来越多的企业选择使用HTTPS协议与用户进行通信,如百度.谷歌等. ...
- java 异步调用与多线程
异步与多线程的区别 一.异步和多线程有什么区别?其实,异步是目的,而多 线程是实现这个目的的方法.异步是说,A发起一个操作后(一般都是比较耗时的操作,如果不耗时的操作 就没有必要异步了),可以继续自顾 ...
- PowerDesigner Comment与Name相互替换
从name替换comment Option Explicit ValidationMode = True InteractiveMode = im_Batch Dim mdl ' the curren ...
- [Erlang15]“hello world”与<<”hello world”>>的具体区别是什么?
参见 :http://learnyousomeerlang.com/buckets-of-sockets 为了加深理解,自译如下,若理解有误或更好的建议,请帮忙指出, :) Buckets of So ...
- List<object>进行Distinct()去重
有时我们会对一个list<T>集合里的数据进行去重,C#提供了一个Distinct()方法直接可以点得出来.如果list<T>中的T是个自定义对象时直接对集合Distinct是 ...