文章目录
minikube安装
dashboard暴露外部访问
kubectl proxy --port=8001(暴露的端口) --address='192.168.131.136'(暴露的ip) --accept-hosts=’^.*’ &
启动后访问
http://192.168.131.136:8001/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/#/overview?namespace=default
kubectl
管理k8s命令行工具。
查看集群信息:
kubectl cluster-info
查看集群节点
kubectl get nodes
kubectl get命令可以查看各种k8s对象信息。但只会显示对象最基本的信息。
查看k8s对象的更多信息
kubectl describe node master136
输出显示了非常多的信息,包含节点的状态、CPU和内存数据、系统信息、运行容器的节点等。
可以直接运行kubectl describe node来列出所有的节点信息。
为kubectl设置别名和命令行补齐
创建别名
alias k=kubectl
可以将上述命令放入~/.bashrc文件中,来避免重启失效。通过source ~/.bashrc来使其echo “source <(kubectl completion bash)” >> ~/.bashrc
生效。
为kubectl配置tab补全
可以为bash和zsh shell补全,可以补全命令名和对象名,如:
kubectl desc<TAB> no<TAB> mas<TAB>
需要安装bashcompletion包,运行如下命令:
yum install bash-completion
source /usr/share/bash-completion/bash_completion
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
为了支持别名,需要使用如下命令修复:
source<(kubectl completion bash | sed s/kubectl/k/g)
运行第一个应用
最简单的方式是使用kubectl run命令来部署应用,这样可以创建必须的组件而无需JSON或YAML文件。这样就不需要了解每个组件对象的结构。如下:
kubectl run kubia --image=dockerbzb/kubia --port=8080 --generator=run/v1
pod
k8s并不管理容器,它使用共存容器的理念。这组容器就是pod。
一个pod是一组紧密相关的容器,它总是运行在同一个工作节点上,以及同一个命名空间中。它就像一个独立的逻辑机器,拥有自己的IP、主机名、进程。
列出pod
无法列出单个容器,因为它们不是独立的k8s对象。但可以列出pod。
kubectl get pods
获取详细信息
kubectl describe podstrfws2qa
访问应用
pod的ip只能通过内部访问。要让它从外部访问,需要通过服务对象公开它,需要创建特殊的LoadBalancer类型的服务,将创建一个外部的负载均衡,可以通过负载均衡的公共IP访问pod。
创建一个服务对象
kubectl expose rc kubia --type=LoadBalancer --name kubia-http
可以使用k8s的缩写,如rc表示ReplicaitonController,srv表示service。
列出服务
kubectl get services
MiniKube不支持LoadBalancer类型的服务。可以使用如下命令获取服务的IP和端口。
minicube service kubia-http
为什么需要服务
pod的存在是短暂的,一个pod可以在任何时刻被删除,可能是它所在的节点故障,或者有人删除了pod,或者pod被所在的健康节点剔除了。但pod被重新创建时,它的ip会发生变化。
服务被创建时,会得到一个静态的IP。在服务的生命周期内保持不变。客户端连接到服务的静态IP,由服务负载均衡转发到pod。
服务表示一组提供相同服务的pod。
增加期望的副本数
kubectl scale rc kubia --replicas=3
在k8s中,基本原则是不要告诉k8s应该做什么,而是声明性地改变系统的期望状态,并让k8s检查当前的状态是否和期望的状态一致。
k8s并不会让应用变得可扩展,应用本身需要支持扩缩容,它只是让应用的扩缩容变得简单。
kubectl get pods -o wide
使用上面的命令显示更多信息,包括节点信息。
k8s dashboard
k8s的图形化视图,可以查看k8s的pod、ReplicaitonController、服务和其他部署在k8s中的对象。以及创建、修改、删除它们。