k8s摸索之kubeadm快速部署

一、虚拟机配置

1、在WMware里装上3台虚拟机,CentOS7最小化系统,配置好独立IP,截图如下:

 

 

 

 

 2、修改虚拟机网卡配置,然后启动网卡,再查看ip已经固定

#vi /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPROTO=static
ONBOOT=yes
NM_CONTROLLED=yes
IPADDR=192.168.126.100
NETMASK=255.255.255.0
GATEWAY=192.168.126.2
DNS1=114.114.114.119
DNS2=114.114.115.119

#启动网卡
ifup ens33
#关闭网卡
ifdown ens33

 

 

 二、集群部署

以下均需在所以节点上配置

1、关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

2、关闭selinux

sed -i 's/enforcing/disabled/' /etc/selinux/config 
setenforce 0

3、关闭swap

swapoff -a # 临时关闭
sed -ri 's/.*swap.*/#&/' /etc/fstab  #永久关闭

4、修改主机名字和配置hosts

#修改主机名字
hostnamectl set-hostname 名字

#vi /etc/hosts

192.168.126.100 k8s-master
192.168.126.101 k8s-node1
192.168.126.102 k8s-node2

5、将桥接的IPv4流量传递到iptables的链

cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

sysctl --system

6、安装docker,https://docs.docker.com/engine/install/centos/

7、安装kubeadm,kubelet和kubectl

yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0

systemctl enable kubelet #设置开机自启

8、部署master,在master上操作,首先查看kubeadm初始化需要的镜像版本,由于访问不了谷歌的镜像需要改会国内的

# 查看镜像版本
kubeadm config images list

方法1:此时可以一个一个下载需要的镜像,再用docker tag命令改成对应的名称,或者用下面shell脚本:

#!/bin/bash

set -e

KUBE_VERSION=v1.18.6
KUBE_PAUSE_VERSION=3.2
ETCD_VERSION=3.4.3-0
CORE_DNS_VERSION=1.6.7

GCR_URL=k8s.gcr.io
ALIYUN_URL=registry.cn-hangzhou.aliyuncs.com/google_containers

images=(kube-proxy:${KUBE_VERSION}
kube-scheduler:${KUBE_VERSION}
kube-controller-manager:${KUBE_VERSION}
kube-apiserver:${KUBE_VERSION}
pause:${KUBE_PAUSE_VERSION}
etcd:${ETCD_VERSION}
coredns:${CORE_DNS_VERSION})

for imageName in ${images[@]} ; do
  docker pull $ALIYUN_URL/$imageName
  docker tag  $ALIYUN_URL/$imageName $GCR_URL/$imageName
  docker rmi $ALIYUN_URL/$imageName
done

然后发现阿里云镜像没有那么高版本镜像,干脆把kubelet、kubectl、kubeadm降低版本

yum remove kubelet kubeadm kubectl
yum install -y kubelet-1.15.0 kubeadm-1.15.0 kubectl-1.15.0

再从8开始

方法2:初始化的时候改镜像源

9、初始化

kubeadm init \
--apiserver-advertise-address=192.168.126.100 \
--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

 

 

 10、配置kubectl,直接按照第一个框内的内容来,为了使用便捷,启用 kubectl 命令的自动补全功能

echo "source <(kubectl completion bash)" >> ~/.bashrc

11、安装pod网络插件,可按中文文档来

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

12、查看节点状态

kubectl get nodes        #查看所有节点
kubectl get pod --all-namespaces     #查看所有命名空间的pod
kubectl describe pod [pod名称] --namespace=kube-system  #查看pod没准备好的原因

12、加入node就按第二个红框的内容,注意安装pod网络

13、查看pod和服务,只看到集群服务在跑

kubectl get pod,svc    #svc是service的缩写

14、创建一个nginx pod容器并对外暴露端口,再查看pod和服务

kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort

 

 等到nginx准备好了访问三个node节点的ip:30567就发现都可以访问nginx服务了

 

posted @ 2020-07-24 18:53  zhyemmmm  阅读(305)  评论(0编辑  收藏  举报