千家信息网

Mac系统中怎么搭建一个Kubernetes环境

发表于:2024-10-23 作者:千家信息网编辑
千家信息网最后更新 2024年10月23日,这篇文章给大家介绍Mac系统中怎么搭建一个Kubernetes环境,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。➜ kubernetes docker imagesREPOS
千家信息网最后更新 2024年10月23日Mac系统中怎么搭建一个Kubernetes环境

这篇文章给大家介绍Mac系统中怎么搭建一个Kubernetes环境,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

➜  kubernetes  docker imagesREPOSITORY                                                                TAG       k8s.gcr.io/kube-apiserver                                                 v1.16.0   registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver        v1.16.0   k8s.gcr.io/kube-proxy                                                     v1.16.0   registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy            v1.16.0   k8s.gcr.io/kube-proxy                                                     v1.14.6   k8s.gcr.io/kube-apiserver                                                 v1.14.6   k8s.gcr.io/kube-scheduler                                                 v1.14.6   k8s.gcr.io/kube-controller-manager                                        v1.14.6   docker/kube-compose-controller                                            v0.4.23   docker/kube-compose-api-server                                            v0.4.23   k8s.gcr.io/coredns                                                        1.3.1     k8s.gcr.io/kubernetes-dashboard-amd64                                     v1.10.1   k8s.gcr.io/etcd                                                           3.3.10    k8s.gcr.io/kube-proxy-amd64                                               v1.10.11  k8s.gcr.io/kube-apiserver-amd64                                           v1.10.11  k8s.gcr.io/kube-controller-manager-amd64                                  v1.10.11  k8s.gcr.io/kube-scheduler-amd64                                           v1.10.11  docker/kube-compose-controller                                            v0.4.12   docker/kube-compose-api-server                                            v0.4.12   k8s.gcr.io/etcd-amd64                                                     3.1.12    k8s.gcr.io/k8s-dns-dnsmasq-nanny-amd64                                    1.14.8    k8s.gcr.io/k8s-dns-sidecar-amd64                                          1.14.8    k8s.gcr.io/k8s-dns-kube-dns-amd64                                         1.14.8    k8s.gcr.io/pause-amd64                                                    3.1       k8s.gcr.io/pause                                                          3.1       k8s.gcr.io/storage-provisioner                                            v1.8.1    registry.cn-hangzhou.aliyuncs.com/google_containers/storage-provisioner   v1.8.1

再启动,等一会儿就应该能看到Docker与Kubernetes都起来了。

创建kubernetes-dashboard

接下来我们可以使用 kubectl 命令来创建简单的 kubernetes-dashboard 服务:

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml# 这个可以把文件下载下来,后面就可以本地了。kubectl apply -f /Users/chenyuan/Tools/Docker/kubernetes/kubernetes-dashboard.yamlsecret "kubernetes-dashboard-certs" createdserviceaccount "kubernetes-dashboard" createdrole "kubernetes-dashboard-minimal" createdrolebinding "kubernetes-dashboard-minimal" createddeployment "kubernetes-dashboard" createdservice "kubernetes-dashboard" created

服务安装完毕后可以查看部署的容器与服务:

➜  kubernetes  kubectl get deployments --namespace kube-systemNAME                   READY   UP-TO-DATE   AVAILABLE   AGEcoredns                2/2     2            2           4d3hkubernetes-dashboard   1/1     1            1           3d8h➜  kubernetes  kubectl get services --namespace kube-systemNAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                  AGEkube-dns               ClusterIP   10.96.0.10              53/UDP,53/TCP,9153/TCP   4d3hkubernetes-dashboard   ClusterIP   10.96.229.197           443/TCP                  4d2h

启动dashboard

在 Dashboard 启动完毕后,可以使用 kubectl 提供的 Proxy 服务来访问该面板

kubectl proxy --address='0.0.0.0'  --accept-hosts='^*$'

启动服务后,不要切断控制台,不然服务就中断了。

浏览器输入:

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

获取Token

然后并没有跳过的按钮,所以必须通过Kubeconfig或者Token的方式。

我这里是通过Token,那我们怎么知道Token的值是多少呢?

➜  kubernetes  kubectl get secret -n=kube-systemNAME                                             TYPE                                  DATA   AGE...default-token-sznp4                              kubernetes.io/service-account-token   3      4d3h...# 这里只列出default-token-sznp4

获取Token值,然后把得到的值输入进去就可以了。

