搭建K8S集群(cluster)
我们可以在K8S的官网,查看部署K8S的要求
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/
准备三台已经安装了docker的主机
Master:192.168.204.141
Node1:192.168.204.132
Node2:192.168.204.131
先进行免密登录
[root@master ~]# ssh-keygen
先将三台虚拟机清除防火墙
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables-save
关闭防火墙
[root@master ~]# systemctl disable firewalld && systemctl stop firewalld
关闭swap分区
[root@master ~]# swapoff -a
[root@master ~]# vim /etc/fstab
[root@master ~]# sysctl -p
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
vm.swappiness = 0
关闭selinux:
[root@master ~]# vim /etc/selinux/config
[root@node1 ~]# setenforce 0
[root@node1 ~]# getenforce
Permissive
编写kunernetens的yum文件
[kubernetes]
name=kubernetes
baseurl=https://mirrors.tuna.tsinghua.edu.cn/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=0
进行安装:
yum -y install epel-release
查看kubernetes中的版本号:
[root@master yum.repos.d]# yum --disablerepo="*" --enablerepo="kubernetes" list available --showduplicates
安装:
Kubelet:运行在cluster所有节点上,负责启动pod和容器
Kubectl:是kubenetes命令行工具,通过kubectl可以部署和管理应用,查看各种资源,创建,删除和更新组件。
Kubadm:用于初始化cluster
使用yum安装K8S:
yum -y install kubelet-1.18.0-0.x86_64 kubeadm-1.18.0-0.x86_64 kubectl-1.18.0-0.x86_64
添加TAB键:
[root@master yum.repos.d]# yum install bash-completion
[root@master yum.repos.d]# source <(kubeadm completion bash)
[root@master yum.repos.d]# source <(kubectl completion bash)
初始化集群:
systemctl enable docker && systemctl start docker
systemctl enable kubelet && systemctl start kubelet
[root@master ~]# kubeadm init --apiserver-advertise-address=192.168.204.141 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.0 --pod-network-cidr=10.244.0.0/16
初始化完成后:
[root@master ~]# mkdir -p $HOME/.kube
[root@master ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/config
[root@master ~]# export KUBECONFIG=/etc/kubernetes/admin.conf
下载一个yaml文件:
https://kubernetes.io/docs/concepts/cluster-administration/addons
将这个文件内容拷贝到节点中,执行这个文件
[root@master ~]# kubectl apply -f kubernetes.yml
将node节点加入master节点中
我们初始化集群中提示我们命令:
在node节点上执行:
[root@node1 ~]# kubeadm join 192.168.204.141:6443 --token mvonvy.wespl5c5fd4794dx \
--discovery-token-ca-cert-hash sha256:fed0e38d206a6b01c0b43a33b81dd7edb36ba5ce0d30e29341c1ae87285ec4f8
查看集群状态:
在master节点上查看集群:
[root@master ~]# kubectl get nodes
看到STATUS栏下是ready状态就可以了。