日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > centos >内容正文

centos

Centos7 Kubernetes1.8+docker容器集群

發布時間:2025/6/15 centos 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Centos7 Kubernetes1.8+docker容器集群 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Kubernetes(k8s)

Kubernetes官網

Kubernetes使用教程

Docker-ce安裝官方教程

Kubernetes簡介

Kubernetes是google開源的多主機容器管理工具, 簡稱:k8s,它帶有人性化圖形管理界面, 它在開源社區很受歡迎github上已經有了20000+的收藏,和7000+的fork。

Kubernetes其特性主要包括:

1、可以非常輕松地開發復雜系統;

2、Kubernetes為微服務架構;

3、系統可以隨時隨地整體“搬遷”到公有云上;

4、Kubernetes系統架構具備了超強的橫向擴容能力。

Kubernetes使用的資源對象

在Kubernetes中,Node、Pod、Replication Controller、Service等概念都可以看作一種資源對象,通過Kubernetes提供的Kubectl工具或者API調用進行操作,并保存在etcd中。

實驗環境

系統版本:centos7x3.10.0-514.el7.x86_64

Kubernetes版本:v1.8.3

Kubernetes-node版本:v1.8.3

Docker版本:docker-ce.x86_64 0:18.03.1.ce-1.el7.centos

注:以上最好兩個均采用當前最新穩定版本。

關閉防火墻并禁止開機自啟

systemctl stop firewalld.service
systemctl disable firewalld

關閉selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

重啟 reboot

搭建k8s集群

master主機(IP:192.168.152.170)

安裝組件:etcd kube-apiserver kube-controller-manager kube-scheduler

1、安裝kubernetes服務端

1)下載二進制源碼包

wget https://storage.googleapis.com/kubernetes-release/release/v1.8.3/kubernetes-server-linux-amd64.tar.gz
注:直接在master服務器上執行命令下載即可!

2)解壓源碼包

tar zxf kubernetes-server-linux-amd64.tar.gz

3)遞歸創建kubernetes運行文件存放目錄

mkdir -p /k8s/{bin,cfg}

4)將解壓目錄里的文件移動到新創建的目錄里

mv kubernetes/server/bin/{kube-apiserver,kube-controller-manager,kube-scheduler,kubectl} /k8s/bin/

2、安裝etcd組件(默認版本:etcd.x86_64 0:3.2.22-1.el7)

1)安裝etcd

yum -y install etcd

2)編輯etcd的配置文件

vi /etc/etcd/etcd.conf

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
ETCD_NAME="default"
ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379"

注:Ubuntu系統etcd配置文件在/etc/default/etcd。

3)啟動etcd服務

#設置etcd服務開機自啟

systemctl enable etcd

#啟動etcd服務

systemctl start etcd

3、配置kube-apiserver組件

1)創建kube-apiserver配置文件

vi /k8s/cfg/kube-apiserver

#啟用日志標準錯誤
KUBE_LOGTOSTDERR="--logtostderr=true"
#日志級別
KUBE_LOG_LEVEL="--v=4"
#Etcd服務地址
KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.152.170:2379"
#API服務監聽地址
KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
#API服務監聽端口
KUBE_API_PORT="--insecure-port=8080"
#對集群中成員提供API服務地址
KUBE_ADVERTISE_ADDR="--advertise-address=192.168.152.170"
#允許容器請求特權模式,默認false
KUBE_ALLOW_PRIV="--allow-privileged=false"
#集群分配的IP范圍
KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.0.100.0/24"

2)創建kube-apiserver的systemd服務啟動文件

vi /lib/systemd/system/kube-apiserver.service

[Unit]
Description=Kubernetes API Server
Documentation=https://github.com/kubernetes/kubernetes
[Service]
EnvironmentFile=-/k8s/cfg/kube-apiserver
#ExecStart=/k8s/bin/kube-apiserver ${KUBE_APISERVER_OPTS}
ExecStart=/k8s/bin/kube-apiserver \
${KUBE_LOGTOSTDERR} \
${KUBE_LOG_LEVEL} \
${KUBE_ETCD_SERVERS} \
${KUBE_API_ADDRESS} \
${KUBE_API_PORT} \
${KUBE_ADVERTISE_ADDR} \
${KUBE_ALLOW_PRIV} \
${KUBE_SERVICE_ADDRESSES}
Restart=on-failure
[Install]
WantedBy=multi-user.target

3)啟動kube-apiserver服務

#重新加載kube-apiserver服務守護進程

systemctl daemon-reload

#設置kube-apiserver服務開機自啟

systemctl enable kube-apiserver

#重啟kube-apiserver服務

systemctl restart kube-apiserver

注:apiserver默認支持etcd3,如果是etcd2,需啟動時指定版本選項--storage-backend=etcd2

