Kubernetes Cookbook 编程指南 中文版教程
创建时间:2018-12-07  访问量:3665  7  0

Kubernetes Cookbook 编程指南 中文版教程

Kubernetes 控制概览 

使用命令行接口(CLI)或API(RESTful)操作Kubernetes是十分简单的。本节将使用CLI介绍Kubernetes控制(Kubernetes Control),我们在本章使用的CLI的版本是1.1.3。

开始

在你安装完Kubernetes master之后,你可以运行如下所示的kubectl命令。它显示了kubectl与Kubernetes Master的版本(两个都是1.1.3)。

% kubectl version

Client Version: version.Info{Major:"1", Minor:"1", GitVersion:"v1.1.3",
GitCommit:"6a81b50c7e97bbe0ade075de55ab4fa34f049dc2",
GitTreeState:"clean"}

Server Version: version.Info{Major:"1", Minor:"1", GitVersion:"v1.1.3",
GitCommit:"6a81b50c7e97bbe0ade075de55ab4fa34f049dc2",
GitTreeState:"clean"}

如何去做...

kubectl使用RESTful API 连接Kubernetes API。黙认情况下,它会尝试访问localhost,否则你需要使用--server参数指定访问API server的地址。因此,建议实际操作一下使用kubectl连接API server机器。

如果您在网络上使用kubectl,则需要考虑API服务器的身份验证和授权。 请参见第7章,高级群集管理。

它是如何工作的...

kubectl是Kubernetes集群中唯一的命令,并且它控制Kubernetes集群管理器。在http://kubernetes.io/docs/user-guide/kubectl-overview 上查看更多信息。

另外,kubectl允许使用命令行参数形式或通过文件的方式(使用-f选项)输入信息,但是,强烈建议使用文件的方式,因为你可以像维护代码一样维护Kubernetes集群:

kubectl [command] [TYPE] [NAME] [flags]

上面命令的属性解释如下:

  • command:指定你想要在一个或多个资源上执行的操作选项。

  • TYPE: 指定资源类型。资源类型是区分大小写的,可以指定单数、复数或缩写形式。

  • NAME:指定资源名称。名称是区分大小写的。如果不写,则会显示所有资源的详细信息。

  • flags:指定选项标记。

例如,如果你想到运行nginx,你可以使用如下所示的kubectl run命令。

# /usr/local/bin/kubectl run my-first-nginx --image=nginx
replicationcontroller "my-first-nginx"

然而,你也可以使用YAML文件或JSON文件来执行类似的操作。例如,如下所示的YAML格式文件:

# cat nginx.yaml
apiVersion: v1
kind: ReplicationController
metadata:
	name: my-first-nginx
spec:
    replicas: 1
    template:
        metadata:
            labels:
            	app: nginx
    spec:
        containers:
        - name: my-first-nginx
        	image: nginx

然后,指定create -f 选项来执行kubectl命令,如下所示:

# kubectl create -f nginx.yaml
replicationcontroller "my-first-nginx" created

如果你想要查看副本控制器(replication controller)的状态,键入kubectl get 命令,如下所示:

# kubectl get replicationcontrollers
CONTROLLER 		CONTAINER(S) 	IMAGE(S) 	SELECTOR 	REPLICAS 	AGE
my-first-nginx 	my-first-nginx 	nginx 		app=nginx 	1 			12s

如果你也想要支持缩写形式,键入如下命令:

# kubectl get rc
CONTROLLER		CONTAINER(S) 	IMAGE(S) 	SELECTOR 	REPLICAS 	AGE
my-first-nginx	my-first-nginx 	nginx 		app=nginx 	1 			1m

如果你想要删除这些资源,键入kubectl delete 命令,如下所示:

# kubectl delete rc my-first-nginx
replicationcontroller "my-first-nginx" deleted

kubectl命令还支持多种子命令,使用-h选项查看详情,例如: 

//显示所有的子命令选项
# kubectl -h

//显示get子命令选项
# kubectl get -h

//显示run子命令选项
# kubectl run -h

还可以参见

本节描述子如何使用kubectl命令来控制Kubernetes集群。下面的章节描述了如何设置Kubernetes组件:

  • 第1章构建你自己的Kubernetes中的相关内容,构建数据存储库、创建层叠网络、配置Master和配置Nodes的章节。