Fedora 31 上用minkube部署一個單節點kubernetes並測試基礎kubectl指令

下載minkube

[yeqiang@localhost ~]$ cd Downloads/
[yeqiang@localhost Downloads]$ curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 52.8M  100 52.8M    0     0   534k      0  0:01:41  0:01:41 --:--:--  488k

安裝到/usr/local/bin

[yeqiang@localhost Downloads]$  sudo install minikube-linux-amd64 /usr/local/bin/minikube

啓動集羣

[yeqiang@localhost ~]$ minikube start
😄  minikube v1.11.0 on Fedora 31
✨  Automatically selected the virtualbox driver
💿  Downloading VM boot image ...
    > minikube-v1.11.0.iso.sha256: 65 B / 65 B [-------------] 100.00% ? p/s 0s
    > minikube-v1.11.0.iso: 90.08 MiB / 174.99 MiB  51.48% 562.65 KiB p/s ETA 2^    > minikube-v1.11.0.iso: 174.99 MiB / 174.99 MiB  100.00% 538.18 KiB p/s 5m3
👍  Starting control plane node minikube in cluster minikube
💾  Downloading Kubernetes v1.18.3 preload ...
    > preloaded-images-k8s-v3-v1.18.3-docker-overlay2-amd64.tar.lz4: 526.01 MiB
🔥  Creating virtualbox VM (CPUs=2, Memory=6000MB, Disk=20000MB) ...
❗  This VM is having trouble accessing https://k8s.gcr.io
💡  To pull new external images, you may need to configure a proxy: https://minikube.sigs.k8s.io/docs/reference/networking/proxy/
E0604 11:39:14.687991   56590 cache.go:63] save image to file "k8s.gcr.io/kube-scheduler:v1.18.3" -> "/home/yeqiang/.minikube/cache/images/k8s.gcr.io/kube-scheduler_v1.18.3" failed: nil image for k8s.gcr.io/kube-scheduler:v1.18.3: Get https://k8s.gcr.io/v2/: dial tcp 74.125.204.82:443: i/o timeout
E0604 11:39:14.696680   56590 cache.go:63] save image to file "k8s.gcr.io/kube-controller-manager:v1.18.3" -> "/home/yeqiang/.minikube/cache/images/k8s.gcr.io/kube-controller-manager_v1.18.3" failed: nil image for k8s.gcr.io/kube-controller-manager:v1.18.3: Get https://k8s.gcr.io/v2/: dial tcp 74.125.204.82:443: i/o timeout
E0604 11:39:14.733532   56590 cache.go:63] save image to file "gcr.io/k8s-minikube/storage-provisioner:v1.8.1" -> "/home/yeqiang/.minikube/cache/images/gcr.io/k8s-minikube/storage-provisioner_v1.8.1" failed: nil image for gcr.io/k8s-minikube/storage-provisioner:v1.8.1: Get https://gcr.io/v2/: dial tcp 108.177.125.82:443: i/o timeout
E0604 11:39:14.764450   56590 cache.go:63] save image to file "k8s.gcr.io/kube-apiserver:v1.18.3" -> "/home/yeqiang/.minikube/cache/images/k8s.gcr.io/kube-apiserver_v1.18.3" failed: nil image for k8s.gcr.io/kube-apiserver:v1.18.3: Get https://k8s.gcr.io/v2/: dial tcp 74.125.204.82:443: i/o timeout
E0604 11:39:14.801233   56590 cache.go:63] save image to file "k8s.gcr.io/etcd:3.4.3-0" -> "/home/yeqiang/.minikube/cache/images/k8s.gcr.io/etcd_3.4.3-0" failed: nil image for k8s.gcr.io/etcd:3.4.3-0: Get https://k8s.gcr.io/v2/: dial tcp 74.125.204.82:443: i/o timeout
E0604 11:39:14.877560   56590 cache.go:63] save image to file "k8s.gcr.io/kube-proxy:v1.18.3" -> "/home/yeqiang/.minikube/cache/images/k8s.gcr.io/kube-proxy_v1.18.3" failed: nil image for k8s.gcr.io/kube-proxy:v1.18.3: Get https://k8s.gcr.io/v2/: dial tcp 74.125.204.82:443: i/o timeout
E0604 11:39:14.901485   56590 cache.go:63] save image to file "k8s.gcr.io/coredns:1.6.7" -> "/home/yeqiang/.minikube/cache/images/k8s.gcr.io/coredns_1.6.7" failed: nil image for k8s.gcr.io/coredns:1.6.7: Get https://k8s.gcr.io/v2/: dial tcp 74.125.204.82:443: i/o timeout
E0604 11:39:14.922899   56590 cache.go:63] save image to file "k8s.gcr.io/pause:3.2" -> "/home/yeqiang/.minikube/cache/images/k8s.gcr.io/pause_3.2" failed: nil image for k8s.gcr.io/pause:3.2: Get https://k8s.gcr.io/v2/: dial tcp 74.125.204.82:443: i/o timeout
E0604 11:40:00.602135   56590 cache.go:63] save image to file "kubernetesui/dashboard:v2.0.0" -> "/home/yeqiang/.minikube/cache/images/kubernetesui/dashboard_v2.0.0" failed: write: read tcp 10.51.72.167:35154->104.18.123.25:443: read: connection reset by peer
E0604 11:40:00.602147   56590 cache.go:63] save image to file "kubernetesui/metrics-scraper:v1.0.2" -> "/home/yeqiang/.minikube/cache/images/kubernetesui/metrics-scraper_v1.0.2" failed: write: read tcp 10.51.72.167:35154->104.18.123.25:443: read: connection reset by peer
E0604 11:40:00.602562   56590 cache.go:161] Error caching images:  Caching images for kubeadm: caching images: caching image "/home/yeqiang/.minikube/cache/images/k8s.gcr.io/kube-scheduler_v1.18.3": nil image for k8s.gcr.io/kube-scheduler:v1.18.3: Get https://k8s.gcr.io/v2/: dial tcp 74.125.204.82:443: i/o timeout
🐳  Preparing Kubernetes v1.18.3 on Docker 19.03.8 ...
🔎  Verifying Kubernetes components...
🌟  Enabled addons: default-storageclass, storage-provisioner
🏄  Done! kubectl is now configured to use "minikube"
💡  For best results, install kubectl: https://kubernetes.io/docs/tasks/tools/install-kubectl/