➜  kubernetes  kubectl describe secret -n=kube-system default-token-sznp4Name:         default-token-sznp4Namespace:    kube-systemLabels:       Annotations:  kubernetes.io/service-account.name: default              kubernetes.io/service-account.uid: 064afefb-ebf6-11e9-ac8c-025000000001Type:  kubernetes.io/service-account-tokenData====ca.crt:     1025 bytesnamespace:  11 bytestoken:      eyJhbGciOiJSUzI1NiIsImtpZCI6IiJ9.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkZWZhdWx0LXRva2VuLXN6bnA0Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImRlZmF1bHQiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiIwNjRhZmVmYi1lYmY2LTExZTktYWM4Yy0wMjUwMDAwMDAwMDEiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06ZGVmYXVsdCJ9.u5HTqt7A_4H_0f9ny-AgfmWNo7TSWZsRpjXot1iN8G6oOnt4uDQiS_kiUduwtqqeYC2hjZ2yKPt0NNML9Op1RSAEuTkXiRvJxnCX8GjQeqCD4lzXeqqQ9mTxCVlGijJLaP5VJ2qQtLM0Gwt9eJCYxugGqqHqys7QXdPzcH3WESno0tXNt25klC5ZXNFSeyE-AqLpP3SjmW7W6IBHx89uY28SXmdvTjnCuZyaBlpkgOensdMS7-BpycTzq63NIcp5TR7tM3AdHjsUlSJ2D9YqW_xzMcEDncmjKpbVJ6W9w494L-Z0dOjHkI7gaQSE2Bwi6AqCaGEWKTgMCSWmIBfkrg

通过compose的case启动服务

去Github找了一个Demo,跑几个服务起来。案例地址:git@github.com:docker/compose-on-kubernetes.git

我把其中的案例copy到了我自己的目录,大概是这样子。

➜  kubernetes  tree -L 2.├── config-exercise│   └── config-demo├── db│   ├── Dockerfile│   └── words.sql├── docker-compose.yml├── kubernetes-dashboard.yaml├── web│   ├── Dockerfile│   ├── dispatcher.go│   └── static└── words    ├── Dockerfile    ├── pom.xml    └── src

着重看一下docker-compose内容。

➜  kubernetes  cat docker-compose.ymlversion: '3.3'services:  web:    build: web    image: dockerdemos/lab-web    ports:     - "80:80"  words:    build: words    image: dockerdemos/lab-words    deploy:      replicas: 5  db:    build: db    image: dockerdemos/lab-db    volumes:    - test-volume:/test-volume

验证

然后刷新页面,就可以看到搭建的节点都在Kubernetes的控制台上面可以发现了。

用Docker命令查看本地的服务

➜  Desktop  docker ps -aCONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES02d0691dee78        19b138d3318a        "docker-entrypoint.s…"   11 minutes ago      Up 11 minutes                           k8s_db_db-0_default_d8be11b3-ef2e-11e9-ac8c-025000000001_0f719b60a99c8        b1e9c4adf655        "java -Xmx8m -Xms8m …"   11 minutes ago      Up 11 minutes                           k8s_words_words-745db75bdf-4slj7_default_d8734615-ef2e-11e9-ac8c-025000000001_04a2ce12bd5e8        b1e9c4adf655        "java -Xmx8m -Xms8m …"   11 minutes ago      Up 11 minutes                           k8s_words_words-745db75bdf-bfz5c_default_d8799138-ef2e-11e9-ac8c-025000000001_0755679d0813b        a7ba5776710d        "/dispatcher"            11 minutes ago      Up 11 minutes                           k8s_web_web-8ffd8b7f4-scdmz_default_d86e9b2e-ef2e-11e9-ac8c-025000000001_0ab8bbda27700        b1e9c4adf655        "java -Xmx8m -Xms8m …"   11 minutes ago      Up 11 minutes                           k8s_words_words-745db75bdf-w2dxd_default_d878bdf2-ef2e-11e9-ac8c-025000000001_05c5943bd4f34        b1e9c4adf655        "java -Xmx8m -Xms8m …"   11 minutes ago      Up 11 minutes                           k8s_words_words-745db75bdf-bzdbg_default_d86ebe31-ef2e-11e9-ac8c-025000000001_06e1b7bbffaa9        b1e9c4adf655        "java -Xmx8m -Xms8m …"   11 minutes ago      Up 11 minutes                           k8s_words_words-745db75bdf-2xwgr_default_d87525d6-ef2e-11e9-ac8c-025000000001_0

其他命令

应用栈创建完毕后,可以使用 kubectl 查看创建的 Pods:

kubectl get pods

也可以来查看部署的集群与服务:

kubectl get deployments

可以看到这里的 web 有所谓的 LoadBalancer 类型,即可以对外提供服务。最后我们还可以用 stack 与 kubectl 命令来删除应用:

docker stack remove demo kubectl delete deployment kubernetes-dashboard --namespace kube-system

关于Mac系统中怎么搭建一个Kubernetes环境就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

0