91在线视频播放_欧美日韩精品一区二区_2020国产成人精品免费视频_国产嫩草影院

您的位置:首頁 >熱點(diǎn) > 正文

微服務(wù) - 搭建k8s(minikube)與簡單wordPress實(shí)戰(zhàn)

Kubernetes 的基本架構(gòu)

Kubernetes 的基本架構(gòu),由Matser和Node子節(jié)點(diǎn)組成,使用kubectl進(jìn)行通信, Master 里的組件有哪些:

Master 里有 4 個(gè)組件,分別是 apiserver、etcd、scheduler、controller-manager。


【資料圖】

Kubernetes 的基本架構(gòu)圖

Kubernetes 的基本架構(gòu),由Matser和Node子節(jié)點(diǎn)組成,使用kubectl進(jìn)行通信, Master 里的組件有哪些:

Master 里有 4 個(gè)組件,分別是 apiserver、etcd、scheduler、controller-manager。

Api Server 系統(tǒng)唯一入口聯(lián)絡(luò)員,controller-manager監(jiān)控運(yùn)維節(jié)點(diǎn)容器狀態(tài),kube scheduler負(fù)責(zé)容器的編排,etcd負(fù)責(zé)持久化存儲和服務(wù)發(fā)現(xiàn)。

這 4 個(gè)組件也都被容器化了,運(yùn)行在集群的 Pod 里,我們可以用 kubectl 來查看它們的狀態(tài),使用命令:

kubectl get pod -n kube-system

安裝

我使用的電腦是Mac pro M2芯的,使用的虛擬環(huán)境是 Ubuntu 22.04 ,M2芯兼容性不是特別好,所以盡量跟我博客中的版本保持一致。

虛擬機(jī)環(huán)境 Ubuntu 22.04docker :20.10.17minikube:v1.25.2

虛擬機(jī)初始化

安裝虛擬機(jī)需要的工具,ip addr 查看ip,可以使用終端登錄虛擬機(jī)。

sudo apt updatesudo apt install -y git vim curl jq openssh-server

下載時(shí)請注意版本,以宿主機(jī)的版本為準(zhǔn),下載對應(yīng)的版本,不然會報(bào)bash: /usr/local/bin/kubectl:無法執(zhí)行二進(jìn)制文件: 可執(zhí)行文件格式錯(cuò)誤的錯(cuò)誤提示。

curl -Lo minikube https://github.com/kubernetes/minikube/releases/download/v1.25.2/minikube-linux-arm64sudo install minikube /usr/local/bin/

使用minikube version查看版本:

minikube version: v1.25.2commit: 362d5fdc0a3dbee389b3d3f1034e8023e72bd3a7

使用minikube kubectl命令來安裝kubectl:

在這之前需要安裝docker,使用命令sudo snap install docker,把當(dāng)前用戶加入到docker組,命令如下:

sudo docker version --format {{.Server.Os}}-{{.Server.Version}}sudo groupadd dockersudo usermod -aG docker $USER && newgrp docker

啟動:

minikube start --image-mirror-country="cn"--image-repository="registry.cn-hangzhou.aliyuncs.com/google_containers"

啟動完成后可以使用這兩個(gè)命令查看集群狀態(tài):

minikube statusminikube node list

查看kubectl版本,minikube kubectl -- version

使用 Linux 的“alias”功能,為它創(chuàng)建一個(gè)別名,寫到當(dāng)前用戶目錄下的 .bashrc 里,也就是這樣:

alias kubectl="minikube kubectl --"

虛擬機(jī)安裝完成后,重啟一下虛擬機(jī),不然會報(bào)Exiting due to DRV_NOT_HEALTHY:意思是沒找到容器的驅(qū)動器,有時(shí)間這個(gè)問題的原因是docker沒有啟動。

執(zhí)行kubectl run ngx --image=nginx:alpine,這里涉及 Kubernetes 里的一個(gè)非常重要的概念:Pod。

