婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Docker+K8S 集群環境搭建及分布式應用部署

Docker+K8S 集群環境搭建及分布式應用部署

熱門標簽:企業400電話辦理哪正規 網站上插入地圖標注內容 400電話辦理哪家好廠商 地圖標注企業名稱侵權案件 鶴壁電銷外呼系統怎么安裝 繽客網注冊時地圖標注出不來 重慶營銷外呼系統排名 地圖標注需要現場嗎 工廠位置地圖標注

1.安裝docker

yum install docker
#啟動服務
systemctl start docker.service
systemctl enable docker.service
#測試
docker version

2.安裝etcd

yum install etcd -y
#啟動etcd
systemctl start etcd
systemctl enable etcd
#輸入如下命令查看 etcd 健康狀況
etcdctl -C http://localhost:2379 cluster-health
#安裝 Kubernetes
yum install kubernetes -y

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

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

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

systemctl start kube-apiserver
systemctl enable kube-apiserver
systemctl start kube-controller-manager
systemctl enable kube-controller-manager
systemctl start kube-scheduler
systemctl enable kube-scheduler

接下來啟動 Node 節點的程序:

systemctl start kubelet
systemctl enable kubelet
systemctl start kube-proxy
systemctl enable kube-proxy

這樣,一個簡單的 K8S 集群環境就已經搭建完成了,我們可以運行以下命令來查看集群狀態。

 

但目前該集群環境還不能很好的工作,因為需要對集群中 pod 的網絡進行統一管理,所以需要創建覆蓋網絡 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 對應的是網卡的名字。

3.配置 etcd 中關于 flanneld 的 key

flannel 使用 etcd 進行配置,來保證多個 flannel 實例之間的配置一致性,所以需要在 etcd 上進行如下配置:

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

/atomic.io/network/config 這個 key 與上文 /etc/sysconfig/flannel 中的配置項 FLANNEL_ETCD_PREFIX 是相對應的,錯誤的話啟動就會出錯)

Network 是配置網段,不能和物理機 IP 沖突,可以隨便定義,盡量避開物理機 IP 段。

4.啟動修改后的 flannel ,并依次重啟 docker、kubernete:

systemctl enable flanneld 
systemctl start flanneld
service docker restart
systemctl restart kube-apiserver
systemctl restart kube-controller-manager
systemctl restart kube-scheduler
systemctl enable flanneld
systemctl start flanneld
service docker restart
systemctl restart kubelet
systemctl restart kube-proxy

這樣,我們將應用部署到 Docker 容器中時,就可以通過物理IP訪問到容器了。

分布式應用部署

1.搭建一個基于 SpringBoot 的框架,這里不再贅述。默認已經搭建好。
2.編寫Dockerfile,內容示例如下:

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

通過 docker build 命令創建鏡像:

docker build -t demo .

這時,我們執行 docker images 就將看到剛才構建的鏡像,如:

利用 K8S 部署 SpringBoot 應用

1.創建 rc 文件 demo-rc.yaml:

apiVersion: v1
kind: ReplicationController
metadata:
 name: demo
spec:
 # 節點數,設置為多個可以實現負載均衡效果
 replicas: 1
 selector:
  app: demo
 template:
  metadata:
   labels:
    app: demo
  spec:
   containers:
   - name: demo
    #鏡像名
    image: demo
    #本地有鏡像就不會去倉庫拉取
    imagePullPolicy: IfNotPresent
    ports:
    - containerPort: 8080

執行以下命令創建 pod:

kubectl create -f demo-rc.yaml 

創建成功后,我們可以查看 pod:

 

ContainerCreating 提示正在創建中,這時可以查看創建日志:

 

可以發現他提示:redhat-cat.crt 不存在,我們先通過ll命令查看下該文件:

 

可以發現該文件是個鏈接文件,它指向的是 /etc/rhsm/ca/redhat-uep.pem,而這個文件發現確實不存在,那這個文件又是怎么來的呢?答案就在這個路徑里,我們需要安裝 rhsm 這個軟件,執行命令安裝:

yum install *rhsm* -y

等待一段時間后,安裝即完成。

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

[root@MiWiFi-R3-srv ~]# ll /etc/rhsm/ca/redhat-uep.pem
ls: 無法訪問/etc/rhsm/ca/redhat-uep.pem: 沒有那個文件或目錄

我們發現,依然沒有該文件,不過沒關心,我們可以手動創建:

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

執行完以上操作后,我們先將 rc 刪除,再創建:

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

等待一段時間后,重新查看 po,我們發現已經成功啟動:

[root@MiWiFi-R3-srv ~]# kubectl get po
NAME     READY   STATUS  RESTARTS  AGE
demo-hdmxs  1/1    Running  0     1m

這時,我們還無法通過局域網訪問應用,還需要創建 Service:

1.創建 service 文件 demo-svc.yaml:

apiVersion: v1
kind: Service
metadata:
 name: demo
spec:
 type: NodePort
 ports:
 - port: 8080
  targetPort: 8080
  # 節點暴露給外部的端口(范圍必須為30000-32767)
  nodePort: 30001
 selector:
  app: demo

2.執行命令:

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

3.我們可以查看剛才創建 service:

 

這時,我們就可以通過 ip:30001 訪問應用了,如圖:

 

如果訪問不到,需要關閉防火墻:

systemctl stop firewalld
iptables -P FORWARD ACCEPT

到此這篇關于Docker+K8S 集群環境搭建及分布式應用部署的文章就介紹到這了,更多相關Docker K8S 集群環境搭建內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

標簽:東莞 鹽城 日照 常州 克拉瑪依 棗莊 渭南 96

巨人網絡通訊聲明:本文標題《Docker+K8S 集群環境搭建及分布式應用部署》,本文關鍵詞  Docker+K8S,集群,環境,搭建,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Docker+K8S 集群環境搭建及分布式應用部署》相關的同類信息!
  • 本頁收集關于Docker+K8S 集群環境搭建及分布式應用部署的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 化德县| 红安县| 筠连县| 洪雅县| 瑞昌市| 五华县| 突泉县| 枣阳市| 涟源市| 古蔺县| 横山县| 洛川县| 华宁县| 遵义县| 赣州市| 临城县| 沿河| 酉阳| 伊春市| 江达县| 永和县| 隆德县| 盱眙县| 方城县| 洛浦县| 香港| 秦皇岛市| 昂仁县| 台湾省| 昌宁县| 四川省| 成武县| 宜黄县| 基隆市| 玉溪市| 通江县| 霍山县| 四子王旗| 鲁山县| 加查县| 宁海县|