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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在CENTOS7下安装kubernetes填坑教程(原创)

發布時間:2025/3/20 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在CENTOS7下安装kubernetes填坑教程(原创) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ?

? ?kubernetes(以下簡稱“k8s”)目前是公認的最先進的容器集群管理工具,在1.0版本發布后,k8s的發展速度更加迅猛,并且得到了容器生態圈廠商的全力支持,這包括coreos、rancher等,諸多提供公有云服務的廠商在提供容器服務時也都基于k8s做二次開發來提供基礎設施層的支撐,比如華為??梢哉fk8s也是Docker進軍容器集群管理和服務編排領域最為強勁的競爭對手。

現在的Red Hat centos7的用戶,已經可以使用熟悉的yum來直接安裝k8s,但是真要安裝起來,還是有相當多的坑要踩,本文就主要來幫助大家填平這些大坑!!!

由于k8s涉及到很多組件,關于組件的學習,網上的教程很多,但是還是推薦大家到官網上去學習。http://kubernetes.io/docs/tutorials/


一、環境搭建

在k8s中,主機只有兩種角色master和nodes。我這里準備了3臺centos7主機,其中一臺既是master也是nodes,另外兩臺做nodes。

master安裝的組件有:

  • docker

  • etcd ? ? ? 可以理解為是k8s的數據庫,存儲所有節點、pods、網絡信息

  • kube-proxy ? ?提供service服務的基礎組件

  • kubelet ? ?管理k8s節點的組件,因為這臺master同時也是nodes,所以也要安裝

  • kube-apiserver ? k8s提供API的接口,是整個k8s的核心

  • kube-controller-manager 管理分配資源的組件

  • kube-scheduler ? ?調度資源的組件

  • flanneld ? ? 整個k8s的網絡組件

nodes安裝的組件有:

  • docker

  • kube-proxy

  • kubelet

  • flanneld

接下來就是各節點網絡的搭建,修改/etc/hosts,保證每臺主機的hosts表一致,如下所示:

echo “192.168.128.160 centos-master

192.168.128.161 centos-minion-1

192.168.128.162 centos-minion-2”>> /etc/hosts

最后,記得關閉各節點的SElinux,避免不必要的問題。防火墻也要關閉,避免與docker容器內部的firewall沖突。

[root@centos-master ~]# systemctl stop firewalld
[root@centos-master ~]# systemctl disable firewalld


二、開始安裝

1.首先在所以節點添加k8s組件下載的yum源,如下所示:

cat <<EOF> /etc/yum.repos.d/virt7-docker-common-release.repo <<-'EOF'
[virt7-docker-common-release]
name=virt7-docker-common-release
baseurl=http://cbs.centos.org/repos/virt7-docker-common-release/x86_64/os/
gpgcheck=0
EOF

然后執行yum -y update

2.接下來就開始在各個節點上面安裝k8s組件了。

master:

yum install -y docker etcd ?kube-proxy kubelet ?kube-apiserver ?kube-controller-manage kube-scheduler flanneld

nodes:

yum install -y etcd ?kube-proxy kubelet flanneld

安裝完畢后可以到/etc/kubernetes下面查看對應的配置文件,接下來我們開始配置這些配置文件。此處有個坑,因為我們后面會安裝k8s的ui,但是使用k8s的ui必須使用證書的認證,而使用默認的/etc/kubernetes/apiserver配置文件無法正常的啟用此功能(我試了很多次沒有成功,有成功的可以告知我),這里對于kube-apiserver和kube-controller-manage這兩個組件我才用CLI的方式。

kube-apiserver:

/usr/bin/kube-apiserver --logtostderr=true --v=0 --etcd-servers=http://centos-master:2379 --address=0.0.0.0 --port=8080 --kubelet-port=10250 --allow-privileged=true --service-cluster-ip-range=10.254.0.0/16 --admission-control=ServiceAccount --insecure-bind-address=0.0.0.0 --client-ca-file=/root/security/ca.crt --tls-cert-file=/root/security/server.crt --tls-private-key-file=/root/security/server.key --basic-auth-file=/root/security/basic_auth.csv --secure-port=443 &>> /var/log/kubernetes/kube-apiserver.log &

kube-controller-manage:

/usr/bin/kube-controller-manager --logtostderr=true --v=0 --master=http://centos-master:8080 --root-ca-file=/root/security/ca.crt --service-account-private-key-file=/root/security/server.key & >>/var/log/kubernetes/kube-controller-manage.log &

大家有注意看到我這里在/root/security下指定的私鑰和數字證書,這里我們還沒有生成,所以先不要直接敲入以上的命令,我們先配置其它的配置文件。

etcd:

編輯/etc/etcd/etcd.conf

ETCD_LISTEN_PEER_URLS="http://localhost:2380"

ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"

ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379"

flanneld:

編輯/etc/sysconfig/flanneld

FLANNEL_ETCD_ENDPOINTS="http://centos-master:2379"