命令執(zhí)行之后kubectl get pod可以看到,在 Kubernetes 集群里就有了一個(gè)名字叫 ngx 的 Pod 正在運(yùn)行,表示我們的這個(gè)單節(jié)點(diǎn) minikube 環(huán)境已經(jīng)搭建成功。

插件

查看插件的命令minikube addons list

比較重要的有兩個(gè):DNS 和 Dashboard。

在 minikube 環(huán)境里執(zhí)行一條簡單的命令,就可以自動用瀏覽器打開 Dashboard 頁面,而且還支持中文 minikube dashboard

如果想設(shè)置外網(wǎng)可以訪問,執(zhí)行命令kubectl proxy --port=8001 --address="192.168.88.131" --accept-hosts="^.*" &

kubectl 常用命令

編寫yaml文檔有兩個(gè)小技巧,一個(gè)是參考Kubernetes 的官方參考文檔,https://kubernetes.io/docs/reference/kubernetes-api/。

第二個(gè)是使用kubectl命令:

kubectl explain podkubectl explain pod.metadatakubectl explain pod.speckubectl explain pod.spec.containers

使用kubectl例如寫入一個(gè)模版,輸出到一個(gè)指定文件中:

kubectl run ngx --image=nginx:alpine --dry-run=client -o yaml > nginx_pod.yaml

pod的關(guān)鍵在于yaml文件的編寫,然后用kubectl去執(zhí)行:

# 添加podkubectl apply -f nginx_pod.yaml# 刪除podkubectl delete pod [podname]# 查看pod節(jié)點(diǎn)kubectl get pod -o wide# 查看日志kubectl logs [podname]# 查看pod詳細(xì)情況kubectl describe pod [podname]# 登陸pod kubectl exec -it ngx-pod -- bash

K8s nginx + WordPress + MariaDb 實(shí)戰(zhàn)

先從搭建一個(gè)簡單的WordPress網(wǎng)站開始,在這之前你先了解一下yaml語言,因?yàn)閗8s需要的通信都是建立在yaml語言之上,和web中的html一樣,是所有運(yùn)行的基礎(chǔ)。

nginx + WordPress + MariaDb流程圖

先看看下圖,這是我們要完成的事情,也是k8s的原理所在,宿主機(jī)上搭建Nginx 做反向代理,相當(dāng)于做了一次網(wǎng)關(guān),K8s映射的端口,已達(dá)成通信的目的。

1:部署MariaDB,準(zhǔn)備yml文件 maria.yml

apiVersion: v1kind: ConfigMapmetadata:  name: maria-cmdata:  DATABASE: "db"  USER: "wp"  PASSWORD: "123"  ROOT_PASSWORD: "123"---apiVersion: v1kind: Podmetadata:  name: maria-pod  labels:    app: wordpress    role: databasespec:  containers:  - image: mariadb:10    name: maria    imagePullPolicy: IfNotPresent    ports:    - containerPort: 3306    envFrom:    - prefix: "MARIADB_"      configMapRef:        name: maria-cm

執(zhí)行命令kubectl apply -y maria.yml

2.部署WordPress的Pod

執(zhí)行kubectl get pod -o wide命令,查看maria-pod的IP地址和運(yùn)行狀態(tài),我本地的是172.17.0.6,狀態(tài)是Running,表示ok。

node3@node3-virtual-machine:~/yaml$ kubectl get pod -o wideNAME        READY   STATUS    RESTARTS   AGE   IP           NODE       NOMINATED NODE   READINESS GATESmaria-pod   1/1     Running   0          96m   172.17.0.6   minikube              

準(zhǔn)備yml文件 wordpress-pod.yml

apiVersion: v1kind: ConfigMapmetadata:  name: wp-cmdata:  HOST: "172.17.0.6"  USER: "wp"  PASSWORD: "123"  NAME: "db"---apiVersion: v1kind: Podmetadata:  name: wp-pod  labels:    app: wordpress    role: websitespec:  containers:  - image: wordpress:5    name: wp-pod    imagePullPolicy: IfNotPresent    ports:    - containerPort: 80    envFrom:    - prefix: "WORDPRESS_DB_"      configMapRef:        name: wp-cm

