kubernetes 部署:kubeadm方式 部署 kubernetes 集群

image.png

準(zhǔn)備工作:所有機(jī)器

關(guān)閉防火墻和SELinux
# systemctl stop firewalld
# systemctl disable firewalld

# setenforce 0
# sed -i 's/enforcing/disabled/' /etc/selinux/config 

更改主機(jī)名稱(chēng)配置解析
# hostnamectl set-hostname k8s-master

[root@k8s-master ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.1.18 k8s-master
192.168.1.22 k8s-node1
192.168.1.25 k8s-node2

關(guān)閉swap
# swapoff -a     #臨時(shí)
# vim /etc/fstab     #注釋保存成洗,永久

將橋接的IPv4流量傳遞到iptables的鏈
# cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

# sysctl --system

一摧茴、所有節(jié)點(diǎn)安裝Docker、kubeadm饲梭、kubelet

Kubernetes默認(rèn)CRI(容器運(yùn)行時(shí))為Docker,因此先安裝Docker焰檩。

1. 安裝Docker(版本一致)

# wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
# yum -y install docker-ce
# docker -v
# systemctl enable docker && systemctl start docker

2. 安裝kubeadm憔涉,kubelet和kubectl

# cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

由于版本更新頻繁,這里指定版本號(hào)部署
# yum install -y kubelet-1.16.0 kubeadm-1.16.0 kubectl-1.16.0
# systemctl enable kubelet

二析苫、部署Kubernetes Master

master 節(jié)點(diǎn)執(zhí)行

[root@k8s-master ~]# vim kubeadminit.sh
[root@k8s-master ~]# cat kubeadminit.sh
kubeadm init \
  --apiserver-advertise-address=192.168.1.18 \     #修改為master的IP
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.16.0 \     #版本號(hào)
  --service-cidr=10.1.0.0/16 \
  --pod-network-cidr=10.244.0.0/16

[root@k8s-master ~]# sh kubeadminit.sh >> join.txt
[root@k8s-master ~]# mkdir -p $HOME/.kube
[root@k8s-master ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@k8s-master ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config

#看到master
[root@k8s-master ~]# kubectl get nodes
NAME         STATUS     ROLES    AGE    VERSION
k8s-master   NotReady   master   116s   v1.16.0

三兜叨、安裝Pod網(wǎng)絡(luò)插件(CNI)

master 節(jié)點(diǎn)執(zhí)行

[root@k8s-master ~]# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

#確保都是running,不是的話等一會(huì)
[root@k8s-master ~]# kubectl get pods -n kube-system
NAME                                 READY   STATUS    RESTARTS   AGE
coredns-58cc8c89f4-gssl8             1/1     Running   0          8m2s
coredns-58cc8c89f4-hvvql             1/1     Running   0          8m2s
etcd-k8s-master                      1/1     Running   0          7m29s
kube-apiserver-k8s-master            1/1     Running   0          7m4s
kube-controller-manager-k8s-master   1/1     Running   0          7m
kube-flannel-ds-amd64-4bjws          1/1     Running   0          96s
kube-proxy-tg2pj                     1/1     Running   0          8m2s
kube-scheduler-k8s-master            1/1     Running   0          7m9s

四藤违、加入Kubernetes Node

[root@k8s-master ~]# tail -n 2 join.txt 
kubeadm join 192.168.1.18:6443 --token l7lmzs.m6qjgl39tcd3hrvw \
    --discovery-token-ca-cert-hash sha256:1d2b02b1979cf61273f676b640411bdd07cbc9e75c76f083b42fe8090f8c9da0 

#向集群添加新節(jié)點(diǎn)浪腐,執(zhí)行在kubeadm init輸出的kubeadm join命令
[root@k8s-node1 ~]# kubeadm join 192.168.1.18:6443 --token l7lmzs.m6qjgl39tcd3hrvw \
>     --discovery-token-ca-cert-hash sha256:1d2b02b1979cf61273f676b640411bdd07cbc9e75c76f083b42fe8090f8c9da0 

[root@k8s-node2 ~]# kubeadm join 192.168.1.18:6443 --token l7lmzs.m6qjgl39tcd3hrvw \
>     --discovery-token-ca-cert-hash sha256:1d2b02b1979cf61273f676b640411bdd07cbc9e75c76f083b42fe8090f8c9da0 

#master查看
[root@k8s-master ~]# kubectl get nodes
NAME         STATUS     ROLES    AGE   VERSION
k8s-master   Ready      master   11m   v1.16.0
k8s-node1    NotReady   <none>   88s   v1.16.0
k8s-node2    NotReady   <none>   50s   v1.16.0

五、測(cè)試kubernetes集群

master 節(jié)點(diǎn)執(zhí)行

[root@k8s-master ~]# kubectl create deployment nginx --image=daocloud.io/library/nginx

[root@k8s-master ~]# kubectl expose deployment nginx --port=80 --type=NodePort

[root@k8s-master ~]# kubectl get pod,svc
NAME                         READY   STATUS    RESTARTS   AGE
pod/nginx-54c66f4bdc-4sp2p   1/1     Running   0          23s

NAME                 TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)        AGE
service/kubernetes   ClusterIP   10.1.0.1     <none>        443/TCP        28m
service/nginx        NodePort    10.1.60.49   <none>        80:31407/TCP   19s

#訪問(wèn)測(cè)試:節(jié)點(diǎn)中任一IP+PORT都可以訪問(wèn)到
[root@k8s-master ~]# curl -I 192.168.1.22:31407
HTTP/1.1 200 OK
Server: nginx/1.17.10
Date: Wed, 06 May 2020 11:00:20 GMT
Content-Type: text/html
Content-Length: 612
Last-Modified: Tue, 14 Apr 2020 14:19:26 GMT
Connection: keep-alive
ETag: "5e95c66e-264"
Accept-Ranges: bytes

六顿乒、部署 Dashboard

master 節(jié)點(diǎn)執(zhí)行

[root@k8s-master ~]# curl https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml >> kubernetes-dashboard-1.10.1.yaml

#鏡像下載因?yàn)榫W(wǎng)絡(luò)的原因難以下載议街,修改以下兩個(gè)地方解決。
[root@k8s-master ~]# vim kubernetes-dashboard-1.10.1.yml
image: tigerfive/kubernetes-dashboard-amd64:v1.10.1     #修改此行

# ------------------- Dashboard Service ------------------- #

kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kube-system
spec:
  type: NodePort     #添加此行
  ports:
    - port: 443
      targetPort: 8443
      nodePort: 30001     #添加此行璧榄,選一個(gè)沒(méi)被占用的端口
  selector:
    k8s-app: kubernetes-dashboard

[root@k8s-master ~]# kubectl apply -f kubernetes-dashboard-1.10.1.yml

1. 瀏覽器輸入 https://192.168.1.18:30001 查看(注意前面要添加 https:// )

image.png

2. 創(chuàng)建service account并綁定默認(rèn)cluster-admin管理員集群角色

[root@k8s-master ~]# kubectl create serviceaccount dashboard-admin -n kube-system

[root@k8s-master ~]# kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin

[root@k8s-master ~]# kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '/dashboard-admin/{print $1}')
Name:         dashboard-admin-token-zh8vq
Namespace:    kube-system
Labels:       <none>
Annotations:  kubernetes.io/service-account.name: dashboard-admin
              kubernetes.io/service-account.uid: 801ce091-0447-4259-8c4e-ad3baf59eac0

Type:  kubernetes.io/service-account-token

Data
====
ca.crt:     1025 bytes
namespace:  11 bytes
token:      eyJhbGciOiJSUzI1NiIsImtpZCI6Ikh0ZVJhcV8xaF9nR0hkQmtyd0hZWmp4Z3hhSHJzbjdUQU5ERmVTbWljWVUifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4temg4dnEiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiODAxY2UwOTEtMDQ0Ny00MjU5LThjNGUtYWQzYmFmNTllYWMwIiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRhc2hib2FyZC1hZG1pbiJ9.Mo2UhbKLbh4TOzfx1nOB3i_IcSItcFH77IJCJ59HsDSaJHe-jGQvkBGixp9HQONO5gh3-d-P-HvMQpGn9NHRmGd3tRQ2x01bzFqwnB3NKDK6VE-ahFv8OVEpDyNMJ40HFQZSCWdswrnwAuFZb0XTWGCHfJx0dALHozcpfw205hxUSPvqYHUu_-b5m1uOdoPGuqpBL65_nWBiWLQVdrWj0O9s-EhdUfmKB-Pt8pCFbYEf0j5tY4I-Ljc0ki7KwI_JjsilpcRg7POESbDQ2KPgS9ZG2y7-29w_wbvd1IS8iozj-RfIeEU57iW4wZ6kaFu-1K1nhsj_10mvDmG6j34byA

3. 復(fù)制token值選擇令牌登陸

image.png
image.png

七特漩、也可以部署Kuboard

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市骨杂,隨后出現(xiàn)的幾起案子涂身,更是在濱河造成了極大的恐慌,老刑警劉巖搓蚪,帶你破解...
    沈念sama閱讀 222,681評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蛤售,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)悴能,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)揣钦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人漠酿,你說(shuō)我怎么就攤上這事冯凹。” “怎么了炒嘲?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,421評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵宇姚,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我夫凸,道長(zhǎng)浑劳,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,114評(píng)論 1 300
  • 正文 為了忘掉前任夭拌,我火速辦了婚禮呀洲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘啼止。我一直安慰自己,他們只是感情好兵罢,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布献烦。 她就那樣靜靜地躺著,像睡著了一般卖词。 火紅的嫁衣襯著肌膚如雪巩那。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,713評(píng)論 1 312
  • 那天此蜈,我揣著相機(jī)與錄音即横,去河邊找鬼。 笑死裆赵,一個(gè)胖子當(dāng)著我的面吹牛东囚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播战授,決...
    沈念sama閱讀 41,170評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼页藻,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了植兰?” 一聲冷哼從身側(cè)響起份帐,我...
    開(kāi)封第一講書(shū)人閱讀 40,116評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎楣导,沒(méi)想到半個(gè)月后废境,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,651評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評(píng)論 3 342
  • 正文 我和宋清朗相戀三年噩凹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了巴元。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,865評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡栓始,死狀恐怖务冕,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情幻赚,我是刑警寧澤禀忆,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站落恼,受9級(jí)特大地震影響箩退,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜佳谦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評(píng)論 3 336
  • 文/蒙蒙 一戴涝、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧钻蔑,春花似錦啥刻、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,699評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至窗怒,卻和暖如春映跟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背扬虚。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,814評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工努隙, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人辜昵。 一個(gè)月前我還...
    沈念sama閱讀 49,299評(píng)論 3 379
  • 正文 我出身青樓荸镊,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親路鹰。 傳聞我的和親對(duì)象是個(gè)殘疾皇子贷洲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評(píng)論 2 361