Admin
使用教程,搭建基于Linux + VirtuakBox 的集群,并启动Dashboard。
这里我选择 docker 模式(docker in docker?)
首先将普通账户加入用户组 docker
sudo usermod -aG docker $USER && newgrp docker
进一步,修改 sock 文件权限,否则后续部分命令可能无法访问 docker.sock 错误
sudo chmod a+rw /var/run/docker.socksudo systemctl restart dockerdocker info
普通账户运行命令,创建集群:
minikube start \--driver=docker \--cpus 4 \--memory 16384 \--insecure-registry 192.168.1.111:4999
创建成功后,会在宿主机上创建一个容器 minikube ,并在容器内运行单节点K8S
另外,还会将宿主机的kubectl的配置文件,配置到这个K8S的API Server
启动 dashboard 网页,会省去很多命令操作
minikube dashboard
根据文档中,部署测试服务hello-minikube
我在这里的NodePort类型服务测试能访问,但是LoadBalancer类型服务测试不能访问,先不管
终端执行如下命令,并保持运行:
minikube tunnel
进入Dashboard - 右上角加号 创建Deployment

点击Deploy开始部署
点击左侧的发现和负载均衡 - Services显示所有服务,稍等片刻等待nginx行前的图标变成绿色

上述操作等效命令:
kubectl create deployment nginx --image=nginx:latestkubectl create service nodeport nginx --tcp 8082:80
这个虚拟网络,需要 tunnel 保持运行,才能访问:
minikube tunnel
点击nginx行的外部Endpoints列中的地址,即可通过浏览器访问部署的网页

可以使用http://节点IP:31747访问(不建议长用)
上述两种的访问能力都各有优缺点,参考使用端口转发来访问集群中的应用,将服务转发到宿主机物理网卡,提供集群外访问
执行命令,保持运行:
kubectl port-forward --address 192.168.199.2,127.0.0.1 service/nginx 8082:8082
address,默认只有127.0.0.1物理网卡IP这样,就能通过 宿主机IP:8082 访问服务了
参考 文档 启用Ingress
minikube addons enable ingress
完成需要一段时间,可能会镜像失败,如果失败 minikube addons disable ingress 后重新来过,使用命令查看状态:
[wood@company ~]$ kubectl get pods -ANAMESPACE NAME READY STATUS RESTARTS AGEkube-system ingress-nginx-admission-create-twdjw 0/1 Completed 0 46hkube-system ingress-nginx-admission-patch-l464s 0/1 Completed 0 46hkube-system ingress-nginx-controller-7bb4c67d67-n6njx 1/1 Running 3 46h
编写配置 example-ingress.yaml:
apiVersion: networking.k8s.io/v1beta1kind: Ingressmetadata:name: example-ingressannotations:nginx.ingress.kubernetes.io/rewrite-target: /spec:rules:- http:paths:- path: /foobackend:serviceName: nginxservicePort: 8082- path: /barbackend:serviceName: nginxservicePort: 8082
使用命令kubectl apply -f example-ingress.yaml,创建 Ingress
查看创建的Ingress:
[wood@company ~]$ kubectl get ingressNAME CLASS HOSTS ADDRESS PORTS AGEexample-ingress <none> * 192.168.99.102 80 2m39s
从测试机,访问 http://192.168.99.102/foo 或者 http://192.168.99.102/bar 都能访问到这个服务
/foo 和 /bar 是为了以后多个服务,就能这样一起转发打开Virtualbox,在虚拟机列表应该有个minikube,双击打开
在终端输入root以登录,不需要密码
使用命令ifconfig查看其ip
节点IP一般是eth1那个
点击界面左侧,集群 - Nodes,从列表找到节点,点击名称打开:

节点信息里,资源信息 - 地址 即可看到节点IP
