您好,登錄后才能下訂單哦!
這篇文章給大家介紹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都起來了。
接下來我們可以使用 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 <none> 53/UDP,53/TCP,9153/TCP 4d3h kubernetes-dashboard ClusterIP 10.96.229.197 <none> 443/TCP 4d2h
在 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/
然后并沒有跳過的按鈕,所以必須通過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: <none> 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
去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
的控制臺上面可以發現了。
用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環境就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。