1、如何运行 nginx 并且暴露端口?
1.1 使用 docker
$ docker run -d --restart=always -e DOMAIN=cluster --name nginx-app -p 80:80 nginx
1.2 使用 kubectl
$ kubectl run --image=nginx nginx-app --port=80 --env="DOMAIN=cluster"
deployment "nginx-app" created
kubectl run 在 Kubernetes 集群 >= v1.2 上将创建名是 “nginx-app”的 Deployment。
使用上面创建的 Deployment 来暴露一个新的服务:
# expose a port through with a service
$ kubectl expose deployment nginx-app --port=80 --name=nginx-http
service "nginx-http" exposed
要删除 Deployment (及其 pod),使用
kubectl delete deployment <name>
备注:使用 kubectl 创建一个 Deployment,他能保证任何情况下有 N 个运行 nginx 的 pods(其中 N 是默认定义声明的副本数,默认为 1 个)。
2、如何列出当前运行的内容?
2.1 使用docker
docker ps
2.2 使用kubectl
kubectl get po
3、如何连接已经运行在容器中的进程?
3.1 使用docker
docker attach container_id
3.2 使用kubectl
kubectl get pods
kubectl attach -it pod_name
4、如何在容器中执行命令?
4.1 使用docker
docker exec container_id cat /etc/hostname
4.2 使用kubectl
kubectl exec pod_name -- cat /etc/hostname
5、如何在容器中执行交互式命令?
5.1 使用docker
docker exec -it container_id /bin/bash
退出容器
exit
5.2 使用kubectl
kubectl exec -it pod_name -- /bin/bash
退出
exit
6、如何查看容器的日志?
6.1 使用docker
docker logs -f container_id
6.2 使用kubectl
kubectl logs -f pod_name
kubectl logs --previous pod_name
7、如何停止和删除正在运行的进程?
7.1 使用docker
docker stop container_id
docker rm container_id
7.2 使用kubectl
kubectl get deployment nginx-app
kubectl delete deployment nginx-app
deployment "nginx-app" deleted
kubectl get po -l run=nginx-app
# Return nothing
注意,不要直接删除 pod,使用 kubectl 删除拥有该 pod 的 Deployment。如果直接删除pod,则 Deployment 将会重新创建该 pod。
8、如何获取客户端和服务器的版本号?
8.1 使用docker
docker version
8.2 使用kubectl
kubectl version
9、如何获取有关配置和环境信息?
9.1 使用docker
docker info
9.2 使用kubectl
kubectl cluster-info
来源:Kubernetes(K8s)入门文档.pdf