<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
開啟 https://github.com/kubernetes/minikube/releases/tag/v1.19.0 下載最新版本的二進位制軟體包(deb、rpm包),再使用 apt 或 yum 安裝。
或者直接下載 minikube 最新版本二進位制檔案(推薦)。
curl -Lo minikube https://kubernetes.oss-cn-hangzhou.aliyuncs.com/minikube/releases/v1.19.0/minikube-linux-amd64 # 上面的是阿里雲構建的版本,如果使用 google 構建的,需要翻qiang。 #linux版本 curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 #win版本 curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-darwin-amd64
chmod +x minikube
sudo mv minikube /usr/local/bin
通過 minikube version
命令可以檢視 minikube 的版本,接下來我們使用 minikube start
命令,可以直接建立一個 kubernetes 叢集。minikube 會自動下載 kubeadm、kubectl、kubelet。
如果啟動不起來,可以建立一個 docker 使用者。
useradd -m docker passwd docker # 修改密碼後,加入使用者組 gpasswd -a docker docker
開啟 /etc/sudoers 檔案,在 root ALL=(ALL:ALL) ALL
下 增加新的一行:
docker ALL=(ALL)ALL
然後切換為 docker 使用者:su docker
。
筆者注:如果使用 root 使用者啟動 minikube 命令,會提示錯誤,需要使用非 root 使用者(一般為docker)。如果你不想切換為別的使用者,可以使用 --driver==none
。
minikube start --driver=none
* Pulling base image ... * Downloading Kubernetes v1.20.2 preload ... > preloaded-images-k8s-v10-v1...: 491.71 MiB / 491.71 MiB 100.00% 60.04 Mi > gcr.io/k8s-minikube/kicbase...: 357.67 MiB / 357.67 MiB 100.00% 7.41 MiB * Creating docker container (CPUs=2, Memory=4000MB) .../
接下來 minikube 會拉取各種映象,需要一些時間。minikube 完成初始化後,開啟新的終端視窗,執行 minikube dashboard
啟動面板,根據 URL 地址,可以存取面板。
PS:如果報 X Exiting due to GUEST_MISSING_CONNTRACK: Sorry, Kubernetes 1.20.2 requires conntrack to be installed in root's path
,則需要安裝 constrack ,apt install constrack
。
正常的話,執行 docker ps
後是這樣的。
如果覺得麻煩。。。可以用指令碼。。。
新建一個 start.sh,檔案內容如下:
echo -n "Starting Kubernetes..." minikube version minikube start --wait=false sleep 2 n=0 until [ $n -ge 10 ] do minikube addons enable dashboard && break n=$[$n+1] sleep 1 done sleep 1 n=0 until [ $n -ge 10 ] do kubectl apply -f /opt/kubernetes-dashboard.yaml &>/dev/null && break n=$[$n+1] sleep 1 done echo "Kubernetes Started"
新建一個 kubernetes-dashboard.yaml ,檔案內容如下:
apiVersion: v1 kind: Namespace metadata: labels: addonmanager.kubernetes.io/mode: Reconcile kubernetes.io/minikube-addons: dashboard name: kubernetes-dashboard selfLink: /api/v1/namespaces/kubernetes-dashboard spec: finalizers: - kubernetes status: phase: Active --- apiVersion: v1 kind: Service metadata: labels: app: kubernetes-dashboard name: kubernetes-dashboard-katacoda namespace: kubernetes-dashboard spec: ports: - port: 80 protocol: TCP targetPort: 9090 nodePort: 30000 selector: k8s-app: kubernetes-dashboard type: NodePort
把 kubernetes-dashboard.yaml 放到 /opt 目錄中。
然後啟動 啟動 start.sh 即可。
Kubernetes Deployment 可以檢查 Pod 的健康狀況,並在 Pod 中的容器終止的情況下重新啟動新的容器。
deployment 可以部署應用並管理範例數量,它提供了一種故障的自我修復機制,當應用掛了後,deployment 可以自動啟動一個新的範例,維護固定數量的 pod。
kubectl create
命令建立管理 Pod 的 Deployment。
kubectl create deployment hello-node --image=k8s.gcr.io/echoserver:1.4 # k8s.gcr.io/echoserver:1.4 是映象名稱,hello-node 是 node 名稱
k8s.gcr.io/echoserver 映象暴露了 8080 埠。
檢視 Deployment:
kubectl get deployments
檢視 pod :
kubectl get pods
檢視叢集事件:
kubectl get events
檢視 kubectl
設定:
kubectl config view
預設情況下,pod 只能在 kubernetes 叢集的內部網路存取,如果要外部網路存取,則需要暴露 pod 為 kubnetes service。這裡我們把上一小節的 hello-node 節點暴露出去。
kubectl expose deployment hello-node --type=LoadBalancer --port=8080
然後檢視剛剛建立的 service:
kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE hello-node LoadBalancer 10.96.194.154 <pending> 8080:31686/TCP 85s kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 22m
然後試用 minikube service 提供一個 ip 供外界存取。
minikube service hello-node
root@instance-1:~# minikube service hello-node |-----------|------------|-------------|-------------------------| | NAMESPACE | NAME | TARGET PORT | URL | |-----------|------------|-------------|-------------------------| | default | hello-node | 8080 | http://10.170.0.2:31686 | |-----------|------------|-------------|-------------------------| * Opening service default/hello-node in default browser... http://10.170.0.2:31686
首先生成 service、deployment 。
kubectl delete service hello-node kubectl delete deployment hello-node
然後停止 Minikube 虛擬機器器(VM):
minikube stop
接著刪除 Minikube 虛擬機器器(VM):
minikube delete
到此這篇關於Minikube搭建Kubernetes叢集的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支援it145.com。
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45