alias k=kubectl
yum install -y bash-completion
source <(kubectl completion bash | sed s/kubectl/k/g)
kubectl run kubia --image=luksa/kubia --port=8080 --generator=run/v1
#--image=luksa/kubia 容器运行时所需镜像
#--port=8080 监听8080端口
#创建一个LoadBalancer服务
kubectl expose pod kubia --type=LoadBalancer --name kubia-http
#查看
kubectl get svc
kubectl scale rc nginx-test --replicas=3
--log-backtrace-at traceLocation 记录日志每到 file:行号时打印一次stack trace 默认值0
--log-dir string 日志文件路径
--log-flush-frequency duration 设置flush日志文件的时间间隔 默认值5s
--logtostderr 设置为true表示将日志输出到stderr 不输出到日志文件
--alsologtostderr 设置为true表示将日志输出到日志文件同时输出到stderr
--stderrthreshold severity 将threshold级别以上的日志输出到stderr 默认值2
--v Level 配置日志级别
--vmodule moduleSpec 详细日志级别
--version version[=true] 输出其版本号
--admission-control strings 对发送给apiserver的任何请求进行准入控制 配置为一个准入控制器列表
AlwaysAdmit 运行所有请求
AlwaysDeny 禁止所有请求
AlwaysPullImages 启动容器之前总是去下载镜像
DefaultStorageClass 实现共享存储动态供应 为未指定StorageClass或PV的PVC匹配默认StorageClass
DefaultTolerationSeconds 设置默认容忍时间 5min
DenyEscalatingExec 拦截 所有exec和attach到具有特权的Pod上的请求
DenyExecOnPrivileged 拦截所有想在privileged container上执行命令的请求
ImagePolicyWebhook 允许后端webhook程序完成admission controller
LimitRanger 配额管理
NamespaceLifecycle 拒绝在不存在namespace中创建资源对象的请求 删除namespace时删除所有对象
PodPreset pod启动时注入应用所需设置
PodSecurityPolicy 对pod进行安全策略控制
ResourceQuota 配额管理
……
--advertise-address ip 广播给集群所有成员自己的IP地址
--allow-privileged 配置为true 运行pod中运行拥有系统特权的容器应用
--anonymous-auth 配置为true表示apiserver接收匿名请求 默认值true
--apiserver-count 集群中运行apiserver数量 默认值1
--authorization-mode 认证模式列表 多个以逗号分隔
Pod 资源文件详细说明
属性名称 |
取值类型 |
是否必需 |
取值说明 |
version |
String |
yes |
v1 |
kind |
String |
yes |
Pod |
metadata |
Object |
yes |
元数据 |
metadata.name |
String |
yes |
Pod的名称 |
metadata.namespace |
String |
yes |
Pod所属名称空间 |
metadata.labels[] |
List |
|
自定义标签列表 |
metadata.annotation[] |
List |
|
自定义注解列表 |
spec |
Object |
yes |
Pod中容器详细定义 |
spec.containers[] |
List |
yes |
Pod中的容器列表 |
spec.containers[].name |
String |
yes |
容器的名称 |
spec.containers[].image |
String |
yes |
容器的镜像名称 |
spec.containers[].imagePullPolicy |
String |
|
获取镜像策略 |
spec.containers[].command[] |
List |
|
容器启动命令列表 |
spec.containers[].args[] |
List |
|
启动命令参数列表 |
spec.containers[].workingDir |
String |
|
容器工作目录 |
spec.containers[].volumeMounts[] |
List |
|
容器存储卷配置 |
spec.containers[].volumeMounts[].name |
String |
|
共享存储卷名称 |
spec.containers[].volumeMounts[].mountPath |
String |
|
存储卷容器内挂载绝对路径 |
spec.containers[].volumeMounts[].readOnly |
Boolean |
|
是否只读模式,默认读写模式 |
spec.containers[].ports[] |
List |
|
容器暴露的端口号列表 |
spec.containers[].ports[].name |
String |
|
端口的名称 |
spec.containers[].ports[].containerPort |
Int |
|
容器需要监听的端口号 |
spec.containers[].ports[].hostPort |
Int |
|
默认与containerPort一致 |
spec.containers[].ports[].protocol |
String |
|
端口协议TCP UDP 默认TCP |
spec.containers[].env[] |
List |
|
容器需要环境变量列表 |
spec.containers[].env[].name |
String |
|
环境变量的名称 |
spec.containers[].env[].value |
String |
|
环境变量的值 |
spec.containers[].resources |
Object |
|
资源限制和资源请求设置 |
spec.containers[].resources.limits |
Object |
|
资源限制的设置 |
spec.containers[].resources.limits.cpu |
String |
|
CPU限制 单位为core数 |
spec.containers[].resources.limits.memory |
String |
|
内存限制 单位MiB/GiB |
spec.containers[].resources.requests |
Object |
|
请求限制的设置 |
spec.containers[].resources.requests.cpu |
String |
|
CPU请求 单位为core数 |
spec.containers[].resources.requests.memory |
String |
|
内存请求 单位MiB/GiB |
spec.volumes[] |
List |
|
Pod定义共享存储卷列表 |
spec.volumes[].name |
String |
|
共享存储卷的名称 |
spec.volumes[].emptyDir |
Object |
|
与Pod同生命周期的临时目录 |
spec.volumes[].hostPath |
Object |
|
Pod所在宿主机的目录 |
spec.volumes[].hostPath.path |
String |
|
Pod所在在主机的目录 |
spec.volumes[].secret |
Object |
|
挂载预定义secret对象到容器 |
spec.volumes[].configMap |
Object |
|
挂载预定义configMap对象到容器 |
spec.volumes[].livenessProbe |
Object |
|
健康检查配置 |
spec.volumes[].livenessProbe.exec |
Object |
|
使用exec方式 |
spec.volumes[].livenessProbe.exec.command[] |
String |
|
指定命令或脚本 |
spec.volumes[].livenessProbe.httpGet |
Object |
|
使用httpGet方式 path prot |
spec.volumes[].livenessProbe.tcpSocket |
Object |
|
使用tcpSocket方式 |
spec.volumes[].livenessProbe.initalDelaySeconds |
Number |
|
启动后首次探测时间 单位s |
spec.volumes[].livenessProbe.timeoutSeconds |
Number |
|
探测超时时间 默认1s |
spec.volumes[].livenessProbe.periodSeconds |
Number |
|
探测时间间隔 默认10s |
spec.restartPolicy |
String |
|
重启策略 |
spec.nodeSelector |
Object |
|
Pod调度到包含label的Node key:value格式指定 |
spec.imagePullSecrets |
Object |
|
Pull镜像使用secret |
spec.hostNetwork |
Boolean |
|
是否使用主机网络模式 |
Pod 资源文件详细说明
属性名称 |
取值类型 |
是否必需 |
取值说明 |
version |
String |
yes |
v1 |
kind |
String |
yes |
Pod |
metadata |
Object |
yes |
元数据 |
metadata.name |
String |
yes |
Pod的名称 |
metadata.namespace |
String |
yes |
Pod所属名称空间 |
metadata.labels[] |
List |
|
自定义标签列表 |
metadata.annotation[] |
List |
|
自定义注解列表 |
spec |
Object |
yes |
Pod中容器详细定义 |
spec.selector[] |
List |
yes |
选择指定label标签的Pod |
spec.type |
String |
yes |
service的类型默认ClusterIP |
spec.clusterIP |
String |
|
虚拟服务IP地址 |
spec.sessionAffinity |
String |
|
是否支持session 默认为空 可选ClientIP 同一客户端到同一后端Pod |
spec.ports[] |
List |
|
service需要暴露端口列表 |
spec.ports[].name |
String |
|
端口名称 |
spec.ports[].protocol |
String |
|
端口协议 TCP UDP 默认TCP |
spec.ports[].port |
int |
|
服务监听端口号 |
spec.ports[].targetPort |
int |
|
需要转发到后端Pod的端口号 |
spec.ports[].nodePort |
int |
|
当type=NodePort时 映射宿主机端口号 |
status |
object |
|
当type=LoadBalancer时 设置外部负载均衡器地址 |
status.loadBalancer |
object |
|
外部负载均衡器 |
status.loadBalancer.ingress |
object |
|
外部负载均衡器 |
status.loadBalancer.ingress.ip |
string |
|
外部负载均衡器的IP地址 |
status.loadBalancer.ingress.hostname |
string |
|
外部负载均衡器的主机名 |