操作
前置条件
已拥有 Kubernetes 单机或集群
# 资源创建方式
# 命令行
# YAML
宿主机方式:
- 在主节点中创建对应的 yaml 文件
- 执行应用 / 删除命令操作 yaml 中的内容
可视化:
- 可视化网页中,右上角 “+” 创建
- 输入 yaml 文件内容(注意名称空间)
# Namespace 名称空间
名称空间用来隔离资源,如 dev1
、 qa1
、 uat1
、 prod
。
默认:只隔离资源,不隔离网络。
YAML
apiVersion: v1
kind: Namespace
metadata:
name: <名称空间>
# 查看
kubectl get ns
# 等价
kubectl get namespce
# 创建
kubectl create ns <名称空间>
YAML
kubectl apply -f <YAML文件>
# 删除
会把命名空间下的资源一同删除
kubectl delete ns <名称空间>
YAML
kubectl delete -f <YAML文件>
# Pod 应用
YAML
apiVersion: v1
kind: Pod
metadata:
labels:
run: <自定义的Pod名称>
name: <自定义的Pod名称>
# namespace: default
spec:
containers:
- image: <镜像名称>
name: <自定义的Pod名称>
示例:
点击查看
apiVersion: v1
kind: Pod
metadata:
labels:
run: mynginx
name: mynginx
# namespace: default
spec:
containers:
- image: nginx
name: mynginx
containers 可以有多个
# 查看
kubectl get pods # 查看default命名空间的应用
kubectl get pods -A # 查看所有名称空间的应用
kubectl get pods -n <名称空间> # 查看指定命名空间的应用
kubectl get pod -owide # 查看所有pod的IP
-A:所有的,不带时止可以查询 default
名称空间的
# 创建
kubectl run <自定义的Pod名称> --image=<镜像名称> #创建在default命名空间
#kubectl run mynginx --image=nginx
YAML
kubectl apply -f <YAML文件>
# 描述
kubectl describe pod <Pod名称>
# 删除
kubectl delete pod <Pod名称>
YAML
kubectl delete -f <YAML文件>
# 查看日志
kubectl logs <Pod名称>
kubectl logs -f <Pod名称> # 自动刷新
# 进入
kubectl exec -it <Pod名称> -- /bin
# 部署
# 查看
kubectl get deploy
# 创建
具备自愈能力,pod 被删了,会自动创建一个新的
# 单副本
kubectl create deployment <自定义的Pod名称前缀> --image=<镜像名称>
# 多副本
kubectl create deployment <自定义的Pod名称前缀> --image=<镜像名称> --replicas=<副本数量>
Dashboard
- 右上角 “+”
- 从表单创建
# 删除
kubectl delete deploy <自定义的Pod名称前缀>
# 扩缩容
kubectl scale deployment/<自定义的Pod名称前缀> --replicas=<扩缩容后数量>
Dashboard
- 工作负载
- Deployments
- 找到部署的项目
- 更多(...)
- 缩放
YAML
kubectl edit deployment/<自定义的Pod名称前缀>
- 修改
replicas
参数为扩缩容后数量
:wq
# 版本更新
滚动更新
kubectl set image deployment/<自定义的Pod名称前缀> <镜像名称>=<镜像名称>:<版本号> --record
# kubectl set image deployment/my-dep nginx=nginx:1.16.1 --record
# 版本历史
kubectl rollout history deployment/<自定义的Pod名称前缀>
# 查看某个历史详情
kubectl rollout history deployment/<自定义的Pod名称前缀> --revision=<历史版本号>
# 版本回滚
滚动回滚(更新)
# 回滚到上一个版本
kubectl rollout undo deployment/<自定义的Pod名称前缀>
# 回滚到指定版本
kubectl rollout history deployment/<自定义的Pod名称前缀> --revision=<历史版本号>
版本号:在版本历史中查看,而非镜像版本号
# 服务
# 查看
可查看服务的 ip
kubectl get service
其他 pod 内部可通过 <服务名>.<命名空间>.svc
作为域名访问服务,代替 ip 地址。
# 创建(暴露)
kubectl expose deploy <自定义的Pod名称前缀> --port=<外部访问端口> --target-port=<pod内部端口>
apiVersion: v1
kind: Service
metadata:
labels:
app: <自定义的Pod名称前缀>
name: <自定义的Pod名称前缀>
spec:
selector:
app: <自定义的Pod名称前缀>
ports:
- port: <外部访问端口>
protocol: TCP
targetPort: <pod内部端口>
// Make sure to add code blocks to your code group
type
- ClusterIP:默认,集群内部的访问
- NodePort:集群外也可以访问
# PV
# 查看
kubectl get pv
上次更新: 2023/06/15, 00:16:52