K8S环境搭建
k8s部署方式
k8s文档
web命令行学习版本
点击 launch terminal 开启
kubectl 使用
参考博客
将 config 放到 ~/.kube
目录下 , 然后 就可以用了
pods 可以理解为 docker 下面的 容器 【container】
get pods 就是 将服务器的容器列出来
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# 通过 shell 和服务器交互
.\kubectl.exe exec -it order-workflow-deployment-5f5c5dfd9b-pvbjc -- /bin/bash
# 查看部署的
.\kubectl.exe get deployment
# 打印日志
.\kubectl.exe logs cmdb-deployment-6676f97786-pbdzf
# 查看我本地的配置
.\kubectl.exe config view
#
kubectl apply -f ./config.yaml
# 查看监听端口
.\kubectl.exe get svc
# 创建容器
kubectl apply -f https://k8s.io/examples/application/mongodb/mongo-service.yaml
# 显示创建的 服务
.\kubectl.exe get service cmdb
# 查看名称空间
.\kubectl.exe get ns
# 创建名称空间
kubectl create ns hello
# 删除 【谨慎删除,因为会删除这个空间下所有的资源】
kubectl delete ns hello
# 根据配置文件来进行删除
kubectl delete -f hello.yaml
|
kubernates - 核心概念
- Pod: 运行中的【一组容器,一个 pod 可以 多个容器】,Pod 是 kkubernetes 中应用的最小单位 【k8s 为了操作方便,每一个容器都被封装并且抽象为一个 pod, 注意,一个 pod 可以有多个容器,这样可以方便容器编排】
1
2
3
4
5
|
kubectl get pod -n default
# 默认 就是 namespace = default
kubectl describe pod mynginx
# 查看 描述信息【比如容器出了什么问题,查看事件】
|
deployment 的概念
k8s 的 deployment 有一个 功能,就是 使 Pod 拥有多副本,自愈,扩容缩容等能力。
多副本
1
2
|
kubectl create deployment my-dep --image=nginx --replicas=3
# Nginx部署3份
|
其他工作负载
- deployment: 无状态应用部署,比如微服务,提供多副本等功能
- StatefulSet: 有状态应用部署,比如Redis,提供稳定的存储、网络等功能
- DaemonSet: 守护型应用部署,比如日志收集组件,在每个机器都运行一份
- Job/CronJob: 定时任务部署,比如垃圾清理组件,可以在指定时间运行
k8s 最佳实践
- 使用
kubectl apply -f
。它在所有 .yaml,yml,.json 文件中查找 kubernates 配置,并将其传递给 apply
- 使用标签选择器进行 get 和 delete 操作,而不是特定的对象名称。
参考博客
1
2
3
4
5
6
7
|
kubectl get pods --show-labels
# 添加 release 标签,值为 stable
kubectl label pods myapp-6865459dff-445x2 release=stable
kubectl get pods -l release!=stable
kubectl get pods -l "release in (stable,beta,alpha)"
kubectl get pods -l "release notin (stable,beta,alpha)"
|