Notice: Constant WP_DEBUG already defined in /var/www/html/wordpress/wp-content/plugins/changyan/sohuchangyan.php on line 12

Notice: Constant WP_DEBUG_LOG already defined in /var/www/html/wordpress/wp-content/plugins/changyan/sohuchangyan.php on line 13

Notice: Constant WP_DEBUG_DISPLAY already defined in /var/www/html/wordpress/wp-content/plugins/changyan/sohuchangyan.php on line 14
【转载】译文 | 一步步教你运行本地Kubernetes集群,变更并测试资源代码 – zoues

LOADING

Follow me

【转载】译文 | 一步步教你运行本地Kubernetes集群,变更并测试资源代码
四月 19, 2017|DockerPaaS

【转载】译文 | 一步步教你运行本地Kubernetes集群,变更并测试资源代码

【转载】译文 | 一步步教你运行本地Kubernetes集群,变更并测试资源代码

译文 | 一步步教你运行本地Kubernetes集群,变更并测试资源代码

作者:Tomer Ben David

翻译:袁思思

来源:DZone

原文链接:https://dzone.com/articles/easy-step-by-step-local-kubernetes-source-code-cha


Kubernetes是个有很多参与者的大型项目。不幸的是,通过实际的 kubernetes server 来贡献辅助编辑和测试代码是不容易的。这个文件很复杂,也不是一直在工作,还有点过时。另外,它没有给出全部的细节,通过一个资源文件变更、编辑和运行的例子,让你能从零开始在本地 kubernets cluster 处理代码。这就是这篇文章所要做的。


Step 1

创建一个VM并进入


我们说好从零开始的,对吧~所以我们将创建一个新的、空的VM,那么第一步就是运行它。


1. 连接到: https://console.cloud.google.com.  

2. 点击 “Create New Project.”

3. 输入 “kubernetes-test”

4. 点击”Compute Engine.”

5. 点击”VM Instances.”

6. 点击”Create.”

7. 选择 Ubuntu16.04  系统,并且给它一个充足的内存。我选择了26GB 内存——Kubernetes喜欢内存,不然它会失败。下面是我VM创建的图片。

8. 点击”ssh” –> “open in browser.”

9. 你现在登录到你新的Google云平台VM实例了。

译文 | 一步步教你运行本地Kubernetes集群,变更并测试资源代码

这是VM配置应该的样子,注意确认有足够的内存。


Step 2

为Kubernetes准备VM


我们将安装:

1. GCC, Make, socat, and git.

2. Docker.

3. etcd


ssh到VM,然后安装GCC, Make, socat, 和git:

# Install compilation and source code git tool

sudo su – 

 apt-get install -y gcc make socat git


安装 etcd :

# Install etcd

curl -L https://github.com/coreos/etcd/releases/download/v3.0.17/etcd-v3.0.17-linux-amd64.tar.gz -o etcd-v3.0.17-linux-amd64.tar.gz && tar xzvf etcd-v3.0.17-linux-amd64.tar.gz && /bin/cp -f etcd-v3.0.17-linux-amd64/{etcd,etcdctl} /usr/bin && rm -rf etcd-v3.0.17-linux-amd64*


安装golang (需要1.8+):

# Install golang

curl -sL https://storage.googleapis.com/golang/go1.8.linux-amd64.tar.gz | tar -C /usr/local -zxf –

# Add it to your PATH

export GOPATH=/gopath

export PATH=$PATH:$GOPATH/bin:/usr/local/bin:/usr/local/go/bin/


Step 3

获得Kubernetes资源代码


在这步里,我们将复制Git Kubernetes资源代码,并添加到 GOPATH 。将使用 –depth 1 ,因此我们不取整个历史,只拿最后的版本。

# Get kubernetes source code

git clone –depth 1 https://github.com/kubernetes/kubernetes


现在增加Kubernetes资源到 GOPATH :

# Add kubernetes source code to GOPATH

git clone https://github.com/kubernetes/kubernetes $GOPATH/src/k8s.io/kubernetes

cd $GOPATH/src/k8s.io/kubernetes


Step 4

编辑和运行Kubernetes


这很简单,它们有个能力叫做local-up-cluster.sh 

# Compile and run kubernetes (will take some time)

export KUBERNETES_PROVIDER=local

hack/local-up-cluster.sh


输出应该是:

# Successfull output for kubernetes compile and start

Cluster “local-up-cluster” set.

use ‘kubectl –kubeconfig=/var/run/kubernetes/admin-kube-aggregator.kubeconfig’ to use the aggregated API server

kubelet ( 15806 ) is running.

Local Kubernetes cluster is running. Press Ctrl-C to shut it down.

