kubectl –help
k8s中文文档: http://docs.kubernetes.org.cn/683.html,对资源的增、删、查操作比较方便,但对改的操作就不容易,,,,注意:此时命令补全功能切换环境后是不生效的,如果要使切换环境后也生效需要配置全局环境变量,,,,命令空间的作用:用于允许不同 命令空间的相同类型的资源重名,,,,,例:在命名空间kube-public 创建副本控制器( deployment) 来启动Pod (nginx-cc),描述某个资源的详细信息,,,,kubectl exec可以跨主机登录容器,docker exec 只能在容器所在主机上登录,,由于存在deployment/rc之类的副本控制器,删除pod也会重新拉起来,,若pod无法删除,总是处于terminate状态, 则要强行删除pod,,,,,,将资源暴露为新的Service,,为deployment(无状态部署)的nginx创建service, 并通过Service的80端口转发至容器的80端口上,Service的名称为nginx-service, 类型为NodePort,,,,,,,,,处于动态监听pod状态,由于使用的是滚动更新方式,所以会先生成–个新的pod,然后删除–个旧的pod,往后依次类推(动态更新的),,,,,,,,,,,Deployment控制器支持自定义控制更新过程中的滚动节奏,如“暂停(pause)”或“继续(resume)”更新操作。比如等待第一批新的Pod资源创,建完成后立即暂停更新过程,此时,仅存在一部分新版本的应用,主体部分还是旧的版本。然后,再筛选一小部分的用户请求路由到新版本的Pod应用,继续观察能否稳定地按期望的方式运行。确定没问题之后再继续完成余下的Pod资源滚动更新,否则立即回滚更新操作。这就是所谓的金丝雀发布。,YAML,即 YAML Ain’t a Markup Language(YAML 不是一种标记语言)的递归缩写。YAML 其实意思是 Yet Another Markup Language(仍是一种标记语言)。它主要强度这种语言是以数据为中心,而不是以标记为中心,而像 XML 语言就使用了大量的标记。,YAML 可读性高,易于理解,用来表达数据序列化的格式。它的语法和其他高级语言类似,还可以简单表达数组、散列表,标量等数据形态。它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构、各种配置文件。,YAML 配置文件后缀为.yml,例如application.yml。,yaml 和 json 的主要区别:,Kubernetes支持YAML和JSON 格式管理资源对象,JSON格式:主要用于api接口之间消息的传递,YAML格式:用于配置和管理,YAML的配置参数格式比较清晰,语法格式:,,字段说明:,K8S—apiVersion对照表:点击这里,,,,,,,,,,,,●port
port是k8s集群内部访问service的端口,即通过clusterIP: port可以从Pod所在的Node. 上访问到service,●nodePort
nodePort是外部访问k8s集群中service的端口,通过nodeIP: nodePort 可以从外部访问到某个service。,●targetPort
targetPort是Pod的端口,从port或nodePort来的流量经过kube-proxy 反向代理负载均衡转发到后端Pod的targetPort上,最后进入容器。,●containerPort
containerPort是Pod内部容器的端口,targetPort 映射到containerPort,kubectl run –dry-run 打印相应的API 对象 而不执行创建,,
--dry-run
表示试运行,不真正执行命令(测试命令是否正确),即并不会真的创建出 pod 和 deployment 实例,去掉该参数后即可真正执行命令。,使用--dry-run
试运行可不触发生成命令,然后通过-o yaml
可实现对其 yaml 资源配置清单的查看,,可通过 -o json 查看该命令产生的 json 配置清单,,,,,,,,explain 可一层层的查看相关资源对象的帮助信息,,没有相关资源,使用run或者create命令--dry-run
选项,后期可以修改yaml文件。,已有相关资源,使用get命令 【--export
选项 :适用老版本的kubectl】