kubernetes
简单入门理解
## 容器编排系统,其实就是帮我们管理容器的
## 以集群的方式工作,n个master+n个工作节点,n>=1
## 主节点来指挥工作,有决策者,调度者,秘书部,资料库等
## 从节点来运行应用工作的,都是厂长通过秘书部来进行交流
## k8s的集群部署方式:一定要安装docker和kubelet(厂长,负责帮我们把核心组件启动起来)
kubectl:我们输入命令行要用的前缀
应用一下文件,让文件生效:kubectl apply -f 【文件名】
查看default命名空间:kubectl get ns
查看pod:kubectl get pod
创建pod:kubectl run 【pod的名字】 --image=【镜像名】
查看pod的情况:kubectl describe pod 【pod的名字】
kubeadm:帮我们管理集群的,可以快速的安装k8s
1.输入kubeadm init,就会帮我们初始化
2.从节点输入kubeadm join,就会加入集群
## k8s的名称空间(命名空间):namespace是用来隔离资源的 不隔离网络创建方式:
1.kubectl create ns 命名空间的名字
2.yaml:格式如下
apiVersion:v1
kind:Namespace
metadata:
name:命名空间的名字
## k8s的 pod,是运行中的多个容器的组合,容器是docker的容器
创建方式:
1.kubectl run 【pod的名字】 --image=【镜像名】
2.yaml:格式如下
apiVersion:v1
kind:Pod
metadata:
labels:
run:【pod的名字】
name:【pod的名字】
spec:
containers:
- image:【镜像】
name:【容器的名字】
- image:【镜像】
name:【容器的名字】
......
删除方式:
1.命令行
2.可视化界面删除 yaml
## 使用Deployment部署应用:删除pod后会立刻在重启一个pod,只有删掉deployment才会真正删掉pod
1.创建和删除
创建:kubectl create deployment 【pod的名字】 --image=镜像名
删除:kubectl delete deployment 【部署应用的名字】
创建多个:kubectl create deployment 【pod的名字】 --image=镜像名 --replicase=【n】
2.扩容 缩容
kubectl scale deployment/【部署的应用名字】 --replicase=【n】
3.自愈 故障转移
4.滚动更新
kubectl set deployment/【部署的应用名字】 【旧镜像名】=【新的镜像名】 --record
5.版本回退
查看历史记录:kubectl rollout history deployment/【部署的应用名字】
执行回滚(回到上次):kubectl rollout undo deployment/【部署的应用名字】
执行回滚(指定本版):kubectl rollout undo deployment/【部署的应用名字】 --to-revision=【n】
## service:就是多个pod合成一组,帮我们分发用户的请求到不同的pod上(服务发现机制),service的ip在集群内有效
1.设置serviceip地址:kubectl repose deployment 【部署的应用名字】
--port==【service的port】
--target-port=【部署的应用里的容器port】
--type=clusterIP(集群内 访问) / --type=NodePort(集群外也可以访问)
2.查看service:kubectl get service
## Ingress: 类似nginx,就是由nginx做出来的,service的统一网关入口(用来负载均衡service),service是pod的入口(用来负载均衡pod)
1.可以根据域名映射到IP,修改yaml文件就可以做到
2.路径重写:rewrite
3.限流:
例子:每秒一次访问
annotations:
nginx.ingress.kubernetes.io: "1"
## 存储抽象:跳过了
## kubershpere:其实就是k8s的可视化界面
1.安装方式:
1.1 kubernetes安装
1.2 linux单节点安装
1.3 linux多节点安装
更多推荐
所有评论(0)