日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

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 集群環境就已經搭建完成了,我們可以運行以下命令來查看集群狀態。

Docker+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 就將看到剛才構建的鏡像,如:

 

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

 

 

利用 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:

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

 

 

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

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

 

 

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

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

 

 

可以發現該文件是個鏈接文件,它指向的是 /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:

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

 

 

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

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

 

 

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

systemctl stop firewalld

iptables -P FORWARD ACCEPT

分享到:
標簽:Docker K8S
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定