其他更多参见: Kubernetes kubectl create 命令详解
2、 delete 命令:删除资源
其他更多参见: Kubernetes kubectl delete 命令详解
3、 kubectl get - 列闭消铅出一个或多个资源。
其他更多参考: Kubernetes kubectl get 命令详解
4、explain命令:用于显示资源文档信息
5、edit命令:用于编辑资源信息
label命令 :用于更新(增加、修改或删除)资源上的 label(标签)
语法
label [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--resource-version=version]
completion 命令:用于设置kubectl命令自动补全
rollout命令 :用于对资源进行管理
可用资源包括:deployments,daemonsets。
子命令:
rolling-update命令: 执行指定ReplicationController的滚动更新。
该命令创建了一个新的RC, 然后一次更新一个pod方式逐步使用新的PodTemplate,最终实现Pod滚动更新,new-controller.json需要与之前RC在相同的namespace下。
scale命令 :扩容或缩容 Deployment、ReplicaSet、Replication Controller或 Job 中Pod数量
scale也可以指定多个前提条件,如:当前副本数量或 --resource-version ,进行伸缩比例设置前,系统会先验证前提条件是否成立。这个就是d性伸缩策略
autoscale命令: 这个比scale更加强大,也是d性伸缩策略 ,它是根据流量的多少来自动进行扩展或者缩容
指定Deployment、ReplicaSet或ReplicationController,并创建已经定义好资源的自动伸缩器。使用自动伸缩器可以根据需要自动增加或减少系统中部署的pod数量。
certificate命令 :用于证书资源管理,授权等
cluster-info命令: 显示集群信息
top命令: 用于查看资源的cpu,内存磁盘等资源的使用率
cordon命令 :用于标记某个节点不可调度
uncordon命令: 用于标签节点可以调度
drain命令: 用于在维护期间排除节点。
taint命令 :参见: https://blog.frognew.com/2018/05/taint-and-toleration.html
describe命令 :显示特定资源的详细信息
logs命令: 用于在一个pod中打印一个容器的日志,如果pod中只有一个容器,可以省略容器名
exec命令:进入容器进行交互,在容器中执行命令
kubectl exec POD [-c CONTAINER] -- COMMAND [args...]
-c, --container="" : 容器名。如果未指定,使用pod中的一个容器。
-p, --pod="" : Pod 名。
-i, --stdin[=false] : 将控制台输入发送到容器。
-t, --tty[=false] : 将标准输入控制台作为容器的控制台输入。
cp 命令:拷贝文件或者目录到pod容器中
用于pod和外部的文件交换,类似于docker 的cp,就是将容器中的内容和外部的内容进行交换。
其他命令: api-servions
api-servions命令 :打印受支持的api版桥吵本信息
apply 命令:
apply 命令:通过文件名或者标准输入对资源应用配置
通过文件名或控制台输入,对资源进行配置。 如果资源不存在,将会新建一个。可以使用 JSON 或者 YAML 格式。
语法
小结 :
以上是 kubectl 一些基本命令 *** 作,更多请查看 http://docs.kubernetes.org.cn/683.html
参考链接
https://www.jianshu.com/p/304c629d127c
https://kubernetes.io/zh/docs/reference/kubectl/cheatsheet
create 命令 :根据文件或者输入来创建资源
delete 命令 :删除资源
get 命令 :获得资源信息
run 命令 :在集群中创建并运行一个或多个容器镜像。
更详细用法参见 : http://docs.kubernetes.org.cn/468.html
expose 命令 :创建一个service服务,并且暴露端口让外部可以访问
更多expose详细用法参见 : http://docs.kubernetes.org.cn/475.html
set 命令 :配置应用的一些特定资源,也可以修改应用已有的资源
set 命令详情参见 : http://docs.kubernetes.org.cn/669.html
这个命令用于设置资源的一些范围限制。
资源对象中的 Pod 可以指定计算资源需求(CPU-单位m、内存-单位Mi),即使用的最小资源请求(Requests),限制(Limits)的最大资源需求,Pod将保证使用在设置的资源数量范围。
对于每个Pod资源,如果指定了 Limits (限制)值,并省略了 Requests (请求),则 Requests 默认为 Limits 的值。
可用资源对象包括(支持大小写) : replicationcontroller 、 deployment 、 daemonset 、 job 、 replicaset 。
例如 :
设置资源的 selector (选择器)。如果在调用"set selector"命令之前已经存在选择器,则新创建的选择器将覆盖原来的选择器。
selector 必须以字母或数字开头,最多包含63个字符,可使用:字母、数字、连字符" - " 、点"."和下划线" _ "。如果指定了--resource-version,则更新将使用此资源版本,否则将使用现有的资源版本。
注意 :目前 selector 命历手握令只能用于 Service 对象。
用于更新现有资源的容器镜像。
可用资源对象包括: pod (po) 、 replicationcontroller (rc) 、 deployment (deploy) 、 daemonset (ds) 、 job 、 replicaset (rs) 。
explain 命令 :用于显示资源文档信息
edit 命令 : 用于编辑资源信息
label命令 : 用于更新(增加、修改或删除)资源上的 label(标签)
例 :
annotate命令 :更新一个或多个资源的Annotations信息。也就是注解信息,可以方便的查看做了哪些 *** 作。
例子 :
completion命令 :用于设置 kubectl 命令自动补全
BASH
ZSH
rollout 命令 : 用于对资源进行管理
可用资源包括: deployments , daemonsets 。
子命令 :
rolling-update命令 : 执行指定ReplicationController的滚动更新。
该命令创建了一个新的 RC , 然后一次更新一个 pod 方式逐步使用新的 PodTemplate ,最终实现 Pod 滚动更新, new-controller.json 需要与之前 RC 在相同的 namespace 下。
scale命令 :扩容或缩容 Deployment 、 ReplicaSet 、 Replication Controller 或 Job 中 Pod 数量
scale 也可以指定多个前提条件,如:当前副本数量或 --resource-version ,进行伸缩比例设置前,系统会先验证前提条件是否成立。这个就是d性伸缩策略。
autoscale命令 :这个比 scale 更加强大,也是d性伸肢庆缩策略 ,它是根据流量的多少来自薯渗动进行扩展或者缩容。
指定 Deployment 、 ReplicaSet 或 ReplicationController ,并创建已经定义好资源的自动伸缩器。使用自动伸缩器可以根据需要自动增加或减少系统中部署的pod数量。
certificate命令 :用于证书资源管理,授权等
cluster-info 命令 :显示集群信息
top 命令 :用于查看资源的cpu,内存磁盘等资源的使用率
cordon命令 :用于标记某个节点不可调度
uncordon命令 :用于标签节点可以调度
drain命令 : 用于在维护期间排除节点。
taint命令 :用于给某个 Node 节点设置污点
describe命令 :显示特定资源的详细信息
logs命令 :用于在一个pod中打印一个容器的日志,如果pod中只有一个容器,可以省略容器名
参数选项 :
exec命令 :进入容器进行交互,在容器中执行命令
命令选项 :
attach命令 :连接到一个正在运行的容器。
参数选项 :
cp命令 :拷贝文件或者目录到pod容器中
用于 pod 和外部的文件交换,类似于 docker 的 cp ,就是将容器中的内容和外部的内容进行交换。
api-servions命令 :打印受支持的 api 版本信息
help命令 :用于查看命令帮助
config 命令 : 用于修改 kubeconfig 配置文件(用于访问api,例如配置认证信息)
设置 kubectl 与哪个 Kubernetes 集群进行通信并修改配置信息。查看 使用 kubeconfig 跨集群授权访问 文档获取详情配置文件信息。
version 命令 :打印客户端和服务端版本信息
plugin 命令 :运行一个命令行插件
apply命令 :通过文件名或者标准输入对资源应用配置
通过文件名或控制台输入,对资源进行配置。 如果资源不存在,将会新建一个。可以使用 JSON 或者 YAML 格式。
参数选项 :
patch命令 :使用补丁修改,更新资源的字段,也就是修改资源的部分内容
replace命令 : 通过文件或者标准输入替换原有资源
convert命令 :不同的版本之间转换配置文件
要以特定格式将详细信息输出到终端窗口,可以将 -o 或 --output 参数添加到支持的 kubectl 命令。
Kubectl 日志输出详细程度是通过 -v 或者 --v 来控制的,参数后跟了一个数字表示日志的级别。 Kubernetes 通用的日志习惯和相关的日志级别在 这里 有相应的描述。
以上是 kubectl 一些基本命令 *** 作,需要时方便查阅。
二进制包
注:推荐用二进制包部署Kubernetes集群,虽手动部署麻烦,但可以学习很多工作原理利于后期维护。
环境
可以使用VMware虚拟机,宿主机必须8G内存以上
• 服务器可以访问外网,有从网上拉取镜像的需求
单Master服务器规划:( 注:部署时候根据具体环境进行IP地址调整即可 )
这里使用3台组建集群,可容忍1台机器故障,当然,你也可以使用5台组建集群
etcd1: 192.168.3.110 etcd2: 192.168.3.112 etcd3: 192.168.3.113
cfssl是一个开源的证书管理工具,使用json文件生成证书,相比openssl更方便使用。
找任意一台服务器 *** 作,这里用Master节点。
创建工作目录:
自签CA:
生成证书:
会生成ca.pem和ca-key.pem文件。
创建证书申请文件:
注:上述文件hosts字段中IP为所有etcd节点的集群内部通信IP,一个都不能少!为了方便后期扩容可以多写几个预留的IP。
生成证书:
会生成etcd.pem和春陵让etcd-key.pem文件。
https://github.com/etcd-io/etcd/releases/download/v3.5.1/ etcd-v3.5.1-linux-amd64.tar.gz
以下在节点1上 *** 作,然后将文件拷贝到其他集群机器
把刚才生成的证书拷贝到配置文件中的路径:
注意修改节点2和节点3分别etcd.conf配置,按照下面提示的修改
启动各节点的etcd服务
如果输出上面信息,就说明集群部署成功。
如果有问题看日志:/var/log/message
docker二进制下载地址:
https://download.docker.com/linux/static/stable/x86_64/docker-19.03.9.tgz
注:使用yum安装也行
集群所有机器都安装docker
生成证扒局书:
会生成ca.pem和ca-key.pem文件。
创建证书申请文件:
生成证书:
会生成k8s.pem和k8s-key.pem文件。
下载地汪陆址参考:
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md
https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md#downloads-for-v12013
Wget https://dl.k8s.io/v1.20.13/kubernetes-server-linux-amd64.tar.gz
把刚才生成的证书拷贝到配置文件中的路径:
TLS Bootstrapping 机制,对work-node加入进行自签证书用
创建上述配置文件中token文件:
token 可以自行生产,百度下怎么生产
kube-apiserver服务
生成kube-controller-manager证书:
生成kubeconfig文件(以下是shell命令,直接在终端执行):
生成kube-scheduler证书:
生成kubeconfig文件:
生成kubeconfig文件:
通过kubectl工具查看当前集群组件状态:
在所有worker node创建工作目录:
从master节点拷贝:
注:由于网络插件还没有部署,节点会没有准备就绪 NotReady
二进制包下载地址:https://github.com/containernetworking/plugins/releases
确保kubelet启用CNI:
在Master执行:
应用场景:例如kubectl logs
在Master节点将Worker Node涉及文件拷贝到新节点192.168.3.112/113
注:这几个文件是证书申请审批后自动生成的,每个Node不同,必须删除
Node2(192.168.3.113 )节点同上。记得修改主机名!
访问地址:https://NodeIP:30001
创建service account并绑定默认cluster-admin管理员集群角色:
使用输出的token登录Dashboard。
CoreDNS用于集群内部Service名称解析。
DNS解析测试:
这样 单Master集群就搭建完成了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)