我自横刀向天笑,去留肝胆两昆仑。这篇文章主要讲述Kubernetes部署相关的知识,希望能为你提供帮助。
一、环境要求
系统版本:CentOS7.x版本
硬件配置:内存2GB以上
cpu2核以上
硬盘大于30G
集群网络配置:集群中所有服务器内网必须互通,并且需要访问外网来拉取镜像
禁用swap分区
二、k8s基础环境操作:
1、关闭防火墙:[root@localhost ~]#
systemctl stop firewalld
[root@localhost ~]#
systemctl disable firewalld
2、关闭selinux:
[root@localhost ~]#
sed -i s/enforcing/disabled/ /etc/selinux/config
[root@localhost ~]# getenforce
3、关闭swap分区:
临时关闭:[root@localhost ~]#
swapoff -a
永久关闭:注释掉/etc/fstab文件中的swap行
4、进行hosts文件编辑:
192.168.8.146
k8s-master
192.168.8.141
k8s-node1
192.168.8.129
k8s-node2
5、将桥接的IPv4流量传递到iptables的链
[root@localhost ~]# cat >
/etc/sysctl.d/k8s.conf <
<
EOF
>
net.bridge.bridge-nf-call-ip6tables = 1
>
net.bridge.bridge-nf-call-iptables = 1
>
EOF
[root@localhost ~]# sysctl --system
6、开启IP转发功能
[root@localhost ~]#
echo "1" >
/proc/sys/net/ipv4/ip_forward
三、安装docker(三台机器都操作)
1、卸载旧版docker
[root@localhost ~]#
yum remove docker docker-common docker-selinux docker-engine
2、安装一些必要的系统工具
[root@localhost ~]# yum install -y yum-utils device-mapper-persistent-data lvm2
3、配置docker的稳定版本仓库
yum-config-manager --add-repo
??https://download.docker.com/linux/centos/docker-ce.repo????
4、更新安装包索引
[root@localhost ~]# yum makecache fast
5、安装docker ce
[root@localhost ~]# yum -y install docker-ce-18.06.1.ce-3.el7
6、开机自启和启动docker
[root@localhost ~]# systemctl enable docker
&
&
systemctl start docker
7、查看docker版本
[root@localhost ~]#
docker --version
8、添加阿里云YUM软件源
[root@localhost ~]# vim /etc/yum.repos.d/kubernetes.repo
[Kubernetes]
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1repo_gpgcheck=1gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
??https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg????
9、[root@localhost ~]# yum clean all
10、[root@localhost ~]# yum makecache
安装kubeadm,kubelet和kubectl
11、由于版本更新频繁,这里指定版本号部署:
[root@localhost ~]# yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0
[root@localhost ~]# systemctl enable kubelet
四、部署Kubernetes Master(这个在master主机里操作):
[root@k8s-master~]#kubeadm init
--apiserver-advertise-address=192.168.8.146
--image-repository registry.aliyuncs.com/google_containers
--kubernetes-version v1.15.0 --service-cidr=10.1.0.0/16
--pod-network-cidr=10.244.0.0/16
注意:红色的ip是master主机的ip地址
五、配置kubectl访问集群(三台机器操作):
1、[root@localhost ~]# mkdir -p $HOME/.kube
2、[root@k8s-master ~]# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
3、[root@k8s-master ~]# chown $(id -u):$(id -g) $HOME/.kube/config
六、Master安装flannel(主机master里操作):
[root@k8s-master~]#kubectl apply -f ??https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml????
1、查看索引pod
[root@k8s-master ~]# kubectl get pod -n kube-system
2、查看节点
[root@k8s-master ~]#
kubectl get node
七、加入node节点(在两台node上做):
1、[root@k8s-node1 ~]#
kubeadm join 192.168.8.146:6443 --token vhykt2.0jjdgdcnclxhts41
--discovery-token-ca-cert-hash
sha256:bf42d67996e593a1e5844ba717d97e1249ed85bf86d83322b88c108d2f6a3dc1
2、查看node1节点是否成功(在node1上做)
[root@k8s-node1 ~]# docker ps
八、查看节点信息(在master操作)
[root@k8s-master ~]# kubectl get node
九、部署dashboard(master主机操作)
[root@k8s-master~]#wget
??https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml????
【Kubernetes部署】1、[root@k8s-master ~]# vim
kubernetes-dashboard.yaml
2、安装dashboard
[root@k8s-master ~]# kubectl apply -f kubernetes-dashboard.yaml
3、使用master节点ip地址+端口来访问,协议是https的
查看Dashboard端口信息:
[root@k8s-master ~]# kubectl --namespace=kube-system get service kubernetes-dashboard
4、以我自己的服务器为访问对象,使用??https://172.16.204.130:30310??即可访问
5、Token
[root@k8s-master ~]# kubectl create serviceaccount dashboard-admin -n kube-system
[root@k8s-master~]#kubectl create clusterrolebinding dashboard-admin --clusterrole=cluster-admin --serviceaccount=kube-system:dashboard-admin
[root@k8s-master ~]# kubectl
get secret -n kube-system
6、查看token的具体信息
[root@k8s-master~]#
kubectl describe secret dashboard-admin-token-92djb -n kube-system
7、把密令输入在令牌中
8、登陆成功的页面:
推荐阅读
- GitHub注册-创建数据库-本地项目推送GitHub远程数据库-(入门级教程)
- 被悟空熊炸出的老博主们
- 70行JavaScript代码实现除夕夜倒计时 零基础也能学会~
- 如何在Node.js中将文本转换为语音()
- 如何在JavaScript中将Map键转换为数组()
- 如何在PHP中将数组转换为SimpleXML()
- 如何在PHP中将图像转换为base64编码()
- 如何将Mongodb数据库与Node.js连接起来()
- 算法题(如何计算大数的mod())