Logs:

  /tmp/kube-apiserver.log

  /tmp/kube-controller-manager.log

  /tmp/kube-proxy.log

  /tmp/kube-scheduler.log

  /tmp/kubelet.log

To start using your cluster, you can open up another terminal/tab and run:

  export KUBECONFIG=/var/run/kubernetes/admin.kubeconfig

  cluster/kubectl.sh

Alternatively, you can write to the default kubeconfig:

  export KUBERNETES_PROVIDER=local

  cluster/kubectl.sh config set-cluster local –server=https://localhost:6443 –certificate-authority=/var/run/kubernetes/server-ca.crt

  cluster/kubectl.sh config set-credentials myself –client-key=/var/run/kubernetes/client-admin.key –client-certificate=/var/run/kubernetes/clien

t-admin.crt

  cluster/kubectl.sh config set-context local –cluster=local –user=myself

  cluster/kubectl.sh config use-context local

  cluster/kubectl.sh


Step 5

测试Kubernetes


打开一个新的shell到VM,cd到GOPATH  里的Kubernetes资源目录,并且测试:

# Connect to local k8s in a new shell

cd $GOPATH/src/k8s.io

export GOPATH=/gopath

export PATH=$PATH:$GOPATH/bin:/usr/local/bin:/usr/local/go/bin/

cd $GOPATH/src/k8s.io/kubernetes

export KUBERNETES_PROVIDER=local

cluster/kubectl.sh config set-cluster local –server=http://127.0.0.1:8080 –insecure-skip-tls-verify=true

cluster/kubectl.sh config set-context local –cluster=local

cluster/kubectl.sh config use-context local

# Test local k8s

cluster/kubectl.sh cluster-info

Kubernetes master is running at http://127.0.0.1:8080 # => Great!


Step 6

变更资源代码


我们将在 kubernetes-apiserver  里改变一个入口,增加一个日志行,看看我们在日志中看到的:

// Edit api server server.go

// root@instance-3:/gopath/src/k8s.io/kubernetes# vi cmd/kube-apiserver/app/server.go

// Search for func Run(runOptions *options.ServerRunOptions, stopCh <-chan struct{}) error {

// Add this log line just before: if insecureServingOptions != nil {

        glog.Infof(“HELLO FROM API SERVER”) // We just added this!

        // run the insecure server now, don’t block.  It doesn’t have any aggregator goodies since authentication wouldn’t work

        if insecureServingOptions != nil {

                insecureHandlerChain := kubeserver.BuildInsecureHandlerChain(kubeAPIServer.GenericAPIServer.HandlerContainer.ServeMux, kubeAPIServe

rConfig.GenericConfig)


Step 7

运行并且测试 Kubernetes资源代码变更


停止本地集群并且用root@instance-3:/gopath/src/k8s.io/kubernetes# hack/local-up-cluster.sh 重启。


现在跟踪API服务器,你将看到这行:

W0412 16:29:06.603632   15625 genericapiserver.go:305] Skipping API autoscaling/v2alpha1 because it has no resources.

W0412 16:29:06.604382   15625 genericapiserver.go:305] Skipping API batch/v2alpha1 because it has no resources.

I0412 16:29:06.621028   15625 server.go:110] HELLO FROM API SERVER ### THIS IS OURS ### 🙂

I0412 16:29:06.621082   15625 insecure_handler.go:111] Serving insecurely on 127.0.0.1:8080

[restful] 2017/04/12 16:29:06 log.go:30: [restful/swagger] listing is available at https://10.128.0.2:6443/swaggerapi/

The documentation for starting up a local Kubernetes cluster from scratch then doing a source code update and testing it is somewhat lacking or incomprehensible.  We have just followed a few simple steps and fetched a Kubernetes cluster and compiled and changed its API server, then viewed our change.


从头开始启动一个本地Kubernetes集群的文件,然后升级资源代码,并且测试是有点不足或难以理解的。我们只有跟着一些简单的步骤,并拿一个Kubernetes集群,编辑、变更它的API服务器,然后观察它的变化。

 

译文 | 一步步教你运行本地Kubernetes集群,变更并测试资源代码

上期回顾

关于BoCloud博云

BoCloud 博云,为企业级客户提供针对互联网化、大数据业务应用、去IOE 化(X86 服务器规模化应用)的底层云化架构和智能云运维系统,运用最新容器技术协助企业完成IT 系统云架构的实施和运维, 帮助企业客户降低成本、提升效率、简化运维、提高系统可靠性和安全性。凭借对客户业务流程和应用的深刻理解,以及先进技术产品的持续研发, BoCloud 博云以创新云技术支撑企业核心业务,促进企业IT 系统的不断进化。

www.bocloud.com.cn

译文 | 一步步教你运行本地Kubernetes集群,变更并测试资源代码
no comments
Share