您好,登錄后才能下訂單哦!
這篇文章主要介紹“kubernetes集群搭建的方法是什么”,在日常操作中,相信很多人在kubernetes集群搭建的方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”kubernetes集群搭建的方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
k8s全稱kubernetes,這個名字大家應該都不陌生,k8s是為容器服務而生的一個可移植容器的編排管理工具,越來越多的公司正在擁抱k8s,并且當前k8s已經主導了云業務流程,推動了微服務架構等熱門技術的普及和落地,正在如火如荼的發展。
如下是我的集群部署策略,1個master + 2個node(minion1.2之前的叫法)。我的存儲集群etcd是單點集群,不推薦此做法。網絡使用的是flannel虛擬二次網絡。
Kubernetes具有完備的集群管理能力:
包括多層次的安全防護和準入機制 多租戶應用支撐能力 透明的服務注冊和服務發現機制 內建智能負載均衡器 強大的故障發現和自我修復能力 服務滾動升級和在線擴容能力 可擴展的資源自動調度機制 以及多粒度的資源管理能力
同時,kubernetes提供了完善的管理工具,這些工具涵蓋了包括開發、部署測試、運維監控在內的各個環節。
在kubernetes中,service(服務)是分布式集群架構的核心,一個service對象擁有如下關鍵特征:
擁有一個唯一指定的名字(比如mysql-service)。 擁有一個虛擬IP(Cluster IP、service IP或VIP)和端口號。 能夠提供某種遠程服務能力。 被映射到了提供這種服務能力的一組容器應用上。
Kubernetes.io開發了一個交互式教程,通過WEB瀏覽器就能使用預先部署好的一個Kubernetes集群,快速體驗kubernetes的功能和應用場景。
K8s官方下載地址:https://github.com/kubernetes
主機名 操作系統 IP地址 master Centos 7.4-x86_64 192.168.2.102 node1 Centos 7.4-x86_64 192.168.2.108 node2 Centos 7.4-x86_64 192.168.2.228
systemctl disable firewalld systemctl stop firewalld
[root@localhost ~]# hostnamectl master //192.168.2.102[root@localhost ~]# hostnamectl node1 //192.168.2.108[root@localhost ~]# hostnamectl node2 //192.168.2.228
更改Hostname為 master、node1、node2,配置IP地址,配置3臺測試機的/etc/hosts文件(在三臺服務器上同步)
[root@master ~]# cat /etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.2.102 master 192.168.2.108 node1 192.168.2.228 node2 [root@master ~]#
[root@master ~]# ntpdate ntp1.aliyun.com13 Sep 14:48:02 ntpdate[1596]: adjust time server 120.25.115.20 offset -0.015854 sec [root@master ~]# hwclock2018年09月13日 星期四 14時49分51秒 -0.646898 秒
[root@master ~]# wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@master yum.repos.d]# vim kubernetes.repo[kubernetes] name=kubernetes Repo baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/ gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg enabled=1
[root@master ~]# wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg[root@master ~]# rpm --import rpm-package-key.gpg[root@master yum.repos.d]# yum repolist
[root@master yum.repos.d]# scp CentOS-Base.repo docker-ce.repo kubernetes.repo node1:/etc/yum.repos.d/
[root@master ~]# yum -y install docker-ce kubelet kubeadm kubectl
[root@master ~]# vim /usr/lib/systemd/system/docker.service手動添加一行 Environment="HTTPS_PROXY=http://www.ik8s.io:10080"Environment="NO_PROXY=127.0.0.0/8,172.0.0.0/16"
[root@master ~]# systemctl daemon-reload啟動docker [root@master ~]# systemctl start docker設置開機啟動 [root@master ~]# systemctl enable docker[root@master ~]# docker info保證輸出的都是1 [root@master ~]# cat /proc/sys/net/bridge/bridge-nf-call-ip6tables1 [root@master ~]# cat /proc/sys/net/bridge/bridge-nf-call-iptables1 [root@master ~]# rpm -ql kubelet/etc/kubernetes/manifests #清單目錄/etc/sysconfig/kubelet #配置文件/etc/systemd/system/kubelet.service /usr/bin/kubelet #主程序設置開機啟動 [root@master ~]# systemctl enable kubelet
[root@master ~]# kubeadm init --kubernetes-version=v1.11.1 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12
報錯信息,解決辦法:
[root@master ~]# vim /etc/sysconfig/kubeletKUBELET_EXTRA_ARGS="--fail-swap-on=false"[root@master ~]# kubeadm init --kubernetes-version=v1.11.1 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap
注意這一條命令需要保存好(添加集群使用)
kubeadm join 192.168.2.102:6443 --token ns4kps.j8cuqwf78emp5a5b --discovery-token-ca-cert-hash sha256:b71b7e52c318959bab3f05f02f6fe51d6396d8c54ea6849ec7556927d1c6c88a [root@master ~]# docker image ls
[root@master ~]# ss –ntl
[root@master ~]# mkdir -p $HOME/.kube[root@master ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config檢測組件運行是否正常 [root@master ~]# kubectl get cs
[root@master ~]# kubectl get nodesNAME STATUS ROLES AGE VERSION master NotReady master 44m v1.11.3
[root@master ~]# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml[root@master ~]# curl -sSL "https://github.com/coreos/flannel/blob/master/Documentation/kube-flannel.yml?raw=true" | kubectl create -f -
[root@master ~]# docker image ls
[root@master ~]# kubectl get nodesNAME STATUS ROLES AGE VERSION master Ready master 2h v1.11.3
[root@master ~]# kubectl get pods -n kube-system
[root@master ~]# scp /usr/lib/systemd/system/docker.service node1:/usr/lib/systemd/system/docker.service[root@master ~]# scp /etc/sysconfig/kubelet node1:/etc/sysconfig/[root@master ~]# scp /usr/lib/systemd/system/docker.service node2:/usr/lib/systemd/system/docker.service[root@master ~]# scp /etc/sysconfig/kubelet node2:/etc/sysconfig/
[root@node1 ~]# wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
[root@node1 ~]# rpm --import rpm-package-key.gpg
[root@node1 ~]# yum -y install docker-ce kubelet kubeadm
[root@node1 ~]# systemctl start docker[root@node1 ~]# systemctl enable docker kubelet[root@node1 ~]# docker info
[root@node1 ~]# kubeadm join 192.168.2.102:6443 --token ns4kps.j8cuqwf78emp5a5b --discovery-token-ca-cert-hash sha256:b71b7e52c318959bab3f05f02f6fe51d6396d8c54ea6849ec7556927d1c6c88a --ignore-preflight-errors=Swap
[root@node1 ~]# docker image ls
[root@master ~]# kubectl get nodesNAME STATUS ROLES AGE VERSION master Ready master 3h v1.11.3 node1 Ready 7m v1.11.3 [root@master ~]# kubectl get pods -n kube-system -o wide
[root@node2 ~]# wget https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
[root@node2 ~]# rpm --import rpm-package-key.gpg
[root@node2 ~]# yum -y install docker-ce kubelet kubeadm
[root@node2 ~]# systemctl start docker[root@node2 ~]# systemctl enable docker kubelet[root@node2 ~]# docker info
[root@node2 ~]# kubeadm join 192.168.2.102:6443 --token ns4kps.j8cuqwf78emp5a5b --discovery-token-ca-cert-hash sha256:b71b7e52c318959bab3f05f02f6fe51d6396d8c54ea6849ec7556927d1c6c88a --ignore-preflight-errors=Swap
[root@master ~]# kubectl get nodes
[root@master ~]# kubectl get pods -n kube-system -o wide
到此,關于“kubernetes集群搭建的方法是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。