云计算
K8S Pod status的状态分析
CrashLoopBackOff :容器已关闭,kubelet正在重新启动
InvalidImageName :无法解析镜像名称
ImageInspectError :无法验证镜像
ErrImageNeverPull禁止在策略中抽取镜像
ImagePullBackOff :正在重试抽屉
注册不可用:无法连接到镜像中心
ErrImagePull :公共镜像错误
createcontainerconfigerror :无法创建kube let使用的容器配置
CreateContainerError :创建容器失败
m.internal life cycle.prestartcontainer报告hook错误
RunContainerError :容器启动失败
poststarthookerror :执行hook的错误报告
ContainersNotInitialized :容器未初始化
ContainersNotReady :容器没有准备好
ContainerCreating :正在创建容器
PodInitializing:pod初始化中
文档管理器:文档还没有完全启动
NetworkPluginNotReady :网络插件还没有完全启动
K8S-YAML的使用和命令
YML配置文件管理对象
管理对象:
创建部署资源
kubectlcreate-f nginx-deployment.YAML
浏览部署
kubectl get deploy
查看复制集
kubectl get rs
查看pods上的所有标签
UbeCTLgetpods----show-labels
#根据标签查看销售点
kubectl get pods -l app=nginx
#镜像滚动更新
kubectlsetimagedeployment/nginx-deployment nginx=nginx:1.11
或者
kubectleditdeployment/nginx-deployment
或者
kubectlapply-f nginx-deployment.YAML
#实时观察发布状态:
ubectlrolloutstatusdeployment/nginx-deployment
查看部署历史修订
kubectlrollouthistorydeployment/nginx-deployment
kubectlrollouthistorydeployment/nginx-deployment-- revision=3
#回滚到以前的版本
kubectlrolloutundodeployment/nginx-deployment
ubectlrolloutundodeployment/nginx-deployment---- to-revision=3
#扩展部署的Pod拷贝数
ubectlscaledeploymentnginx-- deployment-- replicas=10
#设置启动的缩放
kubectlautoscaledeploymentnginx-deployment---min=10---max=15---CPU-percent=80
对象管理实例: vim nginx.deployment.yaml
API version:apps/v1 beta 2
kind :部署
元数据:
name: nginx-deployment
spec :
replicas: 2
选择器:
匹配标签:
APP:nginx
template :
元数据:
labels :
APP:nginx
spec :
containers :
- name: nginx
image: nginx:1.10
端口:
-容器端口: 80
服务发现示例: vim nging.service.yaml
apiVersion: v1
kind :服务
元数据:
labels :
run: nginx
name: nginx
namespace: default
spec :
端口:
-端口: 88
目标端口: 80
选择器:
APP:nginx
清理:
# kubectldelete-f nginx-deployment.YAML
# kubectldelete-f nginx-service.YAML
POD角色:
Pod管理-创建/查询/更新/删除
基本管理:
创建pod资源
kubectl create -f pod.yaml
查看销售点
kubectl get pods pod-test
查看pod说明
kubectl describe pod pod-test
#资源替换
kubectl replace -f pod.yaml -force
#删除资源
kubectl delete pod pod-test
支持三种战略:
Always :总是在容器退出和退出后重新启动容器。 这是默认策略。
仅当OnFailure (容器异常终止(结束状态代码为非0 ) )时,重新启动容器。
Never :如果容器退出并退出,则容器不会重新启动。
Pod实例: vim pod.yaml
apiVersion: v1
kind: Pod
元数据:
name: pod-test
labels :
os: centos
spec :
containers :
- name:hello
image: centos:7
env :
- name: Test
value: 123456
command: [bash,-c,while true; do date; 休眠1; done]
restartPolicy: OnFailure
Pod管理-体检:
Probe机制有以下两种类型:
livenessProbe
如果检查失败,杀死集装箱,根据Pod的重启策略
重新启动。
自述文件
如果检查失败,Kubernetes将从服务代理的分发后端中排除Pod。
Probe支持以下三种检查方法:
httpGet
发送HTTP请求,返回200-400范围的状态码,成功。
执行
运行shell命令,状态代码为0,成功。
TCP套接字
TCP套接字建立成功。
示例: vim pod2.yaml
apiVersion: v1
kind: Pod
元数据:
name: nginx-pod
labels :
APP:nginx
spec :
containers :
- name: nginx
image: nginx:1.10
端口:
-容器端口: 80
livenessProbe :
httpGet :
path: /index.html
端口: 80
Pod管理-数据永久化和共享:
vim pod3.yaml
apiVersion: v1
kind: Pod
元数据:
name: pod-test1
labels :
test: centos
spec :
containers :
#第一个容器
- name: hello-write
image: centos:7
command: [bash,-c,for i in {1.1000}; do echo $i /data/hello; 休眠1; done]
#第二个容器
- name: hello-read
image: centos:7
command: [bash,-c,for i in {1.1000}; do cat $i /data/hello; 休眠1; done]
volumeMounts :
- name: data
mountPath: /data
#数据卷
volumes :
- name: data
hostPath :
path:/数据
Pod端口映射:
vim pod4.yaml
apiVersion: v1
kind: Pod
元数据:
name: nginx-pod
labels :
APP:nginx
spec :
containers :
- name: nginx
image: nginx:1.10
端口:
- name: http
容器端口: 80
hostIP: 0.0.0.0
主机端口: 80
protocol: TCP
- name: https
容器端口: 443
hostIP: 0.0.0.0
主机端口: 443
protocol: TCP
详情请访问云服务器、域名注册、虚拟主机的问题,请访问西部数码代理商官方网站: www.chenqinet.cn