当前位置:   article > 正文

mac上安装docker并运行kubernetes_mac docker 运行 kubernetesui/dashboard 默认端口

mac docker 运行 kubernetesui/dashboard 默认端口

docker-desktop安装及kubernetes启用

如果没有安装docker-desktop,可以先去 https://www.docker.com/products/docker-desktop 下载和安装。如果已经安装过,请升级到新的版本。我的docker版本是4.11.1: 

然后在Docker-Engine里配置一下国内镜像,这样kubernetes启用会迅速一些:

  1. {
  2. "debug": true,
  3. "registry-mirrors": [
  4. "https://hub-mirror.c.163.com",
  5. "https://mirror.baidubce.com"
  6. ],
  7. "builder": {
  8. "gc": {
  9. "defaultKeepStorage": "20GB",
  10. "enabled": true
  11. }
  12. },
  13. "experimental": false
  14. }

配置镜像后,可以使用下面命令检查一下:

  1. # docker info
  2. ...
  3. Registry Mirrors:
  4. https://hub-mirror.c.163.com/
  5. https://mirror.baidubce.com/

然后在图形界面上启用kubernets:

完成后使用kubectl命令检查一下版本:

  1. # kubectl version
  2. Client Version: version.Info{Major:"1", Minor:"24", GitVersion:"v1.24.2", GitCommit:"f66044f4361b9f1f96f0053dd46cb7dce5e990a8", GitTreeState:"clean", BuildDate:"2022-06-15T14:22:29Z", GoVersion:"go1.18.3", Compiler:"gc", Platform:"darwin/arm64"}
  3. Kustomize Version: v4.5.4
  4. Server Version: version.Info{Major:"1", Minor:"24", GitVersion:"v1.24.2", GitCommit:"f66044f4361b9f1f96f0053dd46cb7dce5e990a8", GitTreeState:"clean", BuildDate:"2022-06-15T14:15:38Z", GoVersion:"go1.18.3", Compiler:"gc", Platform:"linux/arm64"}

查看唯一的master节点:

  1. # kubectl get node
  2. NAME STATUS ROLES AGE VERSION
  3. docker-desktop Ready control-plane 7m43s v1.24.2

查看默认的名称空间:

  1. # kubectl get ns(namespace)
  2. NAME STATUS AGE
  3. default Active 18h
  4. kube-node-lease Active 18h
  5. kube-public Active 18h
  6. kube-system Active 18h

查看默认的pods:

  1. #kubectl get pods --all-namespaces
  2. NAMESPACE NAME READY STATUS RESTARTS AGE
  3. kube-system coredns-6d4b75cb6d-8pfxc 1/1 Running 0 11m
  4. kube-system coredns-6d4b75cb6d-tdg64 1/1 Running 0 11m
  5. kube-system etcd-docker-desktop 1/1 Running 0 11m
  6. kube-system kube-apiserver-docker-desktop 1/1 Running 0 11m
  7. kube-system kube-controller-manager-docker-desktop 1/1 Running 0 11m
  8. kube-system kube-proxy-2s227 1/1 Running 0 11m
  9. kube-system kube-scheduler-docker-desktop 1/1 Running 0 11m
  10. kube-system storage-provisioner 1/1 Running 0 11m
  11. kube-system vpnkit-controller 1/1 Running 0 11m

 接下来,我们安装kubernetes-dashboard。安装后可以图形化的管理/查看kubernetes的内部状态,非常方便,同时也可以验证搭建的kubernetes可以正常工作。

kubernetes-dashboard 的安装

首先下载kubernetes-dashboard的yaml文件:

curl -LO https://raw.githubusercontent.com/kubernetes/dashboard/v2.6.1/aio/deploy/recommended.yaml

使用apply子指令安装 kubectl apply -f recommended.yaml

所有yaml文件的启用都使用 kubectl apply