4、配置kube-scheduler組件

1)創建kube-scheduler配置文件

vi /k8s/cfg/kube-scheduler

#啟用日志標準錯誤
KUBE_LOGTOSTDERR="--logtostderr=true"
#日志級別
KUBE_LOG_LEVEL="--v=4"
#k8s-master服務地址
KUBE_MASTER="--master=192.168.152.170:8080"
#指定master為控制臺
KUBE_LEADER_ELECT="--leader-elect"

2)創建kube-scheduler的systemd服務啟動文件

vi /lib/systemd/system/kube-scheduler.service

[Unit]
Description=Kubernetes Scheduler
Documentation=https://github.com/kubernetes/kubernetes
[Service]
EnvironmentFile=/k8s/cfg/kube-scheduler
ExecStart=/k8s/bin/kube-scheduler \
${KUBE_LOGTOSTDERR} \
${KUBE_LOG_LEVEL} \
${KUBE_MASTER} \
${KUBE_LEADER_ELECT}
Restart=on-failure
[Install]
WantedBy=multi-user.target

3)啟動kube-scheduler服務

#重新加載kube-scheduler服務守護進程

systemctl daemon-reload

#設置kube-scheduler服務開機自啟

systemctl enable kube-scheduler

#重新啟動kube-scheduler服務

systemctl restart kube-scheduler

5、配置kube-controller-manager組件

1)創建kube-controller-manager配置文件

vi /k8s/cfg/kube-controller-manager

#啟用日志標準錯誤
KUBE_LOGTOSTDERR="--logtostderr=true"
#日志級別
KUBE_LOG_LEVEL="--v=4"
#k8s-master服務地址
KUBE_MASTER="--master=192.168.152.170:8080"

2)創建kube-controller-manager的systemd服務啟動文件

vi /lib/systemd/system/kube-controller-manager.service

[Unit]
Description=Kubernetes Controller Manager
Documentation=https://github.com/kubernetes/kubernetes
[Service]
EnvironmentFile=/k8s/cfg/kube-controller-manager
ExecStart=/k8s/bin/kube-controller-manager \
${KUBE_LOGTOSTDERR} \
${KUBE_LOG_LEVEL} \
${KUBE_MASTER} \
${KUBE_LEADER_ELECT}
Restart=on-failure
[Install]
WantedBy=multi-user.target

3)啟動kube-controller-manager服務

#重新加載kube-controller-manager服務守護進程

systemctl daemon-reload

#設置kube-controller-manager服務開機自啟

systemctl enable kube-controller-manager

#重新啟動kube-controller-manager服務

systemctl restart kube-controller-manager

注:master節點組件全部啟動了,需要注意的是服務啟動順序有依賴,先啟動etcd,再啟動apiserver,其他組件無順序要求。

查看master節點組件進程狀態 ps -ef | grep kube

注:以上截圖說明所有組件都正常運行!如果單獨一個組件啟動失敗可以使用k8s自帶查看日志命令。

6、K8s查看具體組件日志的命令

journalctl –u etcd

journalctl -u kube-apiserver

journalctl -u kube-controller-manager

journalctl -u kube-scheduler

node-1主機(192.168.152.168)

安裝組件:kubelet kube-proxy docker

1、安裝kubernetes的node-1節點

1)下載二進制源碼包

wget https://storage.googleapis.com/kubernetes-release/release/v1.8.3/kubernetes-node-linux-amd64.tar.gz
注:直接在node-1服務器上執行命令下載即可!

2)解壓源碼包

tar zxf kubernetes-node-linux-amd64.tar.gz

3)遞歸創建kubernetes運行文件存放目錄

mkdir -p /k8s/{bin,cfg}

4)將解壓目錄里的文件移動到新創建的目錄里

mv kubernetes/node/bin/{ kubectl,kubelet,kube-proxy} /k8s/bin/

5)創建連接master apiserver配置文件

vi /k8s/cfg/kubelet.kubeconfig

apiVersion: v1
kind: Config
clusters:

  • cluster:
    server: http://192.168.152.170:8080
    name: local
    contexts:
  • context:
    cluster: local
    name: local
    current-context: local


注:kubeconfig文件用于kubelet連接master apiserver的。

6)創建kubelet配置文件

vi /k8s/cfg/kubelet

