离线安装minikube—1.10.1
基礎環境:
Virtual box
OS: Ubuntu:16.04
enp0s3:(Hostonly)192.168.56.102(提供pc端訪問服務器-hostonly)
enp0s8:(NAT)10.0.3.15(訪問外網,因為nat映射端原因,本地pc無法訪問)
minikube使用的all-in-one方式,所以就放在了一臺vm上,配置最好大一點,不然會卡!
---------------------------------------------------------------------------------
離線安裝包和鏡像
鏈接:https://pan.baidu.com/s/10oqK80w5SJD2npOYpLZEkg 密碼:u95p
1、安裝docker-ce環境(引用官網)
https://docs.docker.com/install/linux/docker-ce/ubuntu/#install-docker-ce-1
sudo apt-get update
Install packages to allow apt to use arepository over HTTPS:
sudo apt-get install \
???apt-transport-https \
???ca-certificates \
??? curl\
???software-properties-common
Add Docker's official GPG key:
curl -fsSLhttps://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Verify that you now have the key with thefingerprint 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88, by searching forthe last 8 characters of the fingerprint.
sudo apt-key fingerprint 0EBFCD88
sudo add-apt-repository \
??"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
??$(lsb_release -cs) \
??stable"
Install Docker CE,Update the apt package index.
sudo apt-get update
Install the latest version of Docker CE, or goto the next step to install a specific version:
sudo apt-get install docker-ce
sudo systemctl enable docker
sudo systemctl start docker
2、需要下載minikube、kubectl(參考官網github)
https://github.com/kubernetes/minikube
下載命令:(由于防火墻端緣故,無法下載,在國外服務器拉取下來,本地離線安裝)
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64&& chmod +x minikube
curl -Lo kubectlhttps://storage.googleapis.com/kubernetes-release/release/$(curl -shttps://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl&& chmod +x kubectl
離線安裝操作:
cd /root
chmod +x minikube
mv minikube /usr/local/bin/
ln -sf /usr/local/bin/minikube/usr/bin/minikube
cd /root
chmod +x kubectl
mv kubectl /usr/local/bin
ln -sf /usr/local/bin/kubectl /usr/bin/kubectl
3、初始化環境變量:
export MINIKUBE_WANTUPDATENOTIFICATION=false
export MINIKUBE_WANTREPORTERRORPROMPT=false
export MINIKUBE_HOME=$HOME
export CHANGE_MINIKUBE_NONE_USER=true
mkdir -p $HOME/.kube
touch $HOME/.kube/config
export KUBECONFIG=$HOME/.kube/config
4、啟動minikube
? ? curl -Lo kubeadm http://storage.googleapis.com/kubernetes-release/release/v1.10.0/bin/linux/amd64/kubeadm
? ? curl -Lo kubelet http://storage.googleapis.com/kubernetes-release/release/v1.10.0/bin/linux/amd64/kubelet
? ? sudo -E ./minikube start --vm-driver=none
--vm-driver=none (本身就是虛擬機,所以不需要將minikube再次安裝到虛機里面,虛機中再安裝虛機我的機器扛不住)
在這個過程中minikube需要下載kubelet、kubeadm,以及拉取所需要到鏡像,由于防火墻到原因,這就卡住了,再也不能進行下去了,所以啊,我挨個再國外服務器上拉取到鏡像和程序包。
運行一下上面curl兩句下載命令,不然會報錯,因為下載kubeadm、kubelet時采用的是https,但是無法連接,使用http下載以后就可以跳過
Starting local Kubernetes v1.10.0 cluster...
Starting VM...
Getting VM IP address...
Moving files into cluster...
Downloading kubeadm v1.10.0
Downloading kubelet v1.10.0
這塊了,不然會報一下這個錯:
E0702 15:58:46.347477? 20746 start.go:252] Error updating cluster:? downloading binaries: downloading kubeadm: Error downloading kubeadm v1.10.0: failed to download: failed to download to temp file: download failed: 5 error(s) occurred:
* Temporary download error: Get https://storage.googleapis.com/kubernetes-release/release/v1.10.0/bin/linux/amd64/kubeadm: net/http: TLS handshake timeout
* Temporary download error: Get https://storage.googleapis.com/kubernetes-release/release/v1.10.0/bin/linux/amd64/kubeadm: dial tcp 172.217.160.80:443: i/o timeout
* Temporary download error: Get https://storage.googleapis.com/kubernetes-release/release/v1.10.0/bin/linux/amd64/kubeadm: net/http: TLS handshake timeout
* Temporary download error: Get https://storage.googleapis.com/kubernetes-release/release/v1.10.0/bin/linux/amd64/kubeadm: dial tcp 172.217.160.80:443: i/o timeout
* Temporary download error: Get https://storage.googleapis.com/kubernetes-release/release/v1.10.0/bin/linux/amd64/kubeadm: dial tcp 172.217.160.80:443: i/o timeout
以下是所需要的鏡像列表:
? ? k8s.gcr.io/kube-apiserver-amd64:v1.10.0
? ? k8s.gcr.io/kube-scheduler-amd64:v1.10.0
? ? k8s.gcr.io/kube-controller-manager-amd64:v1.10.0
? ? k8s.gcr.io/kube-proxy-amd64:v1.10.0
? ? 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
? ? quay.io/coreos/flannel:v0.9.1-amd64
? ? k8s.gcr.io/kube-addon-manager:v8.6
? ? k8s.gcr.io/kubernetes-dashboard-amd64:v1.8.1
? ? gcr.io/k8s-minikube/storage-provisioner:v1.8.1
如果不出意外應該就可以安裝成功了!
安裝完成后
root@ubuntu:~# sudo -E ./minikube start --vm-driver=none? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
Starting local Kubernetes v1.10.0 cluster...
Starting VM...
Getting VM IP address...
Moving files into cluster...
Downloading kubeadm v1.10.0
Downloading kubelet v1.10.0
Finished Downloading kubelet v1.10.0
Finished Downloading kubeadm v1.10.0
Setting up certs...
Connecting to cluster...
Setting up kubeconfig...
Starting cluster components...
Kubectl is now configured to use the cluster.
===================
WARNING: IT IS RECOMMENDED NOT TO RUN THE NONE DRIVER ON PERSONAL WORKSTATIONS
The 'none' driver will run an insecure kubernetes apiserver as root that may leave the host vulnerable to CSRF attacks
Loading cached images from config file.
5、查看狀態
查看node節點狀態
root@ubuntu:~/1.10.1# kubectl get nodes
NAME??????STATUS??? ROLES???? AGE??????VERSION
minikube??Ready???? master??? 20h??????v1.10.0
查看pod狀態
root@ubuntu:~/1.10.1# kubectl get pods--all-namespaces
NAMESPACE????NAME??????????????????????? ????????????READY???? STATUS???RESTARTS?? AGE
kube-system??etcd-minikube??????????????????????????1/1?????? Running?? 2?????????1h
kube-system??kube-addon-manager-minikube????????????1/1?????? Running?? 1?????????20h
kube-system??kube-apiserver-minikube????????????????1/1?????? Running?? 1?????????1h
kube-system??kube-controller-manager-minikube???????1/1?????? Running?? 2?????????1h
kube-system??kube-dns-86f4d74b45-pndzp??????????????3/3?????? Running?? 16????????20h
kube-system??kube-proxy-pgjpd???????????????????????1/1?????? Running?? 0?????????1h
kube-system??kube-scheduler-minikube????????????????1/1?????? Running?? 5?????????20h
kube-system??kubernetes-dashboard-5498ccf677-scd97??1/1?????? Running?? 4?????????18h
kube-system??storage-provisioner???????????????????? 1/1?????? Running??1????????? 18h
看下READY和STATUS狀態,如果正常就一切ok,萬事大吉了。
如果有問題,那就看看什么原因,例如查看dashboard,可以根據具體問題作出具體的解決方法(下面描述是沒問題)
root@ubuntu:~# kubectl describe--namespace=kube-system pod kubernetes-dashboard-5498ccf677-scd97
Name:??????????kubernetes-dashboard-5498ccf677-scd97
Namespace:?????kube-system
Node:??????????minikube/10.0.3.15
Start Time:????Thu, 21 Jun 2018 17:11:28 +0800
Labels:????????addonmanager.kubernetes.io/mode=Reconcile
???????????????app=kubernetes-dashboard
???????????????pod-template-hash=1054779233
???????????????version=v1.8.1
Annotations:???
Status:????????Running
IP:????????????172.17.0.3
Controlled By:?ReplicaSet/kubernetes-dashboard-5498ccf677
Containers:
?kubernetes-dashboard:
???Container ID:??docker://e5b6c1ae90d34be67da0c51cf4c0924ff7868a7ec76603f9810318b1ed9335b3
???Image:?????????k8s.gcr.io/kubernetes-dashboard-amd64:v1.8.1
? ??Image ID:??????docker://sha256:e94d2f21bc0c297cb74c1dfdd23e2eace013f532c60726601af67984d97f718a
???Port:?????????? 9090/TCP
??? HostPort:????? 0/TCP
???State:????????? Running
?????Started:????? Fri, 22 Jun 201814:18:41 +0800
??? LastState:???? Terminated
?????Reason:?????? Error
?????Exit Code:??? 1
?????Started:????? Fri, 22 Jun 201814:17:45 +0800
?????Finished:???? Fri, 22 Jun 201814:18:18 +0800
???Ready:????????? True
???Restart Count:? 6
???Liveness:?????? http-gethttp://:9090/ delay=30s timeout=30s period=10s #success=1 #failure=3
???Environment:???
???Mounts:
?????/var/run/secrets/kubernetes.io/serviceaccount from default-token-6xhk9(ro)
Conditions:
?Type?????????? Status
??Initialized???True
?Ready????????? True
?PodScheduled?? True
Volumes:
?default-token-6xhk9:
???Type:??????? Secret (a volumepopulated by a Secret)
???SecretName:? default-token-6xhk9
???Optional:??? false
QoS Class:??????BestEffort
Node-Selectors:?
Tolerations:????node.kubernetes.io/not-ready:NoExecute for 300s
????????????????node.kubernetes.io/unreachable:NoExecute for 300s
Events:
?Type???? Reason???????????????? Age??????????????? From?????????????? Message
?----???? ------???????? ????????----?????????????? ----?????????????? -------
?Normal??SuccessfulMountVolume? 29m??????????????? kubelet, minikube? MountVolume.SetUp succeeded for volume"default-token-6xhk9"
?Normal?? SandboxChanged???????? 29m??????????????? kubelet, minikube? Pod sandbox changed, it will be killed andre-created.
?Warning? Unhealthy????????????? 28m??????????????? kubelet, minikube? Liveness probe failed: Gethttp://172.17.0.3:9090/: dial tcp 172.17.0.3:9090: getsockopt: connectionrefused
?Warning? BackOff??????????????? 28m (x2 over 28m)? kubelet, minikube? Back-off restarting failed container
?Normal?? Pulled???????????????? 28m (x2 over 29m)? kubelet, minikube? Container image"k8s.gcr.io/kubernetes-dashboard-amd64:v1.8.1" already present onmachine
? Normal?? Created??????????????? 28m (x2 over 29m)? kubelet, minikube? Created container
?Normal?? Started??????????????? 28m (x2 over 29m)? kubelet, minikube? Started container
?
6、啟動dashboard
root@ubuntu:~# minikube? dashboard
訪問dashboard的是查看具體url:
root@ubuntu:~# minikube? dashboard --url
http://10.0.3.15:30000
由于virtual是雙網卡的問題,所以minikube返回的url是不能訪問的,10.0.3.15這個IP是內部IP,pc端是無法訪問的,所以需要在iptalbes上做一下路由轉發!
臨時:
echo "1">/proc/sys/net/ipv4/ip_forward
固定:修改/etc/sysctl.conf,取消這一行的注釋:
net.ipv4.ip_forward= 1
root@ubuntu:~#sysctl -p
設置iptables規則:
iptables -t nat -A POSTROUTING -j MASQUERADE
再訪問:http://192.168.56.102:30000就可以訪問了
?
作者:wangpengtai
鏈接:https://www.jianshu.com/p/dc3504b70b96
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。
總結
以上是生活随笔為你收集整理的离线安装minikube—1.10.1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Dubbo 一篇文章就够了:从入门到实战
- 下一篇: Kubernetes 无法删除pod实例