flannel插件的yaml
链接: https://pan.baidu.com/s/1mWsbp5NHzGSRhX4c53mXfA
提取码: 7f0h
环境准备:
192.168.10.119 master
192.168.10.120 node1
192.168.10.121 node2
192.168.10.122 node3
192.168.10.123 node4
192.168.10.124 node5
192.168.10.125 node6
192.168.10.126 node7
以下操作每台机器都要做:
ssh-keygen -t rsa
ssh-copy-id ip地址做免密
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
setenforce 0 # 临时
关闭swap
swapoff -a # 临时
vim /etc/fstab # 永久
设置主机名
hostnamectl set-hostname <hostname>
在master添加hosts:
cat >> /etc/hosts << EOF
192.168.10.119 master
192.168.10.120 node1
192.168.10.121 node2
192.168.10.122 node3
192.168.10.123 node4
192.168.10.124 node5
192.168.10.125 node6
192.168.10.126 node7
EOF
将桥接的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 # 生效
时间同步:
yum install ntpdate -y
ntpdate time.windows.com
安装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 --now
docker --version
添加K8S 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
安装kubeadm,kubelet和kubectl
yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0
systemctl enable kubelet
master上的操作:
部署 K8S master
kubeadm config print init-defaults > kubeadm.yaml #生成初始化的文件
kubeadm,yaml内容如下:
apiVersion: kubeadm.k8s.io/v1beta2
bootstrapTokens:
- groups:
- system:bootstrappers:kubeadm:default-node-token
token: abcdef.0123456789abcdef
ttl: 24h0m0s
usages:
- signing
- authentication
kind: InitConfiguration
localAPIEndpoint:
advertiseAddress: 192.168.10.119
bindPort: 6443
nodeRegistration:
criSocket: /var/run/dockershim.sock
name: master
taints:
- effect: NoSchedule
key: node-role.kubernetes.io/master
---
apiServer:
timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns:
type: CoreDNS
etcd:
local:
dataDir: /var/lib/etcd
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
kind: ClusterConfiguration
kubernetesVersion: v1.18.0
networking:
dnsDomain: cluster.local
podSubnet: 10.202.0.0/16
serviceSubnet: 10.200.0.0/16
scheduler: {}
###修改advertiseAddress为本机地址
###imageRepository修改为国内的镜像源(registry.cn-hangzhou.aliyuncs.com/google_containers)或者网速好的话可以不修改
###指定podSubnet、serviceSubnet的地址段,注意不要和本机地址段冲突,否则coredns会报错无法启动
kubeadm init --config=kubeadm.yaml #执行初始化
使用kubectl命令
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
kubectl get nodes
部署完成后获取node加入集群的命令以及token:
kubeadm config print join-defaults > join-confog.yaml
join-confog.yaml内容如下:
apiVersion: kubeadm.k8s.io/v1beta2
caCertPath: /etc/kubernetes/pki/ca.crt
discovery:
bootstrapToken:
apiServerEndpoint: 192.168.10.119:6443
token: k2k7zt.7k8b7jls47eskkqu
unsafeSkipCAVerification: true
timeout: 5m0s
tlsBootstrapToken: k2k7zt.7k8b7jls47eskkqu
kind: JoinConfiguration
nodeRegistration:
criSocket: /var/run/dockershim.sock
name: node1
taints: null
###token修改为master初始化完成后获得的token
###tlsBootstrapToken这个同上
#####如果忘记token的话,使用kubeadm token create --print-join-command --ttl 0重新生成一个token
kubeadm join --config=join-confog.yaml
在node上修改/etc/profile文件,最下面加入以下这行:
export KUBECONFIG=/etc/kubernetes/kubelet.conf
source /etc/profile #让他生效
这样在node上就可以使用kubelet命令了
安装网络插件flannel
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
修改 kube-flannel.yml, pod范围要和之前kubeadm.yaml中匹配
kubectl apply -f kube-flannel.yml
至此安装结束!!!
————————————————————————————————————————
清理集群:
kubelet reser -f #master和node全部都要执行
清理残余的文件
modprobe -r ipip
lsmod
rm -rf ~/.kube/
rm -rf /etc/kubernetes/
rm -rf /etc/systemd/system/kubelet.service.d
rm -rf /etc/systemd/system/kubelet.service
rm -rf /usr/bin/kube*
rm -rf /etc/cni
rm -rf /opt/cni
rm -rf /var/lib/etcd
rm -rf /var/etcd
yum remove kube*
更新镜像:
yum clean all
yum -y update
yum makecache