kubectl create deployment kubernetes-nginx --image=nginx:1.10
* 创建一个Deployment时K8S会产生如下操作:
* 选择一个合适的Node来部署这个应用;
* 将该应用部署到Node上;
* 当应用异常关闭或删除时重新部署应用。
* 查看所有Deployment:
kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
kubernetes-nginx 1/1 1 1 21h
* 我们可以通过`kubectl proxy`命令创建一个代理,这样就可以通过暴露出来的接口直接访问K8S的API了,这里调用了查询K8S版本的接口;
[macro@linux-local root]$ kubectl proxy
Starting to serve on 127.0.0.1:8001
[root@linux-local ~]# curl http://localhost:8001/version
{
“major”: “1”,
“minor”: “20”,
“gitVersion”: “v1.20.0”,
“gitCommit”: “af46c47ce925f4c4ad5cc8d1fca46c7b77d13b38”,
“gitTreeState”: “clean”,
“buildDate”: “2020-12-08T17:51:19Z”,
“goVersion”: “go1.15.5”,
“compiler”: “gc”,
“platform”: “linux/amd64”
}
### 查看应用
> 通过对运行应用的Pod进行操作,可以查看容器日志,也可以执行容器内部命令。
* 查看K8s中所有Pod的状态:
kubectl get pods
NAME READY STATUS RESTARTS AGE
kubernetes-nginx-78bcc44665-8fnnn 1/1 Running 1 21h
* 查看Pod的详细状态,包括IP地址、占用端口、使用镜像等信息;
kubectl describe pods
Name: kubernetes-nginx-78bcc44665-8fnnn
Namespace: default
Priority: 0
Node: minikube/192.168.49.2
Start Time: Tue, 05 Jan 2021 13:57:46 +0800
Labels: app=kubernetes-nginx
pod-template-hash=78bcc44665
version=v1
Annotations:
Status: Running
IP: 172.17.0.7
IPs:
IP: 172.17.0.7
Controlled By: ReplicaSet/kubernetes-nginx-78bcc44665
Containers:
nginx:
Container ID: docker://31eb1277e507ec4cf8a27b66a9f4f30fb919d17f4cd914c09eb4cfe8322504b2
Image: nginx:1.10
Image ID: docker-pullable://nginx@sha256:6202beb06ea61f44179e02ca965e8e13b961d12640101fca213efbfd145d7575
Port:
Host Port:
State: Running