2.本地集群管理环境搭建

安装好docker之后我发现一两个应用还好,如果应用一多,一个个管理起来就很麻烦,不如直接用kubernetes来管理集群
kubernetes将集群里面的机器称为node,可以是一个docker容器,也可以是一台物理机


docker for windows edge版本已经集成了kubenetes,目前只支持lxc
默认不开启,可以在设置面板的kubenetes中可以开启该功能
开启后会在Hyper-V虚拟机的MobyLinuxVM中安装kubernetes本机集群,包括 kubelet kubeadm

kubenetes自身会有一些集群系统容器运行在docker上,这些容器的镜像国内可能获取失败


打开powershell查看:

kubectl get pods -n=kube-system

 

在kubectl已经集成到docker for windows中,可以直接运行,是用来管理集群的命令行客户端
在kubernetes中部署的容器以pod的形式存在,默认get pods是不列出系统pod,需要添加-n来指定命名空间获取

PS G:\kubenetes> kubectl get pods -n=kube-system
NAME READY STATUS RESTARTS AGE
etcd-docker-for-desktop 1/1 Running 1 1h
kube-apiserver-docker-for-desktop 1/1 Running 1 1h
kube-controller-manager-docker-for-desktop 1/1 Running 1 1h
kube-dns-86f4d74b45-ktxqw 3/3 Running 0 1h
kube-proxy-qdxrg 1/1 Running 0 1h
kube-scheduler-docker-for-desktop 1/1 Running 1 1h
kubernetes-dashboard-7d5dcdb6d9-fqs8t 1/1 Running 0 2m

 

可以看到我这里全是Running,kube-dns重试了3次,我这里原因是拉取镜像失败,开启vpn后就获取到了
命令行管理工具毕竟难用,这里部署安装kubernetes-dashboard来进行图形管理

kubectl create -f https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml
kubectl proxy
http://localhost:8001/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy/

 

直接跳过配置

kubernetes通过yml配置文件来声明服务,创建后会自动部署到node上,如果发现访问不了,那就是没部署成功

查看日志

kubectl logs pods/PODID -n=kube-system

 

容器输出

kubectl describe pods/kubernetes-dashboard-7d5dcdb6d9-fqs8t --all-namespaces

 


kubernetes本机集群并没有安装在docker中,所以想要修改某些配置需要修改MobyLinuxVM中的文件
可以通过docker容器来映射容器主机路径来修改这些文件

docker run --net=host --ipc=host --uts=host --pid=host -it --security-opt=seccomp=unconfined --privileged --rm -v /:/host alpine /bin/sh

 


以上命令将容器主机根目录映射到/host,并且拥有host权限,docker for windows运行在root下,所以拥有root权限

如果需要修改kubenetes启动参数

vi /host/var/lib/kubeadm/manifests/*.yaml

 

posted @ 2018-07-31 05:05  幻影gool  阅读(235)  评论(0编辑  收藏  举报