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

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

成都创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:成都网站建设、成都做网站、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的福海网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!

➜  kubernetes  docker images
REPOSITORY                                                                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都起来了。

Mac系统中怎么搭建一个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.yaml

secret "kubernetes-dashboard-certs" created
serviceaccount "kubernetes-dashboard" created
role "kubernetes-dashboard-minimal" created
rolebinding "kubernetes-dashboard-minimal" created
deployment "kubernetes-dashboard" created
service "kubernetes-dashboard" created

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

➜  kubernetes  kubectl get deployments --namespace kube-system
NAME                   READY   UP-TO-DATE   AVAILABLE   AGE
coredns                2/2     2            2           4d3h
kubernetes-dashboard   1/1     1            1           3d8h
➜  kubernetes  kubectl get services --namespace kube-system
NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                  AGE
kube-dns               ClusterIP   10.96.0.10              53/UDP,53/TCP,9153/TCP   4d3h
kubernetes-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/

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

获取Token

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

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

➜  kubernetes  kubectl get secret -n=kube-system
NAME                                             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-sznp4
Name:         default-token-sznp4
Namespace:    kube-system
Labels:       
Annotations:  kubernetes.io/service-account.name: default
              kubernetes.io/service-account.uid: 064afefb-ebf6-11e9-ac8c-025000000001

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1025 bytes
namespace:  11 bytes
token:      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.yml
version: '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的控制台上面可以发现了。

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

用Docker命令查看本地的服务

➜  Desktop  docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
02d0691dee78        19b138d3318a        "docker-entrypoint.s…"   11 minutes ago      Up 11 minutes                           k8s_db_db-0_default_d8be11b3-ef2e-11e9-ac8c-025000000001_0
f719b60a99c8        b1e9c4adf655        "java -Xmx8m -Xms8m …"   11 minutes ago      Up 11 minutes                           k8s_words_words-745db75bdf-4slj7_default_d8734615-ef2e-11e9-ac8c-025000000001_0
4a2ce12bd5e8        b1e9c4adf655        "java -Xmx8m -Xms8m …"   11 minutes ago      Up 11 minutes                           k8s_words_words-745db75bdf-bfz5c_default_d8799138-ef2e-11e9-ac8c-025000000001_0
755679d0813b        a7ba5776710d        "/dispatcher"            11 minutes ago      Up 11 minutes                           k8s_web_web-8ffd8b7f4-scdmz_default_d86e9b2e-ef2e-11e9-ac8c-025000000001_0
ab8bbda27700        b1e9c4adf655        "java -Xmx8m -Xms8m …"   11 minutes ago      Up 11 minutes                           k8s_words_words-745db75bdf-w2dxd_default_d878bdf2-ef2e-11e9-ac8c-025000000001_0
5c5943bd4f34        b1e9c4adf655        "java -Xmx8m -Xms8m …"   11 minutes ago      Up 11 minutes                           k8s_words_words-745db75bdf-bzdbg_default_d86ebe31-ef2e-11e9-ac8c-025000000001_0
6e1b7bbffaa9        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环境就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


本文标题:Mac系统中怎么搭建一个Kubernetes环境
文章位置:http://pwwzsj.com/article/igejph.html