報錯,似乎不影響

查看集羣狀態

[yeqiang@localhost ~]$ minikube kubectl -- get po -A
NAMESPACE     NAME                               READY   STATUS    RESTARTS   AGE
kube-system   coredns-66bff467f8-4zr6j           1/1     Running   0          33m
kube-system   coredns-66bff467f8-sdcbs           1/1     Running   0          33m
kube-system   etcd-minikube                      1/1     Running   0          33m
kube-system   kube-apiserver-minikube            1/1     Running   0          33m
kube-system   kube-controller-manager-minikube   1/1     Running   0          33m
kube-system   kube-proxy-zstfz                   1/1     Running   0          33m
kube-system   kube-scheduler-minikube            1/1     Running   0          33m
kube-system   storage-provisioner                1/1     Running   0          33m

安裝kubectl,方便操作

[yeqiang@localhost Downloads]$ curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.18.3/bin/linux/amd64/kubectl
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 41.9M  100 41.9M    0     0   565k      0  0:01:15  0:01:15 --:--:--  558k
[yeqiang@localhost Downloads]$ sudo cp kubectl /usr/local/bin/
[sudo] password for yeqiang: 
[yeqiang@localhost Downloads]$ sudo chmod +x /usr/local/bin/kubectl
[yeqiang@localhost Downloads]$ kubectl version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.3", GitCommit:"2e7996e3e2712684bc73f0dec0200d64eec7fe40", GitTreeState:"clean", BuildDate:"2020-05-20T12:52:00Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.3", GitCommit:"2e7996e3e2712684bc73f0dec0200d64eec7fe40", GitTreeState:"clean", BuildDate:"2020-05-20T12:43:34Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}

