最后
由于篇幅原因,就不多做展示了
ReplicationController 用来确保容器应用的副本数始终保持在用户定义的副本数,即如果有容器异常退出,会自动创建新的 Pod 来替代;而如果异常多出来的容器也会自动回收。
在新版本的 Kubernetes 中建议使用 ReplicaSet 来取代 ReplicationController。ReplicaSet 跟 ReplicationController 没有本质的不同,只是名字不一样,并且 ReplicaSet 支持集合式的 selector。
虽然ReplicaSet可以独立使用,但一般还是建议使用Deployment 来自动管理 ReplicaSet,这样就无需担心跟其他机制的不兼容问题(比如ReplicaSet 不支持 rolling- update 但 Deployment 支持)
Deployment 为 Pod 和 ReplicaSet 提供了一个声明式定义 (declarative) 方法,用来替代以前的 ReplicationController 来方便的管理应用。
典型的应用场景包括:
定义 Deployment 来创建 Pod 和 ReplicaSet
滚动升级和回滚应用
扩容和缩容
暂停和继续 Deployment
前一篇我们部署了一个应用,接下来我们继续来获取有关已部署的应用程序及其环境的信息。 最常见的操作可以使用以下 kubectl 命令完成:
kubectl get - 列出资源
kubectl describe - 显示有关资源的详细信息
kubectl logs - 打印 pod 和其中容器的日志
kubectl exec - 在 pod 中的容器上执行命令
要查看 Pod 中有哪些容器,以及用于构建这些容器的镜像,我们运行“ describe pods ”命令:
Name: kubernetes-bootcamp-fb5c67579-gvtzr
Namespace: default
Priority: 0
Node: minikube/172.17.0.65
Start Time: Fri, 28 Jan 2022 09:52:25 +0000
Labels: app=kubernetes-bootcamp
pod-template-hash=fb5c67579
Annotations:
Status: Running
IP: 172.18.0.2
IPs:
IP: 172.18.0.2
Controlled By: ReplicaSet/kubernetes-bootcamp-fb5c67579
Containers:
kubernetes-bootcamp:
Container ID: docker://ab737181e274e3320ea6f7ff149460008d5bd42789dadadd01cd408f3d85764c
Image: gcr.io/google-samples/kubernetes-bootcamp:v1
Image ID: docker-pullable://jocatalin/kubernetes-bootcamp@sha256:0d6b8ee63bb57c5f5b6156f446b3bc3b3c143d233037f3a2f00e279c8fcc64af
Port: 8080/TCP
Host Port: 0/TCP
State: Running
Started: Fri, 28 Jan 2022 09:52:33 +0000
Ready: True
Restart Count: 0
Environment:
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-g44np (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
default-token-g44np:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-g44np
Optional: false
QoS Class: BestEffort
Node-Selectors:
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
Normal Scheduled 33m default-scheduler Successfully assigned default/kubernetes-bootcamp-fb5c67579-gvtzr to minikube
Normal Pulled 33m kubelet Container image “gcr.io/google-samples/kubernetes-bootcamp:v1” already present on machine
Normal Created 33m kubelet Created container kubernetes-bootcamp
Normal Started 33m kubelet Started container kubernetes-bootcamp
我们可以看到 Pod 容器的详细信息:IP地址、使用的端口以及与 Pod 生命周期相关的事件列表。
descripe命令可用于获取大多数kubernetes原语的详细信息:节点、POD、部署。
应用程序输出的任何内容都会成为 Pod 中容器的日志。我们可以使用kubectl logs命令检索这些日志:
kubectl logs $POD_NAME
Kubernetes Bootcamp App Started At: 2022-01-28T09:52:34.261Z | Running On: kubernetes-bootcamp-fb5c67579-gvtzr
Running On: kubernetes-bootcamp-fb5c67579-gvtzr | Total Requests: 1 | App Uptime: 2204.953 seconds | Log Time: 2022-01-28T10:29:19.214Z
查看环境变量:
最后
金三银四到了,送上一个小福利!
图片转存中…(img-xS6aVUNa-1715652678246)]