目錄
1、準(zhǔn)備環(huán)境 (溫馨提示:盡量一次完成集群)
2.安裝master節(jié)點(diǎn)
3、安裝k8s-master上的node
4、安裝配置k8s-node1節(jié)點(diǎn)
5、安裝k8s-node2節(jié)點(diǎn)
6、為所有node節(jié)點(diǎn)配置flannel網(wǎng)絡(luò)
7、配置docker開啟加載防火墻規(guī)則允許轉(zhuǎn)發(fā)數(shù)據(jù)
一. 環(huán)境搭建
1、準(zhǔn)備環(huán)境 (溫馨提示:盡量一次完成集群)
集群很容易斷網(wǎng)
1)? 計算機(jī)說明,建議系統(tǒng)版本7.4或者7.6
主機(jī)名 | IP地址 | 角色 | 硬件 |
k8s-master |
192.168.50.53 | master+node | Etcd、apiserver、controlor-manager、scheduler、kube-proxy、docker、registry |
k8s-node1 | 192.168.50.50 | node | Kubletel、kube-proxy、docker |
k8s-node2 | 192.168.50.51 | node | Kubletel、kube-proxy、docker |
2)? 修改主機(jī)的計算機(jī)名設(shè)置host文件
[root@localhost ~]# hostname k8s-master
[root@localhost ~]# bash
[root@k8s-master ~]# vim /etc/hosts
192.168.50.53 k8s-master
192.168.50.50 k8s-node1
192.168.50.51 k8s-node2
~???????????????????????[root@k8s-master ~]# scp /etc/hosts 192.168.50.51:/etc
[root@k8s-master ~]# scp /etc/hosts 192.168.50.50:/etc
2.安裝master節(jié)點(diǎn)
1)安裝etcd配置etcd
[root@k8s-master ~]# yum -y install etcd
[root@k8s-master ~]# cp /etc/etcd/etcd.conf ?/etc/etcd/etcd.conf.bak
[root@k8s-master ~]# vim /etc/etcd/etcd.conf
6 ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
21 ETCD_ADVERTISE_CLIENT_URLS="http://192.168.50.53:2379"
[root@k8s-master ~]# systemctl start etcd
[root@k8s-master ~]# systemctl enable etcd
Created symlink from /etc/systemd/system/multi-user.target.wants/etcd.service to /usr/lib/systemd/system/etcd.service.
2)安裝k8s-master節(jié)點(diǎn)
[root@k8s-master ~]# yum -y install kubernetes-master.x86_64
3)配置apiserver
[root@k8s-master ~]# vim /etc/kubernetes/apiserver
??1 ###
??2 # kubernetes system config
??3 #
??4 # The following values are used to configure the kube-apiserver
??5 #
??6
??7 # The address on the local server to listen to.
??8 KUBE_API_ADDRESS="--insecure-bind-address=0.0.0.0"
??9
?10 # The port on the local server to listen on.
?11 KUBE_API_PORT="--port=8080"
?12
?13 # Port minions listen on
?14 KUBELET_PORT="--kubelet-port=10250"
?15
?16 # Comma separated list of nodes in the etcd cluster
?17 KUBE_ETCD_SERVERS="--etcd-servers=http://192.168.50.53:2379"
?18
?19 # Address range to use for services
?20 KUBE_SERVICE_ADDRESSES="--service-cluster-ip-range=10.254.0.0/16"
?21
?22 # default admission control policies
23KUBE_ADMISSION_CONTROL="admissioncontrol=NamespaceLifecycle,NamespaceExists,LimitRanger,Security ???ContextDeny,ResourceQuota"
?24
?25 # Add your own!
?26 KUBE_API_ARGS=""
4) 配置controller和scheduler
[root@k8s-master ~]# vim /etc/kubernetes/config
?22 KUBE_MASTER="--master=http://192.168.50.53:8080"
啟動k8s服務(wù)
[root@k8s-master ~]# systemctl start kube-apiserver.service
[root@k8s-master ~]# systemctl start kube-controller-manager.service
[root@k8s-master ~]# systemctl start kube-scheduler.service
[root@k8s-master ~]# systemctl enable kube-apiserver.service
Created symlink from /etc/systemd/system/multi-user.target.wants/kube-apiserver.service to /usr/lib/systemd/system/kube-apiserver.service.
[root@k8s-master ~]# systemctl enable kube-controller-manager.service
Created symlink from /etc/systemd/system/multi-user.target.wants/kube-controller-manager.service to /usr/lib/systemd/system/kube-controller-manager.service.
[root@k8s-master ~]# systemctl enable kube-scheduler.server
Failed to execute operation: No such file or directory
[root@k8s-master ~]# systemctl enable kube-scheduler.service
Created symlink from /etc/systemd/system/multi-user.target.wants/kube-scheduler.service to /usr/lib/systemd/system/kube-scheduler.service.
檢查節(jié)點(diǎn)是否監(jiān)控
[root@k8s-master ~]# kubectl get componentstatus
NAME ????????????????STATUS ???MESSAGE ????????????ERROR
etcd-0 ??????????????Healthy ??{"health":"true"} ??
controller-manager ??Healthy ??ok ?????????????????
scheduler ???????????Healthy ??ok ?????????????????
3、安裝k8s-master上的node
1)安裝node
[root@k8s-master ~]# yum -y install kubernetes node.x86_64
2)配置kubelet
[root@k8s-master ~]# vim /etc/kubernetes/kubelet
5 KUBELET_ADDRESS="--address=192.168.50.53"
?11 KUBELET_HOSTNAME="--hostname-override=k8s-master"
?14 KUBELET_API_SERVER="--api-servers=http://192.168.50.53:8080"
3)啟動kubelet啟動自動啟動docker服務(wù)
[root@k8s-master ~]# systemctl start kubelet
[root@k8s-master ~]# systemctl enable kubelet
Created symlink from /etc/systemd/system/multi-user.target.wants/kubelet.service to /usr/lib/systemd/system/kubelet.service.
4)啟動kubelet-proxy
[root@k8s-master ~]# systemctl start kube-proxy
[root@k8s-master ~]# systemctl enable kube-proxy
Created symlink from /etc/systemd/system/multi-user.target.wants/kube-proxy.service to /usr/lib/systemd/system/kube-proxy.service.
5)檢查node節(jié)點(diǎn)
[root@k8s-master ~]# kubectl get nodes
NAME ????????STATUS ???AGE
k8s-master ??Ready ????1m
4、安裝配置k8s-node1節(jié)點(diǎn)
1)安裝node
[root@k8s-node1 ~]# yum -y install kubernetes node.x86_64
2)node1連接k8s-master
[root@k8s-node1 ~]# vim /etc/kubernetes/config
?22 KUBE_MASTER="--master=http://192.168.50.53:8080"
3)配置kubelet
[root@k8s-node1 ~]# vim /etc/kubernetes/kubelet
?5 KUBELET_ADDRESS="--address=192.168.50.50"
?11 KUBELET_HOSTNAME="--hostname-override=k8s-node1"
?14 KUBELET_API_SERVER="--api-servers=http://192.168.50.53:8080"
4)啟動服務(wù)
[root@k8s-node1 ~]# systemctl start kubelet
[root@k8s-node1 ~]# systemctl start kube-proxy
[root@k8s-node1 ~]# systemctl enable kubelet
Created symlink from /etc/systemd/system/multi-user.target.wants/kubelet.service to /usr/lib/systemd/system/kubelet.service.
[root@k8s-node1 ~]# systemctl enable kube-proxy
Created symlink from /etc/systemd/system/multi-user.target.wants/kube-proxy.service to /usr/lib/systemd/system/kube-proxy.service.
5)在master節(jié)點(diǎn)檢測node節(jié)點(diǎn)狀態(tài)
[root@k8s-master ~]# kubectl get nodes
NAME ????????STATUS ???AGE
k8s-master ??Ready ????13m
k8s-node1 ???Ready ????1m
5、安裝k8s-node2節(jié)點(diǎn)
1)安裝node
[root@k8s-node2 ~]# yum -y install kubernetes node.x86_64
2)node1連接k8s-master
[root@k8s-node2 ~]# vim /etc/kubernetes/config
22 KUBE_MASTER="--master=http://192.168.50.53:8080"
3)配置kubelet
[root@k8s-node2 ~]# vim /etc/kubernetes/kubelet
??5 KUBELET_ADDRESS="--address=192.168.50.51"
?11 KUBELET_HOSTNAME="--hostname-override=k8s-node2"
?14 KUBELET_API_SERVER="--api-servers=http://192.168.50.53:8080"
4)啟動服務(wù)
[root@k8s-node2 ~]# systemctl start kubelet
[root@k8s-node2 ~]# systemctl start kube-proxy
[root@k8s-node2 ~]# systemctl enable kubelet
Created symlink from /etc/systemd/system/multi-user.target.wants/kubelet.service to /usr/lib/systemd/system/kubelet.service.
[root@k8s-node2 ~]# systemctl enable kube-proxy
Created symlink from /etc/systemd/system/multi-user.target.wants/kube-proxy.service to /usr/lib/systemd/system/kube-proxy.service.
5)在master節(jié)點(diǎn)檢測node節(jié)點(diǎn)狀態(tài)
[root@k8s-master ~]# kubectl get nodes
NAME ????????STATUS ???AGE
k8s-master ??Ready ????19m
k8s-node1 ???Ready ????7m
k8s-node2 ???Ready ????1m
6、為所有node節(jié)點(diǎn)配置flannel網(wǎng)絡(luò)
1)在k8s-master節(jié)點(diǎn)安裝flannel
[root@k8s-master ~]# yum -y install flannel -y
[root@k8s-master ~]# vim /etc/sysconfig/flanneld
?4 FLANNEL_ETCD_ENDPOINTS="http://192.168.50.53:2379"
[root@k8s-master ~]# etcdctl set /atomic.io/network/config '{"Network":"172.16.0.0/16"}'
{"Network":"172.16.0.0/16"}???????? ??? //查看多一個網(wǎng)絡(luò)
[root@k8s-master ~]# systemctl start flanneld??? //重新啟動docker服務(wù)和flannel網(wǎng)絡(luò)一至
[root@k8s-master ~]# systemctl enable flanneld
Created symlink from /etc/systemd/system/multi-user.target.wants/flanneld.service to /usr/lib/systemd/system/flanneld.service.
Created symlink from /etc/systemd/system/docker.service.wants/flanneld.service to /usr/lib/systemd/system/flanneld.service.
[root@k8s-master ~]# ifconfig???????? //查看多一個網(wǎng)絡(luò)
flannel0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> ?mtu 1472
????????inet 172.16.48.0 ?netmask 255.255.0.0 ?destination 172.16.48.0
????????inet6 fe80::4fff:f857:41f4:3894 ?prefixlen 64 ?scopeid 0x20<link>
????????unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 ?txqueuelen 500 ?(UNSPEC)
????????RX packets 0 ?bytes 0 (0.0 B)
????????RX errors 0 ?dropped 0 ?overruns 0 ?frame 0
????????TX packets 3 ?bytes 144 (144.0 B)
????????TX errors 0 ?dropped 0 overruns 0 ?carrier 0 ?collisions 0
[root@k8s-master ~]# systemctl restart docker
sys[root@k8s-master ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
[root@k8s-master ~]# ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST> ?mtu 1500
????????inet 172.16.48.1 ?netmask 255.255.255.0 ?broadcast 0.0.0.0
????????ether 02:42:87:58:2f:59 ?txqueuelen 0 ?(Ethernet)
????????RX packets 0 ?bytes 0 (0.0 B)
????????RX errors 0 ?dropped 0 ?overruns 0 ?frame 0
????????TX packets 0 ?bytes 0 (0.0 B)
????????TX errors 0 ?dropped 0 overruns 0 ?carrier 0 ?collisions 0
2)配置node1節(jié)點(diǎn)flannel網(wǎng)絡(luò)
[root@k8s-node1 ~]# yum -y install flannel -y
[root@k8s-node1 ~]# vim /etc/sysconfig/flanneld
?4 FLANNEL_ETCD_ENDPOINTS="http://192.168.50.53:2379"
[root@k8s-node1 ~]# systemctl start flanneld
[root@k8s-node1 ~]# systemctl enable flanneld
Created symlink from /etc/systemd/system/multi-user.target.wants/flanneld.service to /usr/lib/systemd/system/flanneld.service.
Created symlink from /etc/systemd/system/docker.service.wants/flanneld.service to /usr/lib/systemd/system/flanneld.service.
[root@k8s-node1 ~]# systemctl restart docker
[root@k8s-node1 ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
3)安裝node2節(jié)點(diǎn)flannel網(wǎng)絡(luò)
[root@k8s-node2 ~]# yum -y install flannel -y
[root@k8s-node2 ~]# vim /etc/sysconfig/flanneld
?4 FLANNEL_ETCD_ENDPOINTS="http://192.168.50.53:2379"
[root@k8s-node2 ~]# systemctl start flanneld
[root@k8s-node2 ~]# systemctl enable flanneld
Created symlink from /etc/systemd/system/multi-user.target.wants/flanneld.service to /usr/lib/systemd/system/flanneld.service.
Created symlink from /etc/systemd/system/docker.service.wants/flanneld.service to /usr/lib/systemd/system/flanneld.service.
[root@k8s-node2 ~]# systemctl restart docker
sy[root@k8s-node2 ~]# systemctl enable docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.
master查看
[root@k8s-master ~]# ?kubectl get nodes
NAME ????????STATUS ???AGE
k8s-master ??Ready ????35m
k8s-node1 ???Ready ????23m
k8s-node2 ???Ready ????17m
4)測試docker容器跨宿主機(jī)通信
[root@k8s-master ~]# iptables -P FORWARD ACCEPT
[root@k8s-master ~]#
[root@k8s-node1 ~]# iptables -P FORWARD ACCEPT
[root@k8s-node1 ~]#
[root@k8s-node2 ~]# iptables -P FORWARD ACCEPT
[root@k8s-node2 ~]#
iptables -P FORWARD ACCEPT: 這個命令將iptables的FORWARD鏈的默認(rèn)策略設(shè)置為ACCEPT(接受)。iptables是Linux上的防火墻工具,它可以用來設(shè)置網(wǎng)絡(luò)規(guī)則和過濾器。
-P FORWARD: 指定要更改的鏈?zhǔn)荈ORWARD鏈,這個鏈控制通過Linux主機(jī)的轉(zhuǎn)發(fā)流量
ACCEPT: 設(shè)置為接受(允許)轉(zhuǎn)發(fā)流量,默認(rèn)情況下,F(xiàn)ORWARD鏈的默認(rèn)策略是DROP(拒絕)。
#: 這是Linux命令行中用于表示注釋的符號。在這個上下文中,#后面的內(nèi)容被視為注釋,不會被執(zhí)行。
這意味著iptables的FORWARD鏈的默認(rèn)策略已被成功更改為接受(ACCEPT),允許通過Linux主機(jī)的轉(zhuǎn)發(fā)流量。
7、配置docker開啟加載防火墻規(guī)則允許轉(zhuǎn)發(fā)數(shù)據(jù)
1)配置k8s-master節(jié)點(diǎn)
[root@k8s-master ~]# vim /usr/lib/systemd/system/docker.service
?1 [Unit]
??2 Description=Docker Application Container Engine
??3 Documentation=http://docs.docker.com
??4 After=network.target
??5 Wants=docker-storage-setup.service
??6 Requires=docker-cleanup.timer
??7
??8 [Service]
??9 Type=notify
?10 NotifyAccess=main
?11 EnvironmentFile=-/run/containers/registries.conf
?12 EnvironmentFile=-/etc/sysconfig/docker
?13 EnvironmentFile=-/etc/sysconfig/docker-storage
?14 EnvironmentFile=-/etc/sysconfig/docker-network
?15 Environment=GOTRACEBACK=crash
?16 Environment=DOCKER_HTTP_HOST_COMPAT=1
?17 Environment=PATH=/usr/libexec/docker:/usr/bin:/usr/sbin
?18 ExecStartPort=/usr/sbin/iptables -P FORWARD ACCEPT?????? 添加這一行
?19 ExecStart=/usr/bin/dockerd-current \
[root@k8s-master ~]# systemctl daemon-reload
[root@k8s-master ~]# systemctl restart docker
2)配置k8s-node1節(jié)點(diǎn)
[root@k8s-node1 ~]# ?vim /usr/lib/systemd/system/docker.service
?18 ExecStartPort=/usr/sbin/iptables -P FORWARD ACCEPT
[root@k8s-node1 ~]# systemctl daemon-reload
[root@k8s-node1 ~]# systemctl restart docker
3)配置k8s-node2節(jié)點(diǎn)
[root@k8s-node2 ~]# vim /usr/lib/systemd/system/docker.service
?18 ExecStartPort=/usr/sbin/iptables -P FORWARD ACCEPT
[root@k8s-node2 ~]# systemctl daemon-reload文章來源:http://www.zghlxwxcb.cn/news/detail-639305.html
[root@k8s-node2 ~]# systemctl restart docker文章來源地址http://www.zghlxwxcb.cn/news/detail-639305.html
到了這里,關(guān)于Yum 部署K8S集群的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!