使用VMware虚拟机搭建Kubernetes的Master和Worker节点 最全教程

准备工作

使用VMware虚拟机搭建Kubernetes的Master和Worker节点 最全教程(1)准备工作

节点部署

使用VMware虚拟机搭建Kubernetes的Master和Worker节点 最全教程(2)节点部署

Dashboard部署

创建Dashboard应用

节点部署好后,可以安装可视化的Kubernetes dashboard管理kubernetes集群,比较方便。
Dashboard官方文档
部署的过程其实跟部署其它应用没有区别,Dashboard也是作为一个普通的web应用部署在k8s上。
kubectl apply命令就是使用文件来配置资源。我们先找到Dashboard的资源,可以访问Dashboard官方Github的release页面,可以看到安装方式:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml

但是,直接使用这个命令,在国内很有可能因为网络问题无法成功,可以先把这个文件下载下来,使用:

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.3/aio/deploy/recommended.yaml

这样就能下载下来这个配置文件。
下载下来了
然后打开配置文件修改:

vim recommended.yaml

在配置文件的spec部分添加一个type为NodePort,在ports部分添加nodePort为30001,方便外部访问。
方便外部访问
但是直接这样创建资源也可能因为网络问题一直卡在ContainerCreating,所以可以先把镜像下载下来。在vim中搜索image可以发现有两个镜像需要下载,一个是kubernetesui/dashboard:v2.0.3,可以使用命令

docker pull kubernetesui/dashboard:v2.0.3

还有一个kubernetesui/metrics-scraper:v1.0.4,可以使用命令:

docker pull kubernetesui/metrics-scraper:v1.0.4

然后再进入vim中,把拉取策略这一行删掉,因为默认策略是IfNotPresent,也就是本地不存在才拉取。然后:wq保存。
删掉拉取策略
然后根据这个文件创建pod:

kubectl create -f recommended.yaml 

创建pod
然后查看namespace=kubernetes-dashboard的pods

kubectl get pods --namespace=kubernetes-dashboard

查看pods
如果一直是容器创建状态,很有可能出问题了,使用describe可以查看详情,然后自行搜索

kubectl describe pod dashboard --namespace=kubernetes-dashboard

我这里的问题如下:
问题
是因为我重启虚拟机以后忘记再运行flannel了(很可能你的问题跟我的不一样,可以复制上面的日志自行搜索),所以我使用了上一篇博客中创建flannel的命令:

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

flannel成功创建后,还要删除刚刚的dashboard,重新创建一次

kubectl delete -f recommended.yaml
kubectl create -f recommended.yaml

然后再用kubectl get pods命令,可以看到正在Running
运行成功
然后用浏览器访问主节点的IP地址:刚刚设置的nodePort端口号,我这里是https://192.168.224.128:30001,访问成功:
访问成功

创建用户

这里需要创建用户,才能获得进入Dashboard的权限,可以看Github创建用户的官方文档
这里创建一个绑定集群的账号,可以查看集群中的所有内容。使用下面的命令:

cat <<EOF > account.yml
# Create Service Account
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system
---
# Create ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kube-system

EOF

然后应用这个配置文件

kubectl apply -f account.yml

再使用下面的命令找到Token

kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')

结果如下图:
token
复制下面的token,然后粘贴到登录界面,即可登录Dashboard,如下图,可以方便的查看各种资源:
结果

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