#啟用日志標準錯誤
KUBE_LOGTOSTDERR="--logtostderr=true"
#日志級別
KUBE_LOG_LEVEL="--v=4"
#Kubelet服務IP地址
NODE_ADDRESS="--address=192.168.152.168"
#Kubelet服務端口
NODE_PORT="--port=10250"
#自定義節點名稱
NODE_HOSTNAME="--hostname-override=192.168.152.168"
#kubeconfig路徑,指定連接API服務器
KUBELET_KUBECONFIG="--kubeconfig=/k8s/cfg/kubelet.kubeconfig"
#允許容器請求特權模式,默認false
KUBE_ALLOW_PRIV="--allow-privileged=false"
#DNS信息
KUBELET_DNS_IP="--cluster-dns=10.0.100.2"
KUBELET_DNS_DOMAIN="--cluster-domain=cluster.local"
#禁用使用Swap
KUBELET_SWAP="--fail-swap-on=false"

7)創建kubelet服務的systemd啟動文件

vi /lib/systemd/system/kubelet.service

[Unit]
Description=Kubernetes Kubelet
After=docker.service
Requires=docker.service
[Service]
EnvironmentFile=-/k8s/cfg/kubelet
ExecStart=/k8s/bin/kubelet \
${KUBE_LOGTOSTDERR} \
${KUBE_LOG_LEVEL} \
${NODE_ADDRESS} \
${NODE_PORT} \
${NODE_HOSTNAME} \
${KUBELET_KUBECONFIG} \
${KUBE_ALLOW_PRIV} \
${KUBELET_DNS_IP} \
${KUBELET_DNS_DOMAIN} \
${KUBELET_SWAP}
Restart=on-failure
KillMode=process
[Install]
WantedBy=multi-user.target

8)啟動kubelet服務

#重新加載kubelet服務守護進程

systemctl daemon-reload

#設置kubelet服務開機自啟

systemctl enable kubelet

#重新啟動kubelet服務

systemctl restart kubelet

2、配置kube-proxy組件

1)創建kube-proxy配置文件

vi /k8s/cfg/kube-proxy

#用日志標準錯誤
KUBE_LOGTOSTDERR="--logtostderr=true"
#志級別
KUBE_LOG_LEVEL="--v=4"
#定義節點名稱
NODE_HOSTNAME="--hostname-override=192.168.152.168"
#PI服務地址
KUBE_MASTER="--master=http://192.168.152.170:8080"

2)創建kube-proxy服務的systemd服務啟動文件

vi /lib/systemd/system/kube-proxy.service

[Unit]
Description=Kubernetes Proxy
After=network.target
[Service]
EnvironmentFile=/k8s/cfg/kube-proxy
ExecStart=/k8s/bin/kube-proxy \
${KUBE_LOGTOSTDERR} \
${KUBE_LOG_LEVEL} \
${NODE_HOSTNAME} \
${KUBE_MASTER}
Restart=on-failure
[Install]
WantedBy=multi-user.target

3)啟動kube-proxy服務

#重新加載kube-proxy服務守護進程

systemctl daemon-reload

#設置kube-proxy服務開機自啟

systemctl enable kube-proxy

#重啟kube-apiserver服務

systemctl restart kube-proxy

3、安裝docker(docker-ce.x86_64 0:18.03.1.ce-1.el7.centos)

1)安裝docker-ce的yum源

//下載yum源到本地

wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

//移動yum源到/etc/yum.repos.d/目錄下

mv docker-ce.repo /etc/yum.repos.d/

2)從高到低排列顯示docker版本

yum list docker-ce --showduplicates | sort -r

注:在正式環境,必須使用統一的穩定版本,而不是總使用最新(這樣各host上的版本可能不一致)

3)安裝docker-ce .x86_64-18.03.1.ce-1.el7.centos

yum -y install docker-ce .x86_64-18.03.1.ce-1.el7.centos

4)啟動docker服務

//設置docker開機自啟

systemctl enable docker

//啟動docker服務

systemctl start docker

//重啟docker服務

systemctl restart docker

node-2主機(192.168.152.169)

安裝組件:kubelet kube-proxy docker

1、安裝kubernetes的node-2節點

1)下載二進制源碼包

wget https://storage.googleapis.com/kubernetes-release/release/v1.8.3/kubernetes-node-linux-amd64.tar.gz
注:直接在node-2服務器上執行命令下載即可!

2)解壓源碼包
tar zxf kubernetes-node-linux-amd64.tar.gz

3)遞歸創建kubernetes運行文件存放目錄

mkdir -p /k8s/{bin,cfg}

4)將解壓目錄里的文件移動到新創建的目錄里

mv kubernetes/server/bin/{ kubectl,kubelet,kube-proxy} /k8s/bin/

5)創建連接master apiserver配置文件

vi /k8s/cfg/kubelet.kubeconfig

apiVersion: v1
kind: Config
clusters:

  • cluster:
    server: http://192.168.152.170:8080
    name: local
    contexts:
  • context:
    cluster: local
    name: local
    current-context: local


注:kubeconfig文件用于kubelet連接master apiserver的。

6)創建kubelet配置文件

vi /k8s/cfg/kubelet

