一. k8s 简介
如下图所示 物理组成是有master和worker节点组成,目前最少搭配三台物理服务器实现 k8s高可用集群
省略,参考如下连接
https://zhuanlan.zhihu.com/p/93460345
二. k8s各组件的使用
1. deployment
1.1 新增
kubectl apply -f xx.yaml -n test
xx.yaml :部署的yaml文件,里面描述了如何创建deployment,service,pod
-n test : 命名空间 test
1.2 删除
kubect delete deployment xx -n test
xx: deployment 的名称
1.3 查询
kubect get deployment -n test
1.4 修改
直接修改 xx.yaml内容 再执行应用
kubect apply -f xx.yaml -n test
2.node 物理部署节点
2.1 查询:
kubect get node -n test
3. pod
3.1 查询
kubect get pod -n test
3.2 新增
可以由deployment 联动创建,也可单独写 pod.yaml 执行创建,执行方式如下
kubectl apply -f pod.yaml -n test
//pod.yaml可以按照这个格式书写
apiVersion: v1
kind: Pod
metadata:
name: testpod
namespace: test
labels:
app: testpod
spec:
containers:
- name: testpod
image: test:0.0.1
ports:
- containerPort: 80 --容器端口
hostPort: 80 --暴露端口
3.3 删除
kubectl delete pod podName -n test
3.4 修改
可以修改yaml 然后apply 应用
也可以
debug<--->running
kubectl label pod <podname> --overwrite status=debuging
kubectl label pod <podname> --overwrite status=running
3.5 通过bash方式进入到pod 容器内部 (它执行方式和docker有点类似)
kubectl exec -it podName -n test -- sh
进入到容器内部可以看容器内部的日志文件,容器里面的进程
3.6 查看日志
kubectl logs podName -n test
3.7 查看pod 节点的ip
kubectl get pod -n test -o wide
3.8 查询详细日志
查询pod详细错误信息
kubect describe pod podName -n test
4. service
4.1 新增
创建service
kubectl create -f service.yaml
配置文件格式:
apiVersion: v1
kind: Service
metadata:
name: testservice
namespace: test
labels:
app: testpod
spec:
type: NodePort
ports:
- port: 12345 --对应容器的端口
nodePort: 30000 --service对外暴露的端口
selector:
app: testpod
4.2 删除
kubectl delete service testservice -n test
4.3 修改
修改xx.yaml 通过apply 应用实现
4.4.查询
kubectl get service -n test
4.5 查询详细资料
kubectl describe service testservice