kubeadm快速搭建k8s集群

前言
小菜鳥一枚,記錄學習k8s的路程,如有錯漏,純屬虛構(gòu)~~
1.環(huán)境準備

創(chuàng)新互聯(lián)公司長期為近千家客戶提供的網(wǎng)站建設(shè)服務(wù),團隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為青白江企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、成都網(wǎng)站建設(shè),青白江網(wǎng)站改版等技術(shù)服務(wù)。擁有十余年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

我的配置都是按最低要求準備的:

主機配置ip
k8s-master-01 2C 2G 192.168.214.220
k8s-node-01 2C 2G 192.168.214.230
k8s-node-02 2C 2G 192.168.214.240

1)先關(guān)閉機器的自帶防火墻服務(wù),centos6是iptables,centos7是firewalld,再關(guān)閉selinux(百度一下,你就得到)
$ systemctl stop firewalld
2)關(guān)閉服務(wù)器的swap分區(qū)(主要是為了提高性能,可百度了解一下)

$ vim /etc/fstab
kubeadm快速搭建k8s集群
3)服務(wù)器可通外網(wǎng),需要拉取鏡像
4)集群各節(jié)點配置相互通信
步驟:
①在各節(jié)點執(zhí)行ssh-keygen,一路回車帶閃電
②ssh-copy-id 節(jié)點ip,如我在master節(jié)點上,執(zhí)行ssh-copy-id root@192.168.214.230,跟著提示完成即可
5)將所有節(jié)點信息加入到所有節(jié)點的hosts文件,方便后面的操作進行解析

$ vim /etc/hosts
kubeadm快速搭建k8s集群
6)將橋接的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

2.部署
2.1 步驟總覽:
①在所有節(jié)點上安裝Docker和kubeadm
②部署Kubernetes Master
③部署容器網(wǎng)絡(luò)插件
④部署Kubernetes Node,將節(jié)點加入Kubernetes集群中
⑤部署Dashboard Web頁面,可視化查看Kubernetes資源
2.2 kubernetes架構(gòu)圖
kubeadm快速搭建k8s集群
2.3 所有節(jié)點安裝Docker/kubeadm/kubelet
2.3.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-版本號 
$ systemctl enable docker && systemctl start docker
Docker加速:
$ curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
$ docker --version 查看版本

2.3.2 添加阿里云的kubernetes的yum源

$ 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=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

2.3.3 安裝kubeadm,kubelet和kubectl

$ yum install kubelet kubeadm kubectl -y 
$ systemctl enable kubelet

2.4 部署master節(jié)點

$ kubeadm init   --apiserver-advertise-address=192.168.214.220   \
>   --image-repository registry.aliyuncs.com/google_containers  \
>   --kubernetes-version v1.16.3  \
>   --service-cidr=10.1.0.0/16  \
>   --pod-network-cidr=10.244.0.0/16  ()

記住輸出的token和discovery-token-ca-cert-hash秘鑰

執(zhí)行完后按照最后幾行的執(zhí)行運行命令:

$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
$ kubectl get nodes

2.5 安裝pod網(wǎng)絡(luò)插件(cni)
$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
部署時要確保能夠訪問到quay.io這個鏡像倉庫地址
2.6 配置node節(jié)點
$ kubeadm join --token akjlre.8z441kdvooaxki5y 192.168.214.220:6443 --discovery-token-ca-cert-hash sha256:cc61a8822ad4c4da71aae1a57ca891fda8a42c5dde59dc4a00165999eb5cdb14
token 和discovery-token-ca-cert-hash是kubeadm init時輸出,往上找去
如果提示token過期,可自行生成:

#生成token
$ kubeadm token create 
#生成discovery-token-ca-cert-hash
$ openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'  

2.7 測試kubernetes集群
在Kubernetes集群中創(chuàng)建一個pod,驗證是否正常運行:

$ kubectl create deployment nginx --image=nginx
$ kubectl expose deployment nginx --port=80 --type=NodePort
$ kubectl get pod,svc

執(zhí)行 kubectl get cs的時候,返回結(jié)果是:
kubeadm快速搭建k8s集群
因為我安裝的kubectl幾個組件是1.16.3的版本,這是1.16版本的bug,不用管他,往下走
2.8 部署Dashboard

$ wget -c https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta4/aio/deploy/recommended.yaml
$ vim recommended.yaml添加:

kubeadm快速搭建k8s集群

$ kubectl apply -f recommended.yaml
$ kubectl get pods -n kubernetes-dashboard

kubeadm快速搭建k8s集群
此時就可以訪問http://NodeIP:3001

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

$ kubectl create serviceaccount dashboard-admin -n kubernetes-dashboard
$  kubectl create clusterrolebinding dashdoard-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard-admin
$  kubectl describe secrets -n kubernetes-dashboard $(kubectl -n kubernetes-dashboard get secret | awk '/dashboard-admin/{print $1}')

kubeadm快速搭建k8s集群
登陸后顯示界面:
kubeadm快速搭建k8s集群
到這兒,就搞定啦,see you~~

文章題目:kubeadm快速搭建k8s集群
網(wǎng)站網(wǎng)址:http://muchs.cn/article32/gesepc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、關(guān)鍵詞優(yōu)化、全網(wǎng)營銷推廣、用戶體驗、網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司