单Master K8s集群搭建
快速搭建k8s集群
·
目录
三、所有节点安装docker、kubeadm、kubelet
一、环境准备
#最小化安装:yum一个wget
yum install wget
虚拟机名字 | Ip地址 | 配置 | 状态 |
Master-CentOS 7 | 192.168.81.129 | x86_x64 2+GB RAM 2+CPU 40+GB硬盘 | 1.网络互通 2.可访问外网,需要拉镜像 3.禁止swap分区 |
Node1-Centos7-02 | 192.168.81.130 | x86_x64 2+GB RAM 2+CPU 40+GB硬盘 | |
Node2-Centos7-03 | 192.168.81.131 | x86_x64 2+GB RAM 2+CPU 40+GB硬盘 |
二、系统初始化
三天机器都执行下面命令,
- 关闭防火墙
[root@localhost ~]# systemctl stop firewalld #暂时关闭防火墙
[root@localhost ~]# systemctl disable firewalld #永久关闭防火墙
- 关闭selinux
[root@localhost ~]# sed -i 's/enforcing/disable/' /etc/selinux/config #永久关闭强制访问控制
[root@localhost ~]# setenforce 0 #临时关闭强制访问控制
- 关闭swap
[root@localhost ~]# swapoff –a #临时关闭交换分区
[root@localhost ~]# sed -ri 's/."swap."/#&/' /etc/fstab #永久关闭交换分区
- 根据规划设置主机名
用法:set-hostname <主机名>
[root@localhost ~]# hostnamectl set-hostname k8smaster
- 在master中添加hosts
#注意:ip和节点名字做相应变化
[root@localhost ~]# cat >> /etc/hosts <<EOF
> 192.168.81.129 k8smaster
> 192.168.81.130 k8snode1
> 192.168.81.131 k8snode2
> EOF
- 将桥接的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 #生效
- 时间同步
#注意:三台机器都同步
[root@localhost ~]# yum install ntpdate –y #安装ntpdate命令包
[root@localhost ~]# ntpdate time.windows.com #同步时间
三、所有节点安装docker、kubeadm、kubelet
- 安装docker
- 添加阿里云yum软件源
# 注意三台机器都执行
[root@localhost ~]# cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
- 安装kubadm,kunelet和kubectl
# 注意三台机器都执行
由于版本更新频繁,这里制定版本号部署:
[root@localhost ~]# yum install -y kubelet-1.18.0 kubectl-1.18.0 kubeadm-1.18.0
[root@localhost ~]# systemctl enable kubelet #kubelet开机自启动
四、部署Kubernetes Master
#注意:在192.168.81.129(Master)执行。kubeadm初始化
[root@localhost docker]# kubeadm init --apiserver-advertise-address=192.168.81.129 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16
[root@localhost docker]#Docker -images #可以看到已经安装的实例
Kubectl工具
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
五、加入Kubernetes Node
在node中执行,向集群中添加节点 执行在kubeadm init 输出的kubeadm join命令
#此处是如下所示,在node1里面执行:
kubeadm join 192.168.81.129:6443 --token v1xlpp.jgrwnfr4r5alsz39 \
--discovery-token-ca-cert-hash sha256:c2bc93ba562ffe03e293f672103a5e1be3245704806a480ff4862a6d95371edd
#默认token 有效时长24小时 当过期后,该token就不可用了,这时需要重新创建token,操作如下
Kubeadm token create –print-jion-command
在node2中执行:
在master节点中查看节点:
kubectl get nodes
六、部署CNI网络插件
[root@localhost docker]# kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
[root@localhost docker]# kubectl get pods -n kube-system #列出名字为kube-system运行的Pod信息
七、测试kubernetes集群
应用 YAML 文件
[root@localhost docker]# kubectl apply -f nginx-deployment.yaml
查看部署结果
# 查看 Deployment
[root@localhost docker]#kubectl get deployments
# 查看 Pod
[root@localhost docker]#kubectl get pods
# 成功运行 nginx 拉取的时候会很慢,也会报拉取次数超过限制次数等错误,可以更换其他的国内源,等完全拉取完后就正常Running了。
#将nginx端口暴露出来,然后在游览器端测试《nodeIP+port》
[root@k8smaster docker]# kubectl expose deployment nginx-deployment --port=80 --type=NodePort #端口暴露
[root@k8smaster docker]# kubectl get svc #查看nginx-deployment容器暴露的端口号
游览器任意一个node 的ip+30489(端口)
更多推荐
已为社区贡献1条内容
所有评论(0)