測試kubectl

[yeqiang@localhost ~]$ kubectl get po -A
NAMESPACE     NAME                               READY   STATUS    RESTARTS   AGE
kube-system   coredns-66bff467f8-4zr6j           1/1     Running   0          38m
kube-system   coredns-66bff467f8-sdcbs           1/1     Running   0          38m
kube-system   etcd-minikube                      1/1     Running   0          38m
kube-system   kube-apiserver-minikube            1/1     Running   0          38m
kube-system   kube-controller-manager-minikube   1/1     Running   0          38m
kube-system   kube-proxy-zstfz                   1/1     Running   0          38m
kube-system   kube-scheduler-minikube            1/1     Running   0          38m
kube-system   storage-provisioner                1/1     Running   0          38m

查看minikube運行進程,可以看到是由virutalbox啓動起來的

[yeqiang@localhost ~]$ ps aux | grep minikube
yeqiang    62361 35.0  0.3 5061524 99356 ?       Sl   11:34  15:58 /usr/lib/virtualbox/VBoxHeadless --comment minikube --startvm c16747b7-092d-4e90-bcd4-c0faf71515a9 --vrde config

 

啓動kubernetes dashboard

[yeqiang@localhost ~]$ minikube dashboard
🔌  Enabling dashboard ...
🤔  Verifying dashboard health ...
🚀  Launching proxy ...
🤔  Verifying proxy health ...
🎉  Opening http://127.0.0.1:43217/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/ in your default browser...
Fontconfig warning: "/usr/share/fontconfig/conf.avail/05-reset-dirs-sample.conf", line 6: unknown element "reset-dirs"
Opening in existing browser session.

會自動打開默認瀏覽器,如圖

創建一個發佈

[yeqiang@localhost minikube]$ kubectl create deployment hello-minikube --image k8s.gcr.io/echoserver:1.4
deployment.apps/hello-minikube created

此時可以看到dashboard裏面的狀態

由於牆的存在,導致無法訪問到https://k8s.gcr.io

刪掉它!

[yeqiang@localhost minikube]$ kubectl delete deployments.apps hello-minikube 
deployment.apps "hello-minikube" deleted

利用aliyun鏡像加速地址,部署一個nginx服務

kubectl create deployment nginx --image r6w9c7qa.mirror.aliyuncs.com/library/nginx:latest

進入pod,查看http 80端口

k8s暴露服務

[yeqiang@localhost minikube]$ kubectl expose deployment nginx --type=LoadBalancer --port=80
service/nginx exposed

開啓minikube 管道(注意在新窗口打開,此指令會卡住終端,不斷輸出信息)

[yeqiang@localhost minikube]$ minikube tunnel
[sudo] password for yeqiang: 
Status:	
	machine: minikube
	pid: 105081
	route: 10.96.0.0/12 -> 192.168.99.100
	minikube: Running
	services: [nginx]
    errors: 
		minikube: no errors
		router: no errors
		loadbalancer emulator: no errors


查看服務地址

[yeqiang@localhost minikube]$ kubectl get services nginx
NAME    TYPE           CLUSTER-IP      EXTERNAL-IP     PORT(S)        AGE
nginx   LoadBalancer   10.100.49.217   10.100.49.217   80:31178/TCP   5m52s

得到EXTERNAL-IP地址爲:10.100.49.217

測試訪問

[yeqiang@localhost minikube]$ curl 10.100.49.217
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

 

開啓2個副本

[yeqiang@localhost minikube]$ kubectl scale deployment --replicas=2 nginx 
deployment.apps/nginx scaled

參考文檔:https://minikube.sigs.k8s.io/docs/start/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章