FLANNEL_ETCD_PREFIX="/kube-centos/network"(此處是配置flannel網絡的密鑰,同一網絡配置相同即可)

FLANNEL_OPTIONS="--iface=eno16777736"(此處填寫的實際物理網卡的地址,可以用ip a命令查看,我的是eno16777736)
##etcdctl mkdir /kube-centos/network
##etcdctl mk /kube-centos/network/config "{ \"Network\": \"172.30.0.0/16\", \"SubnetLen\": 24, \"Backend\": { \"Type\": \"vxlan\" } }"
注冊flannet網絡到etcd中

kubelet:

編輯/etc/kubernetes/kubelet

KUBELET_ADDRESS="--address=0.0.0.0"

KUBELET_HOSTNAME="--hostname-override=centos-master"

KUBELET_API_SERVER="--api-servers=http://centos-master:8080"

KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-p_w_picpath=registry.access.redhat.com/rhel7/pod-infrastructure:latest"

config:

編輯/etc/kubernetes/config

KUBE_LOGTOSTDERR="--logtostderr=true"

KUBE_ETCD_SERVERS="--etcd-servers=http://centos-master:2379"

KUBE_LOG_LEVEL="--v=0"

KUBE_ALLOW_PRIV="--allow-privileged=false"

KUBE_MASTER="--master=http://centos-master:8080"

根據我們上面提到的master、nodes安裝的組件,在master和nodes上面修改相關的配置文件,config配置文件最好都修改。

接著我們來生成上面提到生成密鑰和數字證書,在master節點創建security目錄

mkdir -p /root/security

cd /root/security

相關證書文件,說明如下:

文件作用
ca.key自己生成的CA的私鑰,用于模擬一個CA
ca.crt用自己的私鑰自簽名的CA證書
server.keyapi server的私鑰,用于配置api server的https
server.csrapi server的證書請求文件,用于請求api server的證書
server.crt用自己模擬的CA簽發的api server的證書,用于配置api server的https

openssl genrsa -out ca.key 2048

openssl req -x509 -new -nodes -key ca.key -subj "/CN=ph_ccnp" -days 10000 -out ca.crt

openssl genrsa -out server.key 2048

echo subjectAltName=IP:10.254.0.1 > extfile.cnf

##10.254.0.1集群網絡下mater地址,可以通過命令查看

##kubectl get services --all-namespaces |grep 'default'|grep 'kubernetes'|grep '443'|awk ##'{print $3}',因為集群還沒有啟動,所以查看不到這個地址,可以先添加個錯的,到時候啟動集群以后再修改

openssl req -new -key server.key -subj "/CN=ph_ccnp" -out server.csr

openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -extfile extfile.cnf -out server.crt -days 10000


3.啟動服務

master節點:

/usr/bin/kube-apiserver --logtostderr=true --v=0 --etcd-servers=http://centos-master:2379 --address=0.0.0.0 --port=8080 --kubelet-port=10250 --allow-privileged=true --service-cluster-ip-range=10.254.0.0/16 --admission-control=ServiceAccount --insecure-bind-address=0.0.0.0 --client-ca-file=/root/security/ca.crt --tls-cert-file=/root/security/server.crt --tls-private-key-file=/root/security/server.key --basic-auth-file=/root/security/basic_auth.csv --secure-port=443 &>> /var/log/kubernetes/kube-apiserver.log &


/usr/bin/kube-controller-manager --logtostderr=true --v=0 --master=http://centos-master:8080 --root-ca-file=/root/security/ca.crt --service-account-private-key-file=/root/security/server.key & >>/var/log/kubernetes/kube-controller-manage.log &


for SERVICES in etcd kube-proxy kube-scheduler flanneld; do

systemctl restart $SERVICES

systemctl enable $SERVICES

systemctl status $SERVICES

done

nodes節點:

for SERVICES in kube-proxy kubelet flanneld docker; do

systemctl restart $SERVICES

systemctl enable $SERVICES

systemctl status $SERVICES

done

等到服務啟動以后,在master上面輸入kubectl get nodes

[root@centos-master kubernetes]# kubectl get nodes
NAME ? ? ? ? ? ? ?STATUS ? ?AGE
centos-master ? ? Ready ? ? 5d
centos-minion-1 ? Ready ? ? 12d
centos-minion-2 ? Ready ? ? 12d

現在整個集群就已經安裝成功了!!


4.安裝dashboard

首先,我們要下載dashboard的鏡像,由于我大中華局域網的存在,導致google官方給的kubernetes-dashboard-amd64:v1.5.0鏡像無法下載(坑爹!!),我們這里先去docker.io站點pull一個v1.4.0版本的鏡像

docker pull docker.io/sailsxu/kubernetes-dashboard-amd64:v1.4.0

然后下載官網給的自動部署文件

curl ?https://rawgit.com/kubernetes/dashboard/master/src/deploy/kubernetes-dashboard.yaml -o kubernetes-dashborad.yaml

此處需修改三處:

1.p_w_picpath: docker.io/sailsxu/kubernetes-dashboard-amd64:v1.4.0

2.p_w_picpathPullPolicy: Always ?把此行取消,否則它總是去register取鏡像

3.# - --apiserver-host=http://my-address:port,修改為- --apiserver-host=http://centos-master:8080

然后我們執行

kubectl create -f kubernetes-dashborad.yaml

kubectl get po --namespace=kube-system

NAME ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?READY STATUS RESTARTS AGE
kubernetes-dashboard-2963774231-uzsul ? ? ? 1/1 ? ?Running 1 ? ? ? ? ? ? ?15h

kubectl --namespace=kube-system get po -o wide

NAME READY ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?STATUS ? ?RESTARTS ? ? ?AGE ? ? ? ? ? ?IP ? ? ? NODE
kubernetes-dashboard-2963774231-uzsul 1/1 Running ?15h 172.30.9.2 centos-minion-2

我們可以看到現在dashboard已經運行在centos-minion-2節點上,我們在瀏覽器地址欄查看

https://192.168.128.160/api/v1/proxy/namespaces/kube-system/services/kubernetes-dashboard/#/workload?namespace=_all

到這里dashboard就已經安裝完畢了。

此教程不涉及k8s的基礎部分,如果有時間,我會再寫一些基礎部分的知識!關于k8s的ui如何使用,我也會在以后的教程中及時更新!!



轉載于:https://blog.51cto.com/phccnp/1890510

總結

以上是生活随笔為你收集整理的在CENTOS7下安装kubernetes填坑教程(原创)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 68日本xxxxxⅹxxx22 | 老司机福利av | 三上悠亚久久精品 | 猛男被粗大男男1069 | 九七人人爽 | 五月天婷婷基地 | 国产午夜精品久久久 | 美女一区二区三区四区 | 国产精选中文字幕 | 欧洲最强rapper网站直播 | 天堂8在线天堂资源bt | 亚洲av无码一区二区二三区 | av电影中文字幕 | 成熟女人毛片www免费版在线 | 一级黄网站| 国产91影院 | 亚洲自拍偷拍区 | 超污网站在线观看 | 自拍偷拍21p | 国产日产久久高清欧美一区 | 欧美极品少妇无套实战 | 青青青在线视频免费观看 | 精品少妇人妻AV无码专区在线 | 色片网站在线观看 | 日本免费观看视频 | 国产激情网站 | 中文字幕第100页 | 亚洲在线观看免费视频 | 一区二区三区福利 | 亚洲一区二区三区在线免费观看 | 亚洲第一狼人区 | 神马久久av| 老司机深夜福利影院 | 九九热精彩视频 | 亚洲成人一区二区三区 | 一级特黄aa大片欧美 | 久久久av一区二区三区 | 美景之屋电影免费高清完整韩剧 | 天码人妻一区二区三区在线看 | 老牛嫩草二区三区观影体验 | 少女情窦初开的第4集在线观看 | 在线观看国产日韩 | 97国产免费 | 手机在线一区二区 | 国产亚洲久一区二区 | 男女高潮网站 | 青青草自拍偷拍 | 能免费看18视频网站 | 色网在线 | 狂野少女电影在线观看国语版免费 | av在线观 | 日韩中文字幕2019 | 美女网站视频在线观看 | 日韩欧美黄色网址 | 五月天免费网站 | 强制憋尿play黄文尿奴 | 欧美日韩一级片在线观看 | 日韩怡红院 | 一区二三区 | 亚洲熟女乱色综合亚洲av | 亚洲av无码国产精品永久一区 | 自拍偷拍福利视频 | 在线看的免费网站 | 色噜噜av| 欧美精品久久久久久久久 | 亚洲欧美一级 | 欧美xxxx83d | 奇米影视第四色首页 | 欧美综合在线观看 | 日韩第二页 | 91破处视频 | 日韩精品免费一区二区夜夜嗨 | 国产麻豆一区二区三区在线观看 | 黄色网一级片 | 潘金莲一级淫片aaaaa武则天 | 国产精品理伦片 | 91精品国产一区二区无码 | 中文字幕一区二区三区久久久 | 日韩一级二级视频 | 午夜精品久久久久久久久 | 天天插天天色 | 精品不卡在线 | 黄色三级小说 | 国产亚洲欧美在线精品 | 日韩一二三级 | 日本成人在线一区 | 色婷婷av一区二区三区大白胸 | 三年在线观看视频 | 欧美老女人xx | 1区2区3区在线观看 久久久久久久久久久影院 成人网址在线观看 | 国产激情自拍视频 | 国产精品69毛片高清亚洲 | 西比尔在线观看完整视频高清 | 大地资源在线观看免费高清版粤语 | 打屁屁日本xxxxx变态 | 深夜福利一区二区三区 | 69亚洲乱人伦 | 青青草免费在线观看视频 | 精品国产一区二区三区av性色 |