色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Docker+K8S 集群環(huán)境搭建及分布式應(yīng)用部署

瀏覽:5日期:2024-11-19 18:39:12

1.安裝docker

yum install docker#啟動(dòng)服務(wù)systemctl start docker.servicesystemctl enable docker.service#測(cè)試docker version

2.安裝etcd

yum install etcd -y#啟動(dòng)etcdsystemctl start etcdsystemctl enable etcd#輸入如下命令查看 etcd 健康狀況etcdctl -C http://localhost:2379 cluster-health#安裝 Kubernetesyum install kubernetes -y

安裝好后,編輯文件 /etc/kubernetes/apiserver,將 KUBE_ADMISSION_CONTROL 后面的 ServiceAccount 去掉,如:

KUBE_ADMISSION_CONTROL='--admission-control=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContextDeny,ResourceQuota'

然后分別啟動(dòng)以下程序(Master):

systemctl start kube-apiserversystemctl enable kube-apiserversystemctl start kube-controller-managersystemctl enable kube-controller-managersystemctl start kube-schedulersystemctl enable kube-scheduler

接下來(lái)啟動(dòng) Node 節(jié)點(diǎn)的程序:

systemctl start kubeletsystemctl enable kubeletsystemctl start kube-proxysystemctl enable kube-proxy

這樣,一個(gè)簡(jiǎn)單的 K8S 集群環(huán)境就已經(jīng)搭建完成了,我們可以運(yùn)行以下命令來(lái)查看集群狀態(tài)。

Docker+K8S 集群環(huán)境搭建及分布式應(yīng)用部署

但目前該集群環(huán)境還不能很好的工作,因?yàn)樾枰獙?duì)集群中 pod 的網(wǎng)絡(luò)進(jìn)行統(tǒng)一管理,所以需要?jiǎng)?chuàng)建覆蓋網(wǎng)絡(luò) flannel。

1.安裝 flannel:

yum install flannel -y

2.編輯文件 /etc/sysconfig/flanneld,增加以下代碼:

--logtostderr=false --log_dir=/var/log/k8s/flannel/ --etcd-prefix=/atomic.io/network --etcd-endpoints=http://localhost:2379 --iface=enp0s3

其中 ?iface 對(duì)應(yīng)的是網(wǎng)卡的名字。

3.配置 etcd 中關(guān)于 flanneld 的 key

flannel 使用 etcd 進(jìn)行配置,來(lái)保證多個(gè) flannel 實(shí)例之間的配置一致性,所以需要在 etcd 上進(jìn)行如下配置:

etcdctl mk /atomic.io/network/config ’{ 'Network': '10.0.0.0/16' }’

/atomic.io/network/config 這個(gè) key 與上文 /etc/sysconfig/flannel 中的配置項(xiàng) FLANNEL_ETCD_PREFIX 是相對(duì)應(yīng)的,錯(cuò)誤的話啟動(dòng)就會(huì)出錯(cuò))

Network 是配置網(wǎng)段,不能和物理機(jī) IP 沖突,可以隨便定義,盡量避開(kāi)物理機(jī) IP 段。

4.啟動(dòng)修改后的 flannel ,并依次重啟 docker、kubernete:

systemctl enable flanneld systemctl start flanneldservice docker restartsystemctl restart kube-apiserversystemctl restart kube-controller-managersystemctl restart kube-schedulersystemctl enable flanneldsystemctl start flanneldservice docker restartsystemctl restart kubeletsystemctl restart kube-proxy

這樣,我們將應(yīng)用部署到 Docker 容器中時(shí),就可以通過(guò)物理IP訪問(wèn)到容器了。

分布式應(yīng)用部署

1.搭建一個(gè)基于 SpringBoot 的框架,這里不再贅述。默認(rèn)已經(jīng)搭建好。 2.編寫Dockerfile,內(nèi)容示例如下:

#下載java8的鏡像FROM java:8#將本地文件掛到到/tmp目錄VOLUME /tmp#復(fù)制文件到容器ADD demo-0.0.1-SNAPSHOT.jar /demo.jar#暴露8080端口EXPOSE 8080#配置啟動(dòng)容器后執(zhí)行的命令ENTRYPOINT ['java','-jar','/demo.jar']

通過(guò) docker build 命令創(chuàng)建鏡像:

docker build -t demo .

這時(shí),我們執(zhí)行 docker images 就將看到剛才構(gòu)建的鏡像,如:

Docker+K8S 集群環(huán)境搭建及分布式應(yīng)用部署

利用 K8S 部署 SpringBoot 應(yīng)用

1.創(chuàng)建 rc 文件 demo-rc.yaml:

apiVersion: v1kind: ReplicationControllermetadata: name: demospec: # 節(jié)點(diǎn)數(shù),設(shè)置為多個(gè)可以實(shí)現(xiàn)負(fù)載均衡效果 replicas: 1 selector: app: demo template: metadata: labels: app: demo spec: containers: - name: demo #鏡像名 image: demo #本地有鏡像就不會(huì)去倉(cāng)庫(kù)拉取 imagePullPolicy: IfNotPresent ports: - containerPort: 8080

執(zhí)行以下命令創(chuàng)建 pod:

kubectl create -f demo-rc.yaml

創(chuàng)建成功后,我們可以查看 pod:

Docker+K8S 集群環(huán)境搭建及分布式應(yīng)用部署

ContainerCreating 提示正在創(chuàng)建中,這時(shí)可以查看創(chuàng)建日志:

Docker+K8S 集群環(huán)境搭建及分布式應(yīng)用部署

可以發(fā)現(xiàn)他提示:redhat-cat.crt 不存在,我們先通過(guò)ll命令查看下該文件:

Docker+K8S 集群環(huán)境搭建及分布式應(yīng)用部署

可以發(fā)現(xiàn)該文件是個(gè)鏈接文件,它指向的是 /etc/rhsm/ca/redhat-uep.pem,而這個(gè)文件發(fā)現(xiàn)確實(shí)不存在,那這個(gè)文件又是怎么來(lái)的呢?答案就在這個(gè)路徑里,我們需要安裝 rhsm 這個(gè)軟件,執(zhí)行命令安裝:

yum install *rhsm* -y

等待一段時(shí)間后,安裝即完成。

安裝完成后,執(zhí)行 ll 命令查看該文件是否存在:

[root@MiWiFi-R3-srv ~]# ll /etc/rhsm/ca/redhat-uep.pem ls: 無(wú)法訪問(wèn)/etc/rhsm/ca/redhat-uep.pem: 沒(méi)有那個(gè)文件或目錄

我們發(fā)現(xiàn),依然沒(méi)有該文件,不過(guò)沒(méi)關(guān)心,我們可以手動(dòng)創(chuàng)建:

touch /etc/rhsm/ca/redhat-uep.pem

執(zhí)行完以上操作后,我們先將 rc 刪除,再創(chuàng)建:

[root@MiWiFi-R3-srv ~]# kubectl delete rc demoreplicationcontroller 'demo' deleted[root@MiWiFi-R3-srv ~]# kubectl create -f demo-rc.yaml replicationcontroller 'demo' created

等待一段時(shí)間后,重新查看 po,我們發(fā)現(xiàn)已經(jīng)成功啟動(dòng):

[root@MiWiFi-R3-srv ~]# kubectl get poNAME READY STATUS RESTARTS AGEdemo-hdmxs 1/1 Running 0 1m

這時(shí),我們還無(wú)法通過(guò)局域網(wǎng)訪問(wèn)應(yīng)用,還需要?jiǎng)?chuàng)建 Service:

1.創(chuàng)建 service 文件 demo-svc.yaml:

apiVersion: v1kind: Servicemetadata: name: demospec: type: NodePort ports: - port: 8080 targetPort: 8080 # 節(jié)點(diǎn)暴露給外部的端口(范圍必須為30000-32767) nodePort: 30001 selector: app: demo

2.執(zhí)行命令:

[root@MiWiFi-R3-srv ~]# kubectl create -f demo-svc.yaml service 'demo' created

3.我們可以查看剛才創(chuàng)建 service:

Docker+K8S 集群環(huán)境搭建及分布式應(yīng)用部署

這時(shí),我們就可以通過(guò) ip:30001 訪問(wèn)應(yīng)用了,如圖:

Docker+K8S 集群環(huán)境搭建及分布式應(yīng)用部署

如果訪問(wèn)不到,需要關(guān)閉防火墻:

systemctl stop firewalldiptables -P FORWARD ACCEPT

到此這篇關(guān)于Docker+K8S 集群環(huán)境搭建及分布式應(yīng)用部署的文章就介紹到這了,更多相關(guān)Docker K8S 集群環(huán)境搭建內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Docker
相關(guān)文章:
主站蜘蛛池模板: 一级欧美过瘾大片 | 日韩一级大毛片欧美一级 | 在线播放人成午夜免费视频 | 乱子伦一级在线现看 | 午夜欧美成人久久久久久 | 欧美成人午夜不卡在线视频 | 久久99精品九九九久久婷婷 | 成人综合婷婷国产精品久久免费 | 国产在线观看免费视频软件 | 亚洲精品国产福利片 | 亚洲男人天 | 在线中文字幕视频 | 国产偷国产偷亚洲高清午夜 | 黄色不卡视频 | 精品国产爱久久 | 亚洲精品国产综合一线久久 | 日韩精品一区二区三区中文字幕 | 爱爱客影院在线影院gf发现 | 国产精品久久久久久久人热 | 亚洲国产高清在线 | 日韩制服诱惑 | 国产区精品一区二区不卡中文 | 国产人成久久久精品 | 在线视频区 | 国产精品夜色视频一区二区 | 精品中文字幕久久久久久 | 可以免费看黄的网址 | 欧美一区精品 | 亚洲欧美另类色妞网站 | 欧美一级毛片欧美一级无片 | 成人软件18免费 | 多人伦精品一区二区三区视频 | 亚洲成人在线网 | 中日韩欧美一级毛片 | 亚洲撸| 亚洲视频区| 深夜福利亚洲 | 亚洲一区二区三区久久 | 久久91精品国产91久久跳舞 | 国产成人aaa在线视频免费观看 | 精品欧美小视频在线观看 |