VituralBox从零搭建基于CentOS 7(64位)的Kubernetes+docker集群
VituralBox從零搭建基于CentOS 7(64位)的Kubernetes+docker集群
- 1. 下載CentOS 7官方minimal鏡像
- 2. 安裝VituralBox(Windows 10 64位)
- 3. 安裝Git for windows(Windows 10 64位)
- 4. 安裝VituralBox虛擬機(jī)并創(chuàng)建CentOS 7 Master主機(jī)
- 5. 設(shè)置CentOS 7的網(wǎng)絡(luò)環(huán)境和ssh連接(開放22端口)
- 6. 構(gòu)建CentOS虛擬機(jī)局域網(wǎng)
- 7. Master主節(jié)點(diǎn)配置kubernetes+docker
- 8. Node子節(jié)點(diǎn)配置kubernetes+docker
- 附錄
? ??
?
1. 下載CentOS 7官方minimal鏡像
- 安裝迅雷軟件
- 使用迅雷訪問官方地址,下載鏡像:http://mirrors.huaweicloud.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-Minimal-1810.iso
?
2. 安裝VituralBox(Windows 10 64位)
- 官方下載地址:https://download.virtualbox.org/virtualbox/6.0.4/VirtualBox-6.0.4-128413-Win.exe
?
3. 安裝Git for windows(Windows 10 64位)
? ? ? ?官方下載地址:https://git-scm.com/download/win
? ? ? ?下載完成后,直接安裝,下一步下一步就好了,主要是用于接上虛擬機(jī)輸入命令,復(fù)制粘貼命令和文本非常方便,安裝完成后,點(diǎn)擊Git Bash可以看到以下界面:
? ? ? ?
?
4.安裝VituralBox虛擬機(jī)并創(chuàng)建CentOS 7 Master主機(jī)
? ? ? VituralBox是“下一步,下一步”的“傻瓜式安裝”,這里注意下,安裝位置不要選擇C盤,因?yàn)闀?huì)占用硬盤大量的空間,導(dǎo)致系統(tǒng)非常卡頓!
? ? ? ?安裝完成后,在CMD界面輸入“ifconfig”,查看虛擬網(wǎng)卡是否存在,存在就是裝好了:
? ? ??
? ? ??打開VirtualBox主界面,如下圖所示,點(diǎn)擊新建:
? ? ??
? ? ?新建虛擬機(jī),切記保存位置不能選擇C盤!,名字為“CentOS7-Master”,點(diǎn)擊“下一步”
? ? ?
? ? 內(nèi)存至少分配3.5GB,下一步,創(chuàng)建虛擬硬盤
? ? ?
? ? 創(chuàng)建虛擬硬盤->VDI->動(dòng)態(tài)分配->硬盤大小至少分配20G以上,創(chuàng)建
? ? ?
? ? ?這時(shí)我們看到已經(jīng)創(chuàng)建成功了,點(diǎn)擊“啟動(dòng)”,載入下載好的CentOS7 minimal鏡像ISO文件
? ??
? ? ? 點(diǎn)擊設(shè)置->顯示→顯示控制器更改為“VBoxVGA”(這一步是為了防止,啟動(dòng)后無法顯示鼠標(biāo),就無法安裝CentOS7 了)
? ? ??
? ? ? 設(shè)置完成后,選擇“Install CentOS 7”,這里我們選擇“英語”(美國),下一步,點(diǎn)擊“安裝位置”,選擇分配的硬盤空間,下一步,設(shè)置用戶名和密碼,安裝完成,點(diǎn)擊重啟
? ? ?
?
5. 設(shè)置CentOS 7的網(wǎng)絡(luò)環(huán)境和ssh連接(開放22端口)
? ? ?輸入用戶名root,root密碼,進(jìn)入CentOS 7,這時(shí)我們輸入“ping www.baidu.com”發(fā)現(xiàn)網(wǎng)卡無法訪問外網(wǎng),這時(shí),輸入命令
sudo vi /etc/sysconfig/network-scripts/ifcfg-enp0s3? ? # 找到 ONBOOT,把 no 改成 yes ,保存退出
重啟虛擬機(jī)后,執(zhí)行命令,yum環(huán)境可以使用了
sudo yum install net-toolssudo vi /etc/ssh/sshd_config
? # 把 Port 22 前面的#注釋去掉
firewall-cmd --permanent --zone=public --add-port=22/tcp # 輸入命令,把22端口添加到防火墻外
關(guān)閉虛擬機(jī),右鍵點(diǎn)擊設(shè)置->網(wǎng)絡(luò),進(jìn)行如下配置,主機(jī)ip填寫windows下虛擬機(jī)網(wǎng)卡的ip,子ip填寫CentOS里面enp0s3網(wǎng)卡的ip地址,端口填寫22
啟動(dòng)虛擬機(jī),打開Git? Bash輸入命令,發(fā)現(xiàn)可以連接進(jìn)去虛擬機(jī):
ssh root@192.168.56.1 # ssh root@虛擬網(wǎng)卡ip地址
6.構(gòu)建CentOS虛擬機(jī)局域網(wǎng)
點(diǎn)擊管理->主機(jī)網(wǎng)絡(luò)管理器,新建2個(gè)和前面的虛擬網(wǎng)卡統(tǒng)一網(wǎng)段的ip網(wǎng)卡
把之前配置好的虛擬機(jī),右鍵選擇“克隆”
克隆完成后,我們發(fā)現(xiàn)多出來了兩個(gè)新的虛擬機(jī)
??
? 點(diǎn)擊“管理”->"全局設(shè)定"->"網(wǎng)絡(luò)"->新建一個(gè)網(wǎng)段為“10.0.3.0/24”的網(wǎng)段,配置如下圖
好了,這里我們需要分別設(shè)置3個(gè)虛擬機(jī)的網(wǎng)絡(luò),打開主機(jī) Master的設(shè)置-網(wǎng)絡(luò),網(wǎng)卡1和網(wǎng)卡2配置如下:?
Node1的網(wǎng)卡1、網(wǎng)卡2配置:
?
Node2的網(wǎng)卡1、網(wǎng)卡2配置:
?分別開啟3臺(tái)虛擬機(jī),輸入”ifconfig“查詢到3個(gè)ip地址
?
? 根據(jù)對應(yīng)的ip地址重新填寫各虛擬機(jī)網(wǎng)卡1的”端口轉(zhuǎn)發(fā)“規(guī)則
最后利用git bash 用ssh命令登陸3臺(tái)虛擬機(jī),然后兩兩相互ping,如果能ping通,證明局域網(wǎng)CentOS環(huán)境已經(jīng)搭建完成,我們正式進(jìn)入k8s+docker的環(huán)境搭建
7. Master主節(jié)點(diǎn)配置kubernetes+docker
目前我們的3臺(tái)虛擬機(jī)如下:
- Master主節(jié)點(diǎn)(ip:10.0.3.4)
- Node1子節(jié)點(diǎn)(ip:10.0.3.5)
- Node2子節(jié)點(diǎn)(ip:10.0.3.6)
輸入以下命令關(guān)閉防火墻:
setenforce 0systemctl stop firewalld & systemctl disable firewalldsed -i '/^SELINUX=/cSELINUX=disabled' /etc/sysconfig/selinuxswapoff -afirewall-cmd --reloadyum安裝k8s和etcd:
yum -y install etcd kubernetes?
?
sudo vi /etc/etcd/etcd.conf?
?
#[Member] #ETCD_CORS="" ETCD_DATA_DIR="/var/lib/etcd/default.etcd" #ETCD_WAL_DIR="" #ETCD_LISTEN_PEER_URLS="http://localhost:2380" ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" #ETCD_MAX_SNAPSHOTS="5" #ETCD_MAX_WALS="5" ETCD_NAME=default #ETCD_SNAPSHOT_COUNT="100000" #ETCD_HEARTBEAT_INTERVAL="100" #ETCD_ELECTION_TIMEOUT="1000" #ETCD_QUOTA_BACKEND_BYTES="0" #ETCD_MAX_REQUEST_BYTES="1572864" #ETCD_GRPC_KEEPALIVE_MIN_TIME="5s" #ETCD_GRPC_KEEPALIVE_INTERVAL="2h0m0s" #ETCD_GRPC_KEEPALIVE_TIMEOUT="20s" # #[Clustering] #ETCD_INITIAL_ADVERTISE_PEER_URLS="http://localhost:2380" ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379" #ETCD_DISCOVERY="" #ETCD_DISCOVERY_FALLBACK="proxy" #ETCD_DISCOVERY_PROXY="" #ETCD_DISCOVERY_SRV="" #ETCD_INITIAL_CLUSTER="default=http://localhost:2380" #ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster" #ETCD_INITIAL_CLUSTER_STATE="new" #ETCD_STRICT_RECONFIG_CHECK="true" #ETCD_ENABLE_V2="true" # #[Proxy] #ETCD_PROXY="off" #ETCD_PROXY_FAILURE_WAIT="5000" #ETCD_PROXY_REFRESH_INTERVAL="30000" #ETCD_PROXY_DIAL_TIMEOUT="1000" #ETCD_PROXY_WRITE_TIMEOUT="5000" #ETCD_PROXY_READ_TIMEOUT="0" # #[Security] #ETCD_CERT_FILE="" #ETCD_KEY_FILE="" #ETCD_CLIENT_CERT_AUTH="false" #ETCD_TRUSTED_CA_FILE="" #ETCD_AUTO_TLS="false" #ETCD_PEER_CERT_FILE="" #ETCD_PEER_KEY_FILE="" #ETCD_PEER_CLIENT_CERT_AUTH="false" #ETCD_PEER_TRUSTED_CA_FILE="" #ETCD_PEER_AUTO_TLS="false" # #[Logging] #ETCD_DEBUG="false" #ETCD_LOG_PACKAGE_LEVELS="" #ETCD_LOG_OUTPUT="default" # #[Unsafe] #ETCD_FORCE_NEW_CLUSTER="false" # #[Version] #ETCD_VERSION="false" #ETCD_AUTO_COMPACTION_RETENTION="0" # #[Profiling] #ETCD_ENABLE_PPROF="false" #ETCD_METRICS="basic" # #[Auth] #ETCD_AUTH_TOKEN="simple"
?
sudo vi /etc/kubernetes/apiserver### # kubernetes system config # # The following values are used to configure the kube-apiserver # # The address on the local server to listen to. KUBE_API_ADDRESS="--address=0.0.0.0" # The port on the local server to listen on. KUBE_API_PORT="--port=8080" # Port minions listen on KUBELET_PORT="--kubelet-port=10250" # Comma separated list of nodes in the etcd cluster KUBE_ETCD_SERVERS="--etcd-servers=http://127.0.0.1:2379" # Address range to use for services KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16" # default admission control policies KUBE_ADMISSION_CONTROL="--admission-control=NamespaceLifecycle,NamespaceExists,L imitRanger,SecurityContextDeny,ServiceAccount,ResourceQuota" # Add your own! KUBE_API_ARGS=""
- 輸入命令:
- 10.0.2.7換成自己主機(jī)節(jié)點(diǎn)虛擬機(jī)的ip
?
etcdctl -C http://10.0.3.4:2379 set /atomic.io/network/config '{ "Network":"10.1.0.0/16"}'?
8. Node子節(jié)點(diǎn)配置kubernetes+docker
setenforce 0systemctl stop firewalld & systemctl disable firewalld sed -i '/^SELINUX=/cSELINUX=disabled' /etc/sysconfig/selinuxswapoff -afirewall-cmd --reload#安裝k8s
yum -y install flannel kubernetes sudo vi /etc/kubernetes/config? ? 修改配置如下,保存退出 , 這里填寫的ip是主節(jié)點(diǎn)的ip,不是自己的ip!
KUBE_MASTER="--master=http://10.0.3.4:8080" KUBE_ETCD_SERVERS="--etcd_servers=http://10.0.3.4:2379" sudo vi /etc/kubernetes/kubelet
? ?修改配置如下,保存退出 ,
KUBELET_ADDRESS="--address=0.0.0.0" # The port for the info server to serve on KUBELET_PORT="--port=10250" # You may leave this blank to use the actual hostname KUBELET_HOSTNAME="--hostname-override=10.0.3.6" # location of the api-server KUBELET_API_SERVER="--api-servers=http://10.0.3.4:8080" # pod infrastructure container KUBELET_POD_INFRA_CONTAINER="--pod-infra-container-image=registry.access.redhat. com/rhel7/pod-infrastructure:latest" # Add your own! KUBELET_ARGS=""?輸入命令
ip link delete docker0 sudo vi /etc/sysconfig/flanneld? ?修改配置如下,保存退出 ,
# Flanneld configuration options # etcd url location. Point this to the server where etcd runs FLANNEL_ETCD_ENDPOINTS="http://10.0.3.4:2379" # etcd config key. This is the configuration key that flannel queries # For address range assignment FLANNEL_ETCD_PREFIX="/atomic.io/network" # Any additional options that you want to pass #FLANNEL_OPTIONS=""? ?輸入命令:
for SERVICES in flanneld kube-proxy kubelet docker; do systemctl restart $SERVICES systemctl enable $SERVICES systemctl status $SERVICES done
最后一步,在主機(jī)節(jié)點(diǎn)(10.0.3.4)輸入命令:
kubectl get nodes
大功告成!如果這篇文章可以幫到你,就資助下小弟吧
附錄
三篇參考博客:
- vituralbox虛擬機(jī)安裝及配置(一、二):https://www.jianshu.com/p/78a5afd0c597
- vituralbox搭建局域網(wǎng)虛擬機(jī):https://jingyan.baidu.com/article/22a299b5d5989d9e19376ab7.html
- Kubernetes+docker集群搭建博客:https://blog.csdn.net/real_myth/article/details/78719244
- CentOS minimal剛完成安裝無法聯(lián)網(wǎng):https://www.cnblogs.com/syscn/p/9802924.html
- CentOS 開放22端口:https://www.cnblogs.com/xxx91hx/p/4374289.html
?
posted @ 2019-03-19 17:27 luyanjie 閱讀(...) 評論(...) 編輯 收藏總結(jié)
以上是生活随笔為你收集整理的VituralBox从零搭建基于CentOS 7(64位)的Kubernetes+docker集群的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 整数转字符串
- 下一篇: Zabbix 最新版 5.2 版本源码安