執(zhí)行部署命令,kubectl apply -f wordpress-pod.yml

3.WordPress Pod 映射端口號,讓它在集群外可見

因?yàn)?Pod 都是運(yùn)行在 Kubernetes 內(nèi)部的私有網(wǎng)段里的,外界無法直接訪問,想要對外暴露服務(wù),需要使用一個(gè)專門的 kubectl port-forward 命令,它專門負(fù)責(zé)把本機(jī)的端口映射到在目標(biāo)對象的端口號,經(jīng)常用于 Kubernetes 的臨時(shí)調(diào)試和測試。

kubectl port-forward wp-pod 8080:80 &

如果想關(guān)閉端口轉(zhuǎn)發(fā),需要敲命令 fg ,它會把后臺的任務(wù)帶回到前臺,然后就可以簡單地用“Ctrl + C”來停止轉(zhuǎn)發(fā)了。

Dashboard

4.創(chuàng)建反向代理的 Nginx

nginx的配置文件,準(zhǔn)備proxy.conf,我本地的路徑/home/node3/conf/proxy.conf

server {  listen 80;  default_type text/html;  location / {      proxy_http_version 1.1;      proxy_set_header Host $host;      proxy_pass http://127.0.0.1:8080;  }}

執(zhí)行docker命令,我本機(jī)虛擬機(jī)的ip是192.168.88.131 :

docker run -d --rm \    --net=host \    -v /home/node3/conf/proxy.conf:/etc/nginx/conf.d/default.conf \    nginx:alpine
安裝完成

免責(zé)聲明:本文不構(gòu)成任何商業(yè)建議,投資有風(fēng)險(xiǎn),選擇需謹(jǐn)慎!本站發(fā)布的圖文一切為分享交流,傳播正能量,此文不保證數(shù)據(jù)的準(zhǔn)確性,內(nèi)容僅供參考

關(guān)鍵詞:

相關(guān)內(nèi)容

熱門資訊

最新圖文

91在线视频播放_欧美日韩精品一区二区_2020国产成人精品免费视频_国产嫩草影院

            色一情一区二区三区| 97超碰人人看| 日本高清一区二区视频| 国产午夜大地久久| 国产又黄又爽免费视频| 色片在线免费观看| 可以免费观看av毛片| 成人精品视频在线播放| 国产女主播av| 中文字幕第50页| 国内自拍第二页| 天天看片天天操| www.成年人| 国产精品夜夜夜爽张柏芝| 国产一区二区在线观看免费视频| 天天影视综合色| 91欧美视频在线| 欧美在线aaa| www.久久久久久久久久久| 91国内在线播放| 国产又大又长又粗又黄| 日本不卡一区二区三区四区| 91看片淫黄大片91| 国产一区二区片| 波多野结衣天堂| www国产黄色| 日本精品一区二区三区四区| 免费在线观看日韩视频| 亚洲精品中文字幕无码蜜桃| 天天爽人人爽夜夜爽| av亚洲天堂网| 日本黄色a视频| 无码人妻精品一区二区蜜桃百度| 超碰人人爱人人| 国产欧美日韩网站| www黄色av| 中文字幕第38页| 麻豆中文字幕在线观看| 精品嫩模一区二区三区| 免费不卡av在线| 亚洲色精品三区二区一区| 日韩av.com| 六月婷婷激情综合| 亚洲精品无码久久久久久| 99热手机在线| 国产免费一区二区三区四在线播放| 国产片侵犯亲女视频播放| 六月丁香婷婷激情| 91视频这里只有精品| 无颜之月在线看| 成熟老妇女视频| 特级黄色片视频| 欧美亚洲日本一区二区三区| 久久久久免费精品| 国产资源中文字幕| 五十路熟女丰满大屁股| 在线免费观看视频黄| 樱空桃在线播放| 欧美日韩一道本| 三上悠亚av一区二区三区| 亚洲中文字幕无码一区二区三区| 俄罗斯av网站| 欧美成人乱码一二三四区免费| 国产又粗又猛又爽又黄的网站| 精品视频一区二区在线| 国产av不卡一区二区| 北条麻妃在线观看| 青青草视频在线免费播放| 中文字幕第88页| 丁香六月激情婷婷| 最新免费av网址| 国产九九九九九| 一级片免费在线观看视频| 国产乱子伦农村叉叉叉| 日本一二三区在线| 日韩中文字幕组| 青青草国产免费| 国产大片一区二区三区| a在线视频观看| 色哺乳xxxxhd奶水米仓惠香| 91淫黄看大片| 日本超碰在线观看| 成人在线免费在线观看| 成人免费看片视频在线观看| 亚欧在线免费观看| www插插插无码视频网站| 天天操狠狠操夜夜操| 免费成人午夜视频| 成人毛片100部免费看| 日本在线播放一区二区| 成人午夜视频免费在线观看| 欧在线一二三四区| 91午夜在线观看| 国产精品12p| 天天看片天天操| www.99在线| 哪个网站能看毛片| 欧美亚洲日本一区二区三区| 精品国产一区二区三区在线| 亚洲一区精品视频在线观看| 日韩在线第三页| 操人视频免费看| 在线观看免费视频高清游戏推荐| 尤物av无码色av无码| 国产精品久久久久久久久电影网| 色综合五月婷婷| 日本人69视频| 一本色道久久亚洲综合精品蜜桃| 国产麻花豆剧传媒精品mv在线| 僵尸世界大战2 在线播放| 一级全黄肉体裸体全过程| 久久99久久99精品| 小泽玛利亚av在线| 午夜啪啪免费视频| 日韩 国产 一区| 国内av一区二区| 69久久久久久| 亚洲欧美自拍另类日韩| 中文字幕视频在线免费观看| 成人一区二区三| 成人三级视频在线播放| 日韩最新中文字幕| 久久久成人精品一区二区三区| 亚洲欧美手机在线| 黄色a级三级三级三级| 国产又大又长又粗又黄| 熟女视频一区二区三区| 国产日韩欧美大片| 成人毛片100部免费看| av动漫在线播放| 一本久道高清无码视频| 亚洲美女爱爱视频| 奇米影音第四色| 免费av不卡在线| 国产高清免费在线| 九一免费在线观看| www.av片| 国产女女做受ⅹxx高潮| 九热视频在线观看| 五月天开心婷婷| 黄色影视在线观看| www.欧美黄色| 黄色片免费网址| 福利在线小视频| 日韩成人三级视频| 欧美精品一区免费| 日韩毛片在线免费看| 免费看污污网站| 99re99热| 免费毛片网站在线观看| 欧美激情国产精品日韩| 亚洲色图 在线视频| 国产资源中文字幕| 久久国产精品网| 手机在线看福利| 性生活免费观看视频| 亚洲 自拍 另类小说综合图区| 女人天堂av手机在线| 少妇一级淫免费播放| 国产女主播av| 黄色免费观看视频网站| 污污的网站免费| 免费看欧美黑人毛片| 精品久久久噜噜噜噜久久图片| 免费在线观看污网站| 激情五月六月婷婷| 超碰影院在线观看| 99亚洲精品视频| 成人三级视频在线播放| 自拍偷拍视频在线| 国产极品粉嫩福利姬萌白酱| 中文字幕在线视频精品| 成人免费视频91| 亚洲精品手机在线观看| 一本久道高清无码视频| 超碰超碰在线观看| 大荫蒂性生交片| 亚洲综合色在线观看| 老子影院午夜伦不卡大全| 中文字幕天天干| 免费拍拍拍网站| 91高清国产视频| 日韩精品 欧美| 欧美日韩久久婷婷| 成年人免费在线播放| 精产国品一二三区| 男人天堂999| 99色精品视频| 四虎成人在线播放| 欧美精品色婷婷五月综合| 法国空姐在线观看免费| 欧美在线观看视频网站| 熟妇人妻无乱码中文字幕真矢织江| 日本黄色播放器| youjizzxxxx18| 久久久久久久久久网| 成年人网站av| 五月婷婷深爱五月| 五月丁香综合缴情六月小说| 国产手机视频在线观看|