Kubernetes命令备忘录
Minikube命令:
# 启动Minikube服务器
$ minikube start
# 得到Minikube IP
$ minikube ip
版本信息:
$ kubectl version #得到kubectl版本
$ kubectl cluster-info #得到集群信息
创建对象:
$ kubectl create -f ./file.yml
$ kubectl create -f ./file1.yml -f ./file2.yaml
$ kubectl create -f ./dir
$ kubectl create -f http://www.fpaste.org/279276/48569091/raw/
查看并且找到资源:
# 列出命名空间里的所有服务
$ kubectl get services
# 列出所有命名空间里的所有Pod
$ kubectl get pods --all-namespaces
# 列出命名空间里的所有Pod,并提供详细信息
$ kubectl get pods -o wide
# 列出特定的复制控制器
$ kubectl get rc <rc-name>
# 列出带有标签env=production的所有pod
$ kubectl get pods -l env=production
列出服务,通过名称排序:
$ kubectl get services --sort-by=.metadata.name
修改以及删除资源:
$ kubectl label pods <pod-name> new-label=awesome
$ kubectl annotate pods <pod-name> icon-url=http://goo.gl/XXBTWq
$ kubectl delete pod pingredis-XXXXX
扩容缩容:
$ kubectl scale --replicas=3 deployment nginx
和运行着的Pod交互:
$ kubectl logs <pod-name>
# 运行tail -f 得到日志输出
$ kubectl logs -f <pod-name>
# 以交互shell运行pod
$ kubectl run -i --tty busybox --image=busybox -- sh
# 连接到运行着的容器里
$ kubectl attach <podname> -i
# 将Pod的端口转发到本地机器
$ kubectl port-forward <podname> <local-and-remote-port>
# 将端口转发到服务
$ kubectl port-forward <servicename> <port>
# 在已有pod里运行命令(仅有1个容器的情况下)
$ kubectl exec <pod-name> -- ls /
# 在已有pod里运行命令(多个容器的情况下)
$ kubectl exec <pod-name> -c <container-name> -- ls /
DNS查找:
$ kubectl exec busybox -- nslookup kubernetes
$ kubectl exec busybox -- nslookup kubernetes.default
$ kubectl exec busybox -- nslookup kubernetes.default.svc.cluster.local
创建并暴露部署:
$ kubectl run nginx --image=nginx:1.9.12
$ kubectl expose deployment nginx --port=80 --type=LoadBalancer
总结
Kubernetes很酷,很可能就是容器编排的未来。这个技术很赞,值得对容器感兴趣的人花时间学习。Kubernetes是非常强大的容器编排引擎,它设计用于自动化部署,扩展和操作容器,可以用来增强云容器化战略。
好的一面是Kubernetes可以和任何云产品集成,可以是公有云,私有云,混合云或者多云。云供应商,比如AWS和Google,提供了Kubernetes服务,比如Elastic Container Service for Kubernetes(EKS)和Google Kubernetes Engine(GKE)。不好的一面是Kubernetes比Docker自己的容器编排引擎Docker Swarm要复杂的多。
,