创建rbac权限的配置文件 kubernetes-dashboard-admin.yaml,然后启用。

  1. apiVersion: v1
  2. kind: ServiceAccount
  3. metadata:
  4. name: admin-user
  5. namespace: kubernetes-dashboard
  6. ---
  7. apiVersion: rbac.authorization.k8s.io/v1
  8. kind: ClusterRoleBinding
  9. metadata:
  10. name: admin-user
  11. roleRef:
  12. apiGroup: rbac.authorization.k8s.io
  13. kind: ClusterRole
  14. name: cluster-admin
  15. subjects:
  16. - kind: ServiceAccount
  17. name: admin-user
  18. namespace: kubernetes-dashboard

命令正常执行就可以完成kubernetes-dashboard的安装。再次查询命名空间,你会发现多出了ku bernetes-dashboard

  1. #kubectl get ns
  2. NAME STATUS AGE
  3. default Active 45h
  4. kube-node-lease Active 45h
  5. kube-public Active 45h
  6. kube-system Active 45h
  7. kubernetes-dashboard Active 45h

使用proxy访问kubernetes-dashboard

我们先使用下面的命令,在本地8001端口代理kubernetes的内部服务:

kubectl proxy

然后使用浏览器访问下面的网页链接:

http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/

这时候页面会提示需要输入token。

可以使用下面命令查看admin-user的token:

kubectl -n kubernetes-dashboard create token admin-user
然后复制粘贴到页面里面就可以了

如果要删除 ServiceAccount 和 ClusterRoleBinding.

  1. kubectl -n kubernetes-dashboard delete serviceaccount admin-user
  2. kubectl -n kubernetes-dashboard delete clusterrolebinding admin-user

其它

Kubernetes的出现解决了什么问题?

在这里插入图片描述

  • 传统的部署模式中,应用部署在一个操作系统中。如果一个应用内存泄露了,就会把其他应用挤下线,非常不安全
  • 虚拟化的部署中,一个应用炸了只能影响到虚拟机内
  • 容器化的部署中,在原有的操作系统中有了容器化的运行环境,然后应用就会以容器化的形式运行起来。也能做到资源隔离且轻便

容器化也会带来一个问题:当服务模块众多,每个小项目的微服务都已以容器化的形式部署,并且放到很多台服务器。以前用docker run跑一两个应用,人肉可以运维和操作 ,但是如果几千个容器的话,就难以管理 。因此大规模容器编排系统应运而生(编:同一个应用的容器划分成一组;排:比如A应用在这个服务器不够了,就在别的服务器拿来扩充几个
 

2. kubernetes特性

kubernetes具有以下特性:


● 服务发现和负载均衡:

服务发现:发现宕机有问题的容器,不降任务给他
负载均衡:Kubernetes 可以使用 DNS 名称或自己的 IP 地址公开容器,如果进入容器的流量很大, Kubernetes 可以负载均衡并分配网络流量,从而使部署稳定。
● 存储编排
Kubernetes 允许你自动挂载你选择的存储系统,例如本地存储、公共云提供商等。应用需要内存则找k8s要,k8s开辟一块存储空间。应用删了后存储也没了
● 自动部署和回滚
你可以使用 Kubernetes 描述已部署容器的所需状态,它可以以受控的速率将实际状态 更改为期望状态。例如,你可以自动化 Kubernetes 来为你的部署创建新容器, 删除现有容器并将它们的所有资源用于新容器。——回滚到上一次部署的版本
● 自动完成装箱计算
Kubernetes 允许你指定每个容器所需 CPU 和内存(RAM)。 当容器指定了资源请求时,Kubernetes 可以做出更好的决策来管理容器的资源。——指定了这么多内存,超过了就会被杀掉
● 自我修复
Kubernetes 重新启动失败的容器、替换容器、杀死不响应用户定义的 运行状况检查的容器,并且在准备好服务之前不将其通告给客户端。——一个机器挂了,可以将其中的容器部署到其他机器
● 密钥与配置管理
Kubernetes 允许你存储和管理敏感信息,例如密码、OAuth 令牌和 ssh 密钥。 你可以在不重建容器镜像的情况下部署和更新密钥和应用程序配置,也无需在堆栈配置中暴露密钥。
 

参考资料

Deploy and Access the Kubernetes Dashboard | Kubernetes

https://github.com/kubernetes/dashboard

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/article/detail/48529
推荐阅读
相关标签
  

闽ICP备14008679号