前置配置 新装机器 需配置
使用kubeamd 方式搭建k8s集群
1.关闭防火墙
systemctl stop firewalld.service
systemctl disable firewalld.service
2.修改selinux
setenforce 0 临时
sed -i 's/enforcing/disabled/' /etc/sysconfig/selinux ##修改配置文件
3关闭 swap
swapoff -a 临时
vim /etc/fstab 永久
sed -i '/swap/d' /etc/fstab 删除配置文件 swap 字样的
sed -ri 's/."swap."/#&' /etc/fstab 删除永久
sed -ri 's/.*swap.*/#&/' /etc/fstab 注释永久
4修改主机名
hostname set-homename <主机名>
hostnamectl set-hostname master
hostnamectl set-hostname node1
5.##在master添加hosts
cat >> /etc/hosts << EOF
192.168.1.135 master
192.168.1.136 node1
192.156.1.137 node2
192.168.1.137 node3
EOF
6。所有机器创建 (master 和 node 节点 添加) vim /etc/sysctl.d/k8s.conf文件,添加如下内容
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system ###刷新生效
echo 1 > /proc/sys/net/ipv4/ip_forward 路由转发 将0 修改为1
cat /proc/sys/net/ipv4/ip_forward
7.master、 node1 node2 node3 机器 安装 时间服务器
yum -y install ntpdate -y
ntpdate time.windows.com 时间同步
时区不对 需要通过命令来更换时区现在要来改时区了
export TZ='Asia/Shanghai' 更改未上海时间。
3.所有节点(master、dode)安装 docker /kubeadm /kubelet
3.1.下载docker 源和安装docker
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce-18.06.1.ce-3.el7
systemctl enable docker && systemctl start docker
docker --version
cat > /etc/docker/daemo.json << EOF
{
"registry-mirrors": ["https;//b9pmyelo.mirror.aliyuncs.com"]
}
EOF
systemctl restart docker 全部重启docker
3.2添加阿里云 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=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
3.3 安装 kubeadm\kubelet 和 kubectl
下载指定版本
yum -y install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
systemctl enable kubelet
4.部署Kubernetes Master
初始化集群
kubeadm init --apiserver-advertise-address=0.0.0.0 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.18.0 --service-cidr=10.96.0.0/12
执行反馈的这段信息,详细最好复制反馈信息
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
1.kubectl get nodes ##查看node节点状态
显示只有 master 节点 没有显示 node节点,因为还没有添加node节点。
2.在node 节点上 添加
“kubeadm join 192.168.231.143:6443 --token omitz7.1tq8fart8mqndlb5 \
--discovery-token-ca-cert-hash sha256:6d21a059d80681564e5e2a9907539fab6bb555e624bbedf990911399131182ae”
#####因每次安装标识码都不一样 需复制此前master ###
-
添加后 kubectl get nodes 查询
[root@master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master NotReady master 13m v1.18.0
node1 NotReady <none> 3m13s v1.18.0
node2 NotReady <none> 3m8s v1.18.0
node3 NotReady <none> 3m6s v1.18.0
PS 默认token 有效时间为24小时 当过期后 该token就不可用,此时需要重新创建token 操作如下
kubeadm token create --print-join-command
5、部署CNI网络插件
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flaannel.yml
部署网络插件
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
查看插件安装后 节点使用状态
kubectl get pods -n kube-system
6、测试kubernetes 集群
在kubernetes 集群创建一个pod 验证是否正常运行
kubectl create deployment nginx --image=nginx #####创建nginx pod 节点
kubectl expose deployment nginx --port=88 --type=NodePort --target-port=80 --name=nginx-service ###对于外暴露端口
kubectl expose deployment tomcat --port=80 --type=NodePort
kubectl expose rc nginx --port=80 --target-port=8000
kubectl get pod,svc
创建完成后可使用 nodeip 显示反馈暴露端口通过测试访问 nginx 页面。