Centos7.4 下Kubernetes 1.1.0集群安裝部署

操作系統

#服務器1
[root@VM_0_12_centos ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
#服務器2
[root@VM_0_3_centos ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)

服務器1作為Master葫哗,其IP為193.112.177.239
服務器2作為Node1 ,其IP為123.207.26.143

部署前的準備工作

docker-ce的安裝


# step 1: 安裝必要的一些系統工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加軟件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安裝 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 開啟Docker服務
sudo service docker start
# Step 5: 查看安裝的docker-ce的版本
docker version
#配置阿里云的鏡像源
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
#通過登陸https://cr.console.aliyun.com钳宪,獲取屬于自己的鏡像源的地址。?
{
  "registry-mirrors": ["https://xxxx.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

etcd的安裝

ETCD是用于共享配置和服務發(fā)現的分布式、一致性的KV存儲系統褪迟,主要包括了增刪改查食磕、安全認證谣光、集群、選舉芬为、事務萄金、分布式鎖蟀悦、Watch機制等等,實現了RAFT協議氧敢,功能相當強大

有兩臺云主機
# step 1: 將2臺主機的信息添加到三臺主機的hosts文件中日戈,編輯/etc/hosts寫入信息如下
123.207.26.143 node1
193.112.177.239 etcd2
# step 2:為每一臺主機安裝etcd
yum install etcd -y
# step 3:配置每一臺主機的集群信息,編輯/etc/etcd/etcd.conf
#node1節(jié)點
# [member]
# 節(jié)點名稱
ETCD_NAME=node1
# 數據存放位置
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
# 監(jiān)聽其他 Etcd 實例的地址
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
# 監(jiān)聽客戶端地址
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001"
#[cluster]
# 通知其他 Etcd 實例地址
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://node1:2380"
# 初始化集群內節(jié)點地址
ETCD_INITIAL_CLUSTER="node1=http://node1:2380,etcd2=http://etcd2:2380"
# 初始化集群狀態(tài)孙乖,new 表示新建
ETCD_INITIAL_CLUSTER_STATE="new"
# 初始化集群 token
ETCD_INITIAL_CLUSTER_TOKEN="mritd-etcd-cluster"
# 通知 客戶端地址
ETCD_ADVERTISE_CLIENT_URLS="http://node1:2379,http://node1:4001"

#[cluster]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://etcd2:2380"
ETCD_INITIAL_CLUSTER="node1=http://node1:2380,etcd2=http://etcd2:2380"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="mritd-etcd-cluster"
ETCD_ADVERTISE_CLIENT_URLS="http://etcd2:2379,http://etcd2:4001"

flannel的安裝

#為每一臺主機安裝flannel浙炼,作為docker之間通信的組件
curl -L https://github.com/coreos/flannel/releases/download/v0.7.0/flannel-v0.7.0-linux-amd64.tar.gz -o flannel.tar.gz
mkdir -p /opt/flannel
tar xzf flannel.tar.gz -C /opt/flannel

安裝k8s

在Master安轉k8s server

API SERVER是整個k8s集群的注冊中心、交通樞紐唯袄、安全控制入口弯屈。

#step 1:下載k8s-server
wget https://dl.k8s.io/v1.10.0/kubernetes-server-linux-amd64.tar.gz
#step 2:解壓
tar xvf kubernetes-server-linux-amd64.tar.gz
#step 3:拷貝kube-apiserver到/usr/local/bin/目錄下
cp  ./kubernetes/server/bin/kube-apiserver /usr/local/bin/
#step 4:在/usr/lib/systemd/system/目錄下創(chuàng)建kube-apiserver.service,編輯內容如下
[Unit]
Description=Kube API  Server
After=etcd.service
Wants=etcd.service
 
[Service]
Type=notify
EnvironmentFile=/etc/kubernetes/apiserver
ExecStart=/usr/local/bin/kube-apiserver $KUBE_API_ARGS
Restart=on-failure
LimitNOFILE=65536
 
[Install]
WantedBy=multi-user.target
#step 5:在/etc/kubernetes/目錄下創(chuàng)建apiserver配置文件恋拷,編輯內容如下
KUBE_API_ARGS="--etcd-servers=http://127.0.0.1:2379 --insecure-bind-address=0.0.0.0 --insecure-port=8080 --service-cluster-ip-range=170.170.0.0/16 --service-node-port-range=1-65535 --admission-control=NamespaceLifecycle,LimitRanger,ResourceQuota --logtostderr=false --log-dir=/home/chen/log/kubenetes --v=2"
#step 6:運行kube-apiserver
sudo systemctl daemon-reload
sudo systemctl enable kube-apiserver.service
sudo systemctl start kube-apiserver.service
#step 7:查看是否安裝成功
curl http://localhost:8080/api/

在Master安裝kube-controller-manager

Kube Controller Manager作為集群內部的管理控制中心,負責集群內的Node资厉、Pod副本、服務端點(Endpoint)蔬顾、命名空間(Namespace)宴偿、服務賬號(ServiceAccount)、資源定額(ResourceQuota)的管理诀豁,當某個Node意外宕機時窄刘,Kube Controller Manager會及時發(fā)現并執(zhí)行自動化修復流程,確保集群始終處于預期的工作狀態(tài)舷胜。

#step 1:拷貝kube-controller-manager到/usr/local/bin/
cp  ./kubernetes/server/bin/kube-controller-manager /usr/local/bin/
#step 2:在/usr/lib/systemd/system/目錄下創(chuàng)建kube-controller-manager.service編輯內容如下
[Unit]
Description=Kube Controller Manager
After=kube-apiserver.service
Requires=kube-apiserver.service
 
[Service]
EnvironmentFile=/etc/kubernetes/controller-manager
ExecStart=/usr/local/bin/kube-controller-manager $KUBE_CONTROLLER_MANAGER_ARGS
Restart=on-failure
LimitNOFILE=65536
 
[Install]
WantedBy=multi-user.target

#step 3:在/etc/kubernetes/目錄下創(chuàng)建controller-manager配置文件編輯如下
KUBE_CONTROLLER_MANAGER_ARGS="--master=http://127.0.0.1:8080 --logtostderr=false --log-dir=/home/chen/log/kubernetes --v=2"
#step 4:啟動kube-controller-manager
sudo systemctl daemon-reload
sudo systemctl enable kube-controller-manager.service
sudo systemctl start kube-controller-manager.service

在Master安裝kube-scheduler

Kube Scheduler是負責調度Pod到具體的Node娩践,它通過API Server提供的接口監(jiān)聽Pods,獲取待調度pod烹骨,然后根據一系列的預選策略和優(yōu)選策略給各個Node節(jié)點打分排序欺矫,然后將Pod調度到得分最高的Node節(jié)點上。

#step 1:拷貝kube-scheduler到/usr/local/bin/
cp  ./kubernetes/server/bin/kube-scheduler  /usr/local/bin/
#step 2:在/usr/lib/systemd/system/目錄下創(chuàng)建kube-scheduler.service編輯內容如下
[Unit]
Description=Kube Scheduler
After=kube-apiserver.service
Requires=kube-apiserver.service
 
[Service]
EnvironmentFile=/etc/kubernetes/scheduler
ExecStart=/usr/local/bin/kube-scheduler $KUBE_SCHEDULER_ARGS
Restart=on-failure
LimitNOFILE=65536
 
[Install]
WantedBy=multi-user.target

#step 3:在/etc/kubernetes/目錄下創(chuàng)建scheduler配置文件編輯如下
sudo systemctl daemon-reload
sudo systemctl enable kube-scheduler.service
sudo systemctl restart kube-scheduler.service

在Node安轉kubernetes-node

此處是所有node節(jié)點都需要進行的安裝操作

在k8s集群中展氓,每個Node節(jié)點都會啟動kubelet進程穆趴,用來處理Master節(jié)點下發(fā)到本節(jié)點的任務,管理Pod和pod中的容器遇汞。kubelet會在API Server上注冊節(jié)點信息未妹,定期向Master匯報節(jié)點資源使用情況。

#step 1:下載k8s-node
wget https://dl.k8s.io/v1.10.0/kubernetes-node-linux-amd64.tar.gz
tar xvf kubernetes-node-linux-amd64.tar.gz
#step 2:拷貝kubelet到/usr/local/bin/
cp  ./kubernetes/node/bin/kubelet  /usr/local/bin/
 #step 3:在/usr/lib/systemd/system/目錄下創(chuàng)建kubelet.service編輯內容如下
[Unit]
Description=Kube Kubelet Server
After=docker.service
Requires=docker.service
 
[Service]
ExecStart=/usr/local/bin/kubelet --kubeconfig=/etc/kubernetes/kubelet.yaml --fail-swap-on=false --runtime-cgroups=/systemd/system.slice --kubelet-cgroups=/systemd/system.slice
Restart=on-failure
LimitNOFILE=65536
 
[Install]
WantedBy=multi-user.target

#step 4: 目錄下創(chuàng)建配置文件空入,包括kubelet和kubelet.yaml络它。kubelet.yaml內容如下
apiVersion: v1
kind: Config
clusters:
-  name: local
-  cluster:
      server: http://193.112.177.239:8080
users:
-  name: kubelet
contexts:
-  context:
     cluster: local
     user: kubelet
-   name: kubelet-context
current-context: kubelet-context
#step 5:啟動kubelet
sudo systemctl daemon-reload
sudo systemctl enable kubelet.service
sudo systemctl start kubelet.service
#step 6:查看是否啟動成功
sudo systemctl status kubelet.service

在node中安裝配置kube-proxy

kube-proxy是管理service的訪問入口,包括集群內Pod到Service的訪問和集群外訪問service歪赢。關于service和pod的概念可以自行網上查看化戳。

#step 2:拷貝kube-proxy到/usr/local/bin/
cp  ./kubernetes/node/bin/kube-proxy  /usr/local/bin/
 #step 3:在/usr/lib/systemd/system/目錄下創(chuàng)建kube-proxy.service編輯內容如下
[Unit]
Description=Kube Kubelet Server
After=docker.service
Requires=docker.service
 
[Service]
ExecStart=/usr/local/bin/kubelet --kubeconfig=/etc/kubernetes/kubelet.yaml --fail-swap-on=false --runtime-cgroups=/systemd/system.slice --kubelet-cgroups=/systemd/system.slice
Restart=on-failure
LimitNOFILE=65536
 
[Install]
WantedBy=multi-user.target

#step 4:在/etc/kubernetes/目錄下創(chuàng)建proxy配置文件內容如下
KUBE_PROXY_ARGS="--master=http://193.112.177.239:8080 --logtostderr=false --log-dir=/home/chen/log/kubernetes --v=2"
#step 5:啟動proxy
sudo systemctl daemon-reload
sudo systemctl enable kube-proxy.service
sudo systemctl start kube-proxy.service

(此處需注意主機的名字不能有_否則不能創(chuàng)建節(jié)點,修改主機名可以參考https://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_043_hostname.html)

如在node上連接不上apiserver可運行以下命令其中apiserverIP為IP

kebuctl -s http://apiserverIP:8080 version

參考

https://www.cnblogs.com/zhenyuyaodidiao/p/6237019.html
https://blog.csdn.net/weixin_39686421/article/details/80333015

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末右犹,一起剝皮案震驚了整個濱河市私爷,隨后出現的幾起案子,更是在濱河造成了極大的恐慌禀综,老刑警劉巖掠廓,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件换怖,死亡現場離奇詭異,居然都是意外死亡蟀瞧,警方通過查閱死者的電腦和手機沉颂,發(fā)現死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來悦污,“玉大人铸屉,你說我怎么就攤上這事∏卸耍” “怎么了彻坛?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長帆赢。 經常有香客問我,道長线梗,這世上最難降的妖魔是什么椰于? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮仪搔,結果婚禮上瘾婿,老公的妹妹穿的比我還像新娘。我一直安慰自己烤咧,他們只是感情好偏陪,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著煮嫌,像睡著了一般笛谦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上昌阿,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天饥脑,我揣著相機與錄音,去河邊找鬼懦冰。 笑死灶轰,一個胖子當著我的面吹牛,可吹牛的內容都是我干的刷钢。 我是一名探鬼主播笋颤,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼内地!你這毒婦竟也來了伴澄?” 一聲冷哼從身側響起赋除,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎秉版,沒想到半個月后贤重,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡清焕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年并蝗,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片秸妥。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡滚停,死狀恐怖,靈堂內的尸體忽然破棺而出粥惧,到底是詐尸還是另有隱情键畴,我是刑警寧澤,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布突雪,位于F島的核電站起惕,受9級特大地震影響,放射性物質發(fā)生泄漏咏删。R本人自食惡果不足惜惹想,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望督函。 院中可真熱鬧嘀粱,春花似錦、人聲如沸辰狡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宛篇。三九已至娃磺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間叫倍,已是汗流浹背豌鸡。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留段标,地道東北人涯冠。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像逼庞,于是被迫代替她去往敵國和親蛇更。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內容

  • 一、組件版本和配置策略 1派任、組件版本 Kubernetes 1.10.4Docker 18.03.1-ceEtcd...
    Horne閱讀 3,583評論 1 50
  • 安裝k8s Master高可用集群 主機 角色 組件 172.18.6.101 K8S Master Kubele...
    jony456123閱讀 8,053評論 0 9
  • 你,還是當初的那個你嗎豆混?你篓像,變了嗎?我喜歡的是當初的那個會為了朋友義無反顧去違反校規(guī)的那個男孩皿伺,可你現在還是...
    酸菜妹閱讀 206評論 0 0
  • 補16.11.12日: 看了無錫馬拉松的宣傳視頻员辩,時間大體是在明年3月25日,人生總要去跑一次馬拉松的沖動終于還是...
    梁余音閱讀 303評論 0 0
  • (注:歌詞第一句是借鑒于一首詩-烏衣巷) 作詞:周心云 舊時人隱烏衣巷 吳道弄堂王謝家 風華翩翩少兒郎 女兒難掩桃...
    周周周心云閱讀 853評論 0 0