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模 ...
随机推荐
- SpringMVC源码解读 - HandlerMapping - SimpleUrlHandlerMapping初始化
摘要: SimpleUrlHandlerMapping只是参与Handler的注册,请求映射时由AbstractUrlHandlerMapping搞定. 初始化时,通过setMappings(Prop ...
- 设计模式16:Mediator 中介者模式(行为型模式)
Mediator 中介者模式(行为型模式) 依赖关系的转化 动机(Motivation) 在软件构建过程中,经常出现多个对象互相关联交互的情况,对象之间经常会维持一种复杂的应用关系,如果遇到一些需求的 ...
- 编写高质量代码改善C#程序的157个建议——建议150:使用匿名方法、Lambda表达式代替方法
建议150:使用匿名方法.Lambda表达式代替方法 方法体如果过小(如小于3行),专门为此定义一个方法就会显得过于繁琐.比如: static void SampeMethod() { List< ...
- 深入理解java虚拟机(十三) Java 即时编译器JIT机制以及编译优化
在部分的商用虚拟机中,Java 程序最初是通过解释器( Interpreter )进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁的时候,就会把这些代码认定为“热点代码”.为了提高热点代码的 ...
- XJOI 3629 非严格次小生成树(pqq的礼物)
题目描述: 有一天,pqq准备去给×i×准备礼物,他有一些礼品准备包装一下,他用线将这些礼物连在一起,不同的礼物因为风格不同所以连接它们需要不同价值的线.风格差异越大,价格越大(所以两个礼物之间只有一 ...
- Java NIO学习-详细内容(一)
一.三大类 1.Channels FileChannel DatagramChannel SocketChannel ServerSocketChannel 2.Selector与SelectionK ...
- nutch2.1+mysql+elasticsearch整合linux单机部署
这次主要介绍下nutch2.1和mysql和elasticsearch的整合,是在单机上运行,并不是分布式部署.1.下载nutch2.1 nutch下载地址:http://labs.mop.com/a ...
- 使用bmfont制作字体
本地显示正常 将制作好的字体上传 别人用不好使 制作完场景没ctrl+s 保存 ctrl+s保存之后生成另外的文件
- HttpWebRequest(System.Net)模拟HTTP发送POST
相关参考网上很多,但需要理解并转成自己的情况 public static string HttpWebRequestPost(string url, string param) { HttpWebRe ...
- git .gitignore忽略规则不生效解决办法
忽略规则不生效, 原因是.gitignore只能忽略那些原来没有被track的文件, 如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的. 那么解决方法就是先把本地缓存删除(改变成 ...