使用之前安装的三个虚拟机,分别模拟一个主节点和两个工作节点。
接上一节,下面默认都是要在三个虚拟机上有同样的操作,在xshell中打开介入所有会话
1. 为三个虚拟机设置hostname
- 分别查看ip,因为要设置hostname与ip,复制到vim /etc/hosts中
#将每个虚拟机的ip和要修改的名字复制到 vim /etc/hosts 192.168.43.199 master 192.168.43.216 node01 192.168.43.141 node02
- 重启虚拟机 reboot
2. 关闭防火墙
- 代码如下
#临时关闭 systemctl stop firewalld #永久关闭 systemctl disable firewalld
3.关闭selinux
- 代码如下
sed -i 's/enforcing/disabled/' /etc/selinux/config setenforce 0
4. 关闭swap
- 代码如下
#临时关闭 setenforce 0 #永久关闭 sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
4. 将桥接的ipv4传递给 iptables链
- 代码如下
#复制运行就可以 cat <<EOF > /etc/sysctl.d/k8s.conf \> net.bridge.bridge-nf-call-ip6tables = 1 \> net.bridge.bridge-nf-call-iptables = 1 \> EOF
5.同步时间
- 先安装ntp
yum -y install ntp
- 同步时间
ntpdate time1.aliyun.com
6.安装依赖包
- 代码如下
#安装wget yum install -y epel-release yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget #wget后面要用来下载flannel镜像
7.配置阿里云 yum 的软件源
- 代码如下,直接复制就可
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
8. 安装kubeadm,kubelet和kubectl
由于版本更新频繁,这里指定版本号部署:
- 代码如下
yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0
9.设置开机启动
- 代码如下
systemctl enable kubelet
开始部署 master ,先 把 键入到所有会话关闭 。只在 master 内写
10. 安装kubeadm ,在 master 内执行
- 代码如下
如果上面操作执行出现下面错误kubeadm init \ --apiserver-advertise-address=192.168.0.128 \ --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
具体操作:
如果出现下面报错:cd /var/lib/etcd rm -rf default.etcd/
配置 镜像加速 :vi /etc/docker/daemon.json
写入:{ "registry-mirrors": ["https://l47we7ix.mirror.aliyuncs.com"], #添加下面两个就可以 "live-restore": true, "exec-opts": [ "native.cgroupdriver=systemd"] }
11.安装好后
安装好后,会自动出行这些内容,复制粘贴运行下面内容:
复制运行之后,运行代码:kubectl get nodes
说明成功
12. 安装Pod网络插件(CNI)
在集群上的所有虚拟机上运行
- 手动拉取flannel镜像
docker pull easzlab/flannel:v0.11.0-amd64# 修改镜像名称 docker tag easzlab/flannel:v0.11.0-amd64 quay.io/coreos/flannel:v0.11.0-amd64
下面只在master上操作
- 安装flannel
先安装wget:
尝试运行wget:yum -y install wget
如果这个太慢或者失败的话,用xshellwget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
下载k8s.rar,解压后如下
通过 xshell 传到 master 节点上,移动到root下面
安装flannelkubectl apply -f kube-flannel.yml
13. ndoe01和node02连接到master
- node节点加入集群
在node节点内,复制安装kubeadm成功后的东西(复制的时候因为回车可能会出现一些问题,可以先复制到文本文档后再赋值到虚拟机上)
- 进入 master,输入命令:kubectl get nodes,出现下面,说明集群连接成功
14. 测试集群
- 在主节点 master 上运行
kubectl create deployment nginx --image=nginx kubectl expose deployment nginx --port=80 --type=NodePort kubectl get pods,svc
在浏览器中输入:(查ip用ifconfig)
master的ip:32555
Node01的ip:32555
Node02的ip:32555
都可以访问 nginx
完……