东莞网站开发建设,济南网站制,网站页面做专题的步骤,wordpress做图片站的可能性Kubernetes入门级教程1. Introduction1.1 概述1.2 关键字介绍2. Cluster Install2.1 Big Data -- Postgres3. 基础知识3.1 Pod3.2 控制器3.3 通讯模式3.4 服务发现4. Command4.0 编辑文件4.1 在宿主机执行命令4.2 创建资源对象4.3 查询资源对象4.4 查询资源描述4.5 修改资源4.6… Kubernetes入门级教程1. Introduction1.1 概述1.2 关键字介绍2. Cluster Install2.1 Big Data -- Postgres3. 基础知识3.1 Pod3.2 控制器3.3 通讯模式3.4 服务发现4. Command4.0 编辑文件4.1 在宿主机执行命令4.2 创建资源对象4.3 查询资源对象4.4 查询资源描述4.5 修改资源4.6 删除资源对象4.7 查看log日志5. Awakening3.43开始执行
1. Introduction
1.1 概述 Kubernetes简称K8S 是Google开源的分布式的容器管理平台方便我们在服务器集群中管理我们容器化应用。 1.2 关键字介绍 架构图 左面的master架构 右边是node架构关键字介绍 kubectl命令行工具 Podkubernetes的最小控制单元容器都是运行在pod中的一个pod中可以有1个或者多个容器 controller负责维护集群的状态比如副本期望数量、故障检测、自动扩展、滚动更新等 api server所有服务访问的唯一入口提供认证、授权、访问控制、API 注册和发现等机制 scheduler负责资源的调度按照预定的调度策略将 Pod 调度到相应的机器上 etcd键值对数据库保存了整个集群的状态官方将它定义成一个可信赖的分布式键值存储服务 kubelet负责维护容器的生命周期同时也负责 Volume 和网络的管理 kube-proxy负责为 Service 提供 cluster 内部的服务发现和负载均衡 Container runtime负责镜像管理以及 Pod 和容器的真正运行 label标签用于对pod进行分类同一类pod会拥有相同的标签 NameSpace命名空间用来隔离pod的运行环境过程 scheduler(调度器)将任务写进api serverapi server再将任务写进etcd 2. Cluster Install
2.1 Big Data – Postgres
3. 基础知识
3.1 Pod
3.2 控制器
3.3 通讯模式
3.4 服务发现
4. Command
4.0 编辑文件
# 进入某个容器
kubectl exec mypod -c ruby-container -it -- bash# 编辑名为docker-registry的service
kubectl edit svc/docker-registry4.1 在宿主机执行命令
# 执行 pod 的 date 命令默认使用 pod 的第一个容器执行
kubectl exec mypod -- date
kubectl exec mypod --namespacetest -- date# 指定 pod 中某个容器执行 date 命令
kubectl exec mypod -c ruby-container -- date4.2 创建资源对象
# yaml
kubectl create -f xxx-rc.yaml
kubectl create -f xxx-service.yaml# json
kubectl create -f ./pod.json
cat pod.json | kubectl create -f -# yaml2json
kubectl create -f docker-registry.yaml --edit -o json# 一次性创建
kubectl create -f xxx-service.yaml -f xxx-rc.yaml# 根据目录下所有的 yaml 文件定义内容进行创建
kubectl create -f 目录# 使用 url 来创建资源
kubectl create -f https://git.io/vPieo4.3 查询资源对象
# 查看所有 Node 或 Namespace 对象
kubectl get nodes
kubectl get namespace# 查看子命令帮助信息
kubectl get --help# 列出默认namespace中的所有pod
kubectl get pods# 列出指定namespace中的所有pod
kubectl get pods --namespacetest# 列出所有namespace中的所有pod
kubectl get pods --all-namespaces# 列出所有pod并显示详细信息
kubectl get pods -o wide
kubectl get replicationcontroller web
kubectl get -k dir/
kubectl get -f pod.yaml -o json
kubectl get rc/web service/frontend pods/web-pod-13je7
kubectl get pods/app-prod-78998bf7c6-ttp9g --namespacetest -o wide
kubectl get -o template pod/web-pod-13je7 --template{{.status.phase}}# 列出该namespace中的所有pod包括未初始化的
kubectl get pods,rc,services --include-uninitialized
# 查看所有 RC 对象
kubectl get rc
# 查看所有 Deployment 对象
# 查看全部deployment
kubectl get deployment# 列出指定deployment
kubectl get deployment my-app
# 查看所有 Service 对象
kubectl get svc
kubectl get service
# 查看不同 Namespace 下的 Pod 对象
kubectl get pods -n default
kubectl get pods --all-namespace4.4 查询资源描述
# 显示 Pod 详细信息
kubectl describe pods/nginx
kubectl describe pods my-pod
kubectl describe -f pod.json# 查看 Node 详细信息
kubectl describe nodes c1# 查看 RC 关联的 Pod 信息
kubectl describe pods rc-name4.5 修改资源
# 滚动更新 pod frontend-v1
kubectl rolling-update frontend-v1 -f frontend-v2.json# 更新资源名称并更新镜像
kubectl rolling-update frontend-v1 frontend-v2 --imageimage:v2# 更新 frontend pod 中的镜像
kubectl rolling-update frontend --imageimage:v2# 退出已存在的进行中的滚动更新
kubectl rolling-update frontend-v1 frontend-v2 --rollback# 强制替换; 删除后重新创建资源; 服务会中断
kubectl replace --force -f ./pod.json# 添加标签
kubectl label pods my-pod new-labelawesome# 添加注解
kubectl annotate pods my-pod icon-urlhttp://goo.gl/XXBTWq# 部分更新节点
kubectl patch node k8s-node-1 -p {spec:{unschedulable:true}}# 更新容器镜像spec.containers[*].name 是必须的因为这是合并的关键字
kubectl patch pod valid-pod -p \{spec:{containers:[{name:kubernetes-serve-hostname,image:new image}]}}4.6 删除资源对象
# yaml文件名字按照你创建时的文件一致
kubectl delete -f xxx.yaml# 删除包括某个 label 的 pod 对象
kubectl delete pods -l namelabel-name# 删除包括某个 label 的 service 对象
kubectl delete services -l namelabel-name# 删除包括某个 label 的 pod 和 service 对象
kubectl delete pods,services -l namelabel-name# 删除所有 pod/services 对象
kubectl delete pods --all
kubectl delete service --all
kubectl delete deployment --all4.7 查看log日志
# 不实时刷新kubectl logs mypod
kubectl logs mypod --namespacetest# 查看日志实时刷新
kubectl logs -f mypod -c ruby-container5. Awakening 在一秒钟内看到本质的人和花半辈子也看不清一件事本质的人自然是不一样的命运。