kubeadm 方式搭建k8s笔记
環(huán)境準(zhǔn)備
四臺Centos7虛擬機: 10.15.5.230 ks-master 10.15.5.231 k8s-node1 10.15.5.232 k8s-node2 10.15.5.233 k8s-node3基礎(chǔ)設(shè)置
修改主機名以及hosts文件(全部主機)
hostnamectl set-hostname myhostname(分別修改主機的主機名) # 修改hosts文件 cat <<EOF > /etc/sysctl.d/k8s.conf 10.15.5.230 k8s-master 10.15.5.231 k8s-node1 10.15.5.232 k8s-node2 10.15.5.233 k8s-node3 EOF關(guān)閉防火墻(測試環(huán)境省事)
systemctl stop firewalld systemctl disable firewalld關(guān)閉selinux
vim /etc/selinux/config SELINUX=disable關(guān)閉交換分區(qū)
## 將/etc/fstab中swap的設(shè)置注釋掉 vim /etc/fstab #/dev/mapper/centos-swap swap swap defaults 0 0PS:這些全部配置完成之后重啟一下服務(wù)器:reboot
安裝docker
yum install -y yum-utils device-mapper-persistent-data lvm2 um-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install docker-ce啟動docker
systemctl start docker systemctl enable docker docker version
PS:在安裝完成之后只有啟動了才會顯示server以及client,不啟動只有client。這兩個都顯示則說明docker已經(jīng)安裝完成并且正常啟動了。
配置docker的鏡像加速
首先,你需要一個阿里云的帳號,沒有的自己去注冊~
登錄阿里云控制臺,可以直接在搜索欄搜docker鏡像加速,然后進(jìn)入docker鏡像加速控制臺
以下為我的加速器代碼塊
安裝kubernetes
配置國內(nèi)源
由于國內(nèi)網(wǎng)絡(luò)原因, 官方文檔中的地址不可用, 這邊換成阿里的源
vim /etc/yum.repos.d/k8s.repo name=Kubernetes baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg exclude=kube*安裝&啟動
yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes systemctl enable kubelet systemctl start kubelet修改網(wǎng)絡(luò)設(shè)置
vim /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 sysctl --system
PS:以上配置需要在node節(jié)點也執(zhí)行
初始化Master節(jié)點
kubeadm config print init-defaults > kubeadm-init.yaml修改所生成文件
以下為修改內(nèi)容:
[root@k8s-master ~]# cat kubeadm-init.yaml |egrep "advertiseAddress|imageRepository"advertiseAddress: 10.15.5.230 //修改為本機地址,也就是你master的地址 imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers修改完成后文件內(nèi)容如下
[root@k8s-master ~]# cat kubeadm-init.yaml apiVersion: kubeadm.k8s.io/v1beta2 bootstrapTokens: - groups:- system:bootstrappers:kubeadm:default-node-tokentoken: abcdef.0123456789abcdefttl: 24h0m0susages:- signing- authentication kind: InitConfiguration localAPIEndpoint:advertiseAddress: 10.15.5.230bindPort: 6443 nodeRegistration:criSocket: /var/run/dockershim.sockname: k8s-mastertaints:- effect: NoSchedulekey: node-role.kubernetes.io/master --- apiServer:timeoutForControlPlane: 4m0s apiVersion: kubeadm.k8s.io/v1beta2 certificatesDir: /etc/kubernetes/pki clusterName: kubernetes controllerManager: {} dns:type: CoreDNS etcd:local:dataDir: /var/lib/etcd imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers kind: ClusterConfiguration kubernetesVersion: v1.19.0 networking:dnsDomain: cluster.localserviceSubnet: 10.96.0.0/12 scheduler: {}下載鏡像
kubeadm config images pull --config kubeadm-init.yaml開始初始化
kubeadm init --config kubeadm-init.yaml完成后會輸出以下內(nèi)容:
此處最后兩行記得保存一下,為node節(jié)點加入集群命令:
配置環(huán)境變量
mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config使當(dāng)前用戶可以執(zhí)行kubectl命令。
配置網(wǎng)絡(luò)
wget https://docs.projectcalico.org/v3.8/manifests/calico.yaml cat kubeadm-init.yaml | grep serviceSubnet:初始化網(wǎng)絡(luò)
kubectl apply -f calico.yaml查看node信息
kubectl get node安裝Dashboard
下載&部署
wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta4/aio/deploy/recommended.yaml kubectl apply -f recommended.yaml查看pods狀態(tài)
kubectl get pods --all-namespaces創(chuàng)建登錄用戶
[root@k8s-master ~]# cat dashboard-adminuser.yaml apiVersion: v1 kind: ServiceAccount metadata:name: admin-usernamespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata:name: admin-user roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: cluster-admin subjects: - kind: ServiceAccountname: admin-usernamespace: kube-system kubectl apply -f dashboard-adminuser.yaml生成證書
grep 'client-certificate-data' ~/.kube/config | head -n 1 | awk '{print $2}' | base64 -d >> kubecfg.crt grep 'client-key-data' ~/.kube/config | head -n 1 | awk '{print $2}' | base64 -d >> kubecfg.key openssl pkcs12 -export -clcerts -inkey kubecfg.key -in kubecfg.crt -out kubecfg.p12 -name "kubernetes-client"PS:最后一條命令過程中輸入密碼處直接回車就好。
kubecfg.p12是證書文件,需要在瀏覽器導(dǎo)入,不然在輸入master ip+端口后會有如下報錯
解決方法就是將上面生成的證書文件導(dǎo)入瀏覽器,我用的是谷歌瀏覽器。
瀏覽器右上角,找到設(shè)置
Privacy and security 中 Security
進(jìn)去之后往下滑,找到Manage certificates
在 Your certficates 中點擊Import按鈕,導(dǎo)入上面生成的證書文件
導(dǎo)入成功后下面會有:org-system:masters
登錄
https://10.15.5.230:6443/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login
這邊選擇token登錄
查看token:
登錄成功:
添加node節(jié)點
準(zhǔn)備工作在三臺node上完成,這里就不再寫了,和上面一樣
將node加入集群
kubeadm join 10.15.5.230:6443 --token abcdef.0123456789abcdef \--discovery-token-ca-cert-hash sha256:d088818dfbcd88a133a2daedd29e923601d66f2a1f7d6c1b8d1d4d1785a079d4PS:該命令為初始化完成后讓保留的那兩行,忘記了的可以去上面看看。
命令行查看節(jié)點狀態(tài)
kubectl get nodesDashboard 查看節(jié)點狀態(tài)
kubeadm方式搭建就到這里了,后面二進(jìn)制安裝等我學(xué)會再更新~
總結(jié)
以上是生活随笔為你收集整理的kubeadm 方式搭建k8s笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 语句摘抄——第1周
- 下一篇: 中国好生意 经典论述:哈林是来主持的,刘