k8s集群部署過程
集群結(jié)構(gòu)
角色 | IP |
---|---|
master | 192.168.35.135 |
node1 | 192.168.35.136 |
node2 | 192.168.35.137 |
部署
#需在三臺(tái)主機(jī)上操作 //關(guān)閉防火墻 [root@master ~]# systemctl disable --now firewalld //關(guān)閉selinux [root@master ~]# sed -i 's/enforcing/disabled/' /etc/selinux/config //關(guān)閉swap分區(qū) [root@master ~]# vim /etc/fstab 注釋掉swap分區(qū)就行 //設(shè)置主機(jī)名 [root@master ~]# hostnamectl set-hostname master.example.com //添加host [root@master ~]# cat >> /etc/hosts << EOF 192.168.35.135 master master.example.com 192.168.35.136 node1 node1.example.com 192.168.35.137 node2 node2.example.com EOF //將橋接的IPv4流量傳遞到iptables的鏈 [root@master ~]# cat > /etc/sysctl.d/k8s.conf << EOF net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF [root@master ~]# sysctl --system #生效 //時(shí)間同步 [root@master ~]# yum -y install chrony [root@master ~]# systemctl enable --now chronyd //免密認(rèn)證 [root@master ~]# ssh-keygen -t rsa [root@master ~]# ssh-copy-id master [root@master ~]# ssh-copy-id node1 [root@master ~]# ssh-copy-id node2 // 重啟主機(jī),使上面的一些配置生效 [root@master ~]# reboot
在所有節(jié)點(diǎn)安裝 Docker/kubeadm/kubelet
Kubernetes默認(rèn)CRI(容器運(yùn)?時(shí))為Docker,因此先安裝Docker。
安裝Docker
[root@master ~]# cat > /etc/yum.repos.d/docker-ce.repo << EOF [Docker-ce] name=Docker-ce baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/8/x86_64/stable/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg EOF [root@master ~]# yum -y install docker-ce [root@master ~]# systemctl enable --now docker [root@master ~]# cat > /etc/docker/daemon.json << EOF { "registry-mirrors": ["https://kmny1apu.mirror.aliyuncs.com"], "exec-opts": ["native.cgroupdriver=systemd"], "log-driver": "json-file", "log-opts": { "max-size": "100m" }, "storage-driver": "overlay2" } EOF
添加kubernetes阿?云YUM軟件源
[root@master ~]# 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
安裝kubeadm,kubelet和kubectl
由于版本更新頻繁,這?指定版本號(hào)部署:
[root@master ~]# yum install -y kubelet-1.20.0 kubeadm-1.20.0 kubectl-1.20.0 [root@master ~]# systemctl enable kubelet
部署Kubernetes
在master執(zhí)行
[root@master ~]# kubeadm init \ --apiserver-advertise-address=192.168.35.135 \ --image-repository registry.aliyuncs.com/google_containers \ --kubernetes-version v1.20.0 \ --service-cidr=10.96.0.0/12 \ --pod-network-cidr=10.244.0.0/16 // 記錄下面的這些東西,后面會(huì)用到 kubeadm join 192.168.35.135:6443 --token mwi5m0.3kbhf6mxg703sagu \ --discovery-token-ca-cert-hash sha256:d0dc18109262c5592f79cb200d8bb12da523fc75df6fa7bd59be
由于默認(rèn)拉取鏡像地址k8s.gcr.io國(guó)內(nèi)?法訪問,這?指定阿?云鏡像倉庫地址。
使?kubectl?具:
[root@master ~]# mkdir -p $HOME/.kube root@master ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config [root@master ~]# chown $(id -u):$(id -g) $HOME/.kube/config [root@master ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION master.example.com NotReady control-plane,master 4m49s v1.20.0
安裝Pod網(wǎng)絡(luò)插件
[root@master ~]# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
確保能夠訪問到quay.io這個(gè)registery。
加?Kubernetes Node
在192.168.35.136、192.168.35.137上(Node)執(zhí)?。
向集群添加新節(jié)點(diǎn),執(zhí)?在kubeadm init輸出的kubeadm join命令
kubeadm join 192.168.35.135:6443 --token mwi5m0.3kbhf6mxg703sagu \ --discovery-token-ca-cert-hash sha256:d0dc18109262c5592f79cb200d8bb12da523fc75df6fa7bd59be
測(cè)試kubernetes集群
[root@master ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION master.example.com Ready control-plane,master 17m v1.20.0 node1.example.com Ready <none> 89s v1.20.0 node2.example.com Ready <none> 82s v1.20.0 在Kubernetes集群中創(chuàng)建?個(gè)pod,驗(yàn)證是否正常運(yùn)? [root@master ~]# kubectl create deployment nginx --image=nginx deployment.apps/nginx created [root@master ~]# kubectl expose deployment nginx --port=80 --type=NodePort service/nginx exposed [root@master ~]# kubectl get pod,svc NAME READY STATUS RESTARTS AGE pod/nginx-6799fc88d8-hbj7q 0/1 ContainerCreating 0 14s NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 19m service/nginx NodePort 10.98.72.65 <none> 80:31040/TCP 5s
到此這篇關(guān)于k8s集群部署的文章就介紹到這了,更多相關(guān)k8s集群部署內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 基于Docker的K8s(Kubernetes)集群部署方案
- k8s部署redis集群實(shí)現(xiàn)過程實(shí)例詳解
- k8s集群部署時(shí)etcd容器不停重啟問題以及處理詳解
- 部署k8s集群的超詳細(xì)實(shí)踐步驟
- Ansible部署K8s集群的方法
- Kubernetes(K8S)容器集群管理環(huán)境完整部署詳細(xì)教程-中篇
- Kubernetes(K8S)容器集群管理環(huán)境完整部署詳細(xì)教程-上篇
- centos7系統(tǒng)部署k8s集群詳細(xì)介紹
- k8s部署redis cluster集群的實(shí)現(xiàn)
- 在K8s上部署Redis集群的方法步驟
- Docker+K8S 集群環(huán)境搭建及分布式應(yīng)用部署
相關(guān)文章
kubernetes(k8s)安裝metrics-server實(shí)現(xiàn)資源使用情況監(jiān)控方式詳解
這篇文章主要介紹了kubernetes(k8s)安裝metrics-server實(shí)現(xiàn)資源使用情況監(jiān)控,包括Metrics?Server下載方式,?k8s集群安裝部署metrics的問題,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04K8s Pod調(diào)度機(jī)制詳解(從理論到生成實(shí)戰(zhàn)指南)
Kubernetes調(diào)度機(jī)制是集群的智能調(diào)度中樞,主要完成過濾和打分兩個(gè)決策,在生產(chǎn)環(huán)境中,核心調(diào)度策略包括資源調(diào)度、親和性調(diào)度、污點(diǎn)與容忍、拓?fù)浞植技s束等,本文介紹K8s Pod調(diào)度機(jī)制詳解(從理論到生成實(shí)戰(zhàn)指南),感興趣的朋友一起看看吧2025-03-03Kubernetes k8s configmap 容器技術(shù)解析
這篇文章主要為大家介紹了k8s configmap 容器技術(shù)解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08Linux安裝Kubernetes(k8s)超詳細(xì)教程
Kubernetes是一個(gè)輕便的和可擴(kuò)展的開源平臺(tái),用于管理容器化應(yīng)用和服務(wù),通過Kubernetes能夠進(jìn)行應(yīng)用的自動(dòng)化部署和擴(kuò)縮容,這篇文章主要給大家介紹了關(guān)于Linux安裝Kubernetes(k8s)的相關(guān)資料,需要的朋友可以參考下2024-07-07