#啟用日志標準錯誤
KUBE_LOGTOSTDERR="--logtostderr=true"
#日志級別
KUBE_LOG_LEVEL="--v=4"
#Kubelet服務IP地址
NODE_ADDRESS="--address=192.168.152.169"
#Kubelet服務端口
NODE_PORT="--port=10250"
#自定義節點名稱
NODE_HOSTNAME="--hostname-override=192.168.152.169"
#kubeconfig路徑,指定連接API服務器
KUBELET_KUBECONFIG="--kubeconfig=/k8s/cfg/kubelet.kubeconfig"
#允許容器請求特權模式,默認false
KUBE_ALLOW_PRIV="--allow-privileged=false"
#DNS信息
KUBELET_DNS_IP="--cluster-dns=10.0.100.2"
KUBELET_DNS_DOMAIN="--cluster-domain=cluster.local"
#禁用使用Swap
KUBELET_SWAP="--fail-swap-on=false"

7)創建kubelet服務的systemd啟動文件

vi /lib/systemd/system/kubelet.service

[Unit]
Description=Kubernetes Kubelet
After=docker.service
Requires=docker.service
[Service]
EnvironmentFile=-/k8s/cfg/kubelet
ExecStart=/k8s/bin/kubelet \
${KUBE_LOGTOSTDERR} \
${KUBE_LOG_LEVEL} \
${NODE_ADDRESS} \
${NODE_PORT} \
${NODE_HOSTNAME} \
${KUBELET_KUBECONFIG} \
${KUBE_ALLOW_PRIV} \
${KUBELET_DNS_IP} \
${KUBELET_DNS_DOMAIN} \
${KUBELET_SWAP}
Restart=on-failure
KillMode=process
[Install]
WantedBy=multi-user.target

8)啟動kubelet服務

#重新加載kubelet服務守護進程

systemctl daemon-reload

#設置kubelet服務開機自啟

systemctl enable kubelet

#重新啟動kubelet服務

systemctl restart kubelet

2、配置kube-proxy組件

1)創建kube-proxy配置文件

vi /k8s/cfg/kube-proxy
#啟用日志標準錯誤
KUBE_LOGTOSTDERR="--logtostderr=true"
#日志級別
KUBE_LOG_LEVEL="--v=4"
#自定義節點名稱
NODE_HOSTNAME="--hostname-override=192.168.152.169"
#API服務地址
KUBE_MASTER="--master=http://192.168.152.170:8080"

2)創建kube-proxy服務的systemd服務啟動文件

vi /lib/systemd/system/kube-proxy.service

[Unit]
Description=Kubernetes Proxy
After=network.target
[Service]
EnvironmentFile=/k8s/cfg/kube-proxy
ExecStart=/k8s/bin/kube-proxy \
${KUBE_LOGTOSTDERR} \
${KUBE_LOG_LEVEL} \
${NODE_HOSTNAME} \
${KUBE_MASTER}
Restart=on-failure
[Install]
WantedBy=multi-user.target

3)啟動kube-proxy服務

#重新加載kube-proxy服務守護進程

systemctl daemon-reload

#設置kube-proxy服務開機自啟

systemctl enable kube-proxy

#重啟kube-apiserver服務

systemctl restart kube-proxy

3、安裝docker(docker-ce.x86_64 0:18.03.1.ce-1.el7.centos)

1)安裝docker-ce的yum源

//下載yum源到本地

wget http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

//移動yum源到/etc/yum.repos.d/目錄下

mv docker-ce.repo /etc/yum.repos.d/

2)從高到低排列顯示docker版本

yum list docker-ce --showduplicates | sort -r

注:在正式環境,必須使用統一的穩定版本,而不是總使用最新(這樣各host上的版本可能不一致)

3)安裝docker-ce .x86_64-18.03.1.ce-1.el7.centos

yum -y install docker-ce .x86_64-18.03.1.ce-1.el7.centos

4)啟動docker服務

//設置docker開機自啟

systemctl enable docker

//啟動docker服務

systemctl start docker

//重啟docker服務

systemctl restart docker

驗證群集部署是否成功

1、設置k8s命令的環境變量

echo "export PATH=$PATH:/k8s/bin" >> /etc/profile

注:有幾臺機器就執行幾遍,當前有三臺機器上都執行!

2、讓環境變量立即生效

source /etc/profile

3、在master節點上用命令查看群節點狀態

kubectl get nodes

注:能看到當前你所添加的所有節點,表示群集部署完成!

參考文章:Kubernetes(K8S)集群管理Docker容器(部署篇)

轉載于:https://blog.51cto.com/13043516/2285350

總結

以上是生活随笔為你收集整理的Centos7 Kubernetes1.8+docker容器集群的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。