k8s搭建-详情

本文详细部署参考 :使用kubeadm安装Kubernetes 1.13

高可用k8s集群

Ha搭建详情

环境准备,每个节点都需要:

  centos7.5 4 、2G内存,cup个数>=2

  1、时间同步(ntp5.aliyun.com),chronyc sources(查看是否同步)

  2、主机名解析,互相免密登陆

  3、关闭防火墙(firewall,iptables)

              docker有些版本的filter 表,默认的FORWARD  链默认是 DROP ,需要修改
              iptables -t filter -P FORWARD ACCEPT (命令临时生效)

  4、禁用selinux 

setenforce 0
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

  5、禁用swap,/etc/fstable,  swapoff -a,swapof -s(查看)

  6、启用内核模块:

创建/etc/sysctl.d/k8s.conf文件,添加如下内容:
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1

另一个人的配置(
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.ip_forward = 1

执行命令使修改生效。

modprobe br_netfilter
sysctl -p /etc/sysctl.d/k8s.conf
 

  7、开启ipvs,执行脚本(K8S集群优化之路由转发:使用IPVS替代iptables。kube-proxy的ipvs模式解读

cat > /etc/sysconfig/modules/ipvs.modules <<EOF
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules && lsmod | grep -e ip_vs -e nf_conntrack_ipv4

  8、安装Docker

    使用阿里云的源docker-ce

  9、确认一下iptables filter表中FOWARD链的默认策略(pllicy)为ACCEPT。iptables -nvL

  10、安装kubeadm和kubelet,使用阿里云源

  11、拉取镜像

docker pull docker.io/fanever/k8scheduler
docker pull docker.io/fanever/k8proxy
docker pull docker.io/fanever/k8pause
docker pull docker.io/fanever/k8etcd
docker pull docker.io/fanever/k8coredns
docker pull docker.io/fanever/k8controller
docker pull docker.io/fanever/k8api

  打标签

docker tag docker.io/fanever/k8coredns k8s.gcr.io/coredns:1.3.1
docker tag docker.io/fanever/k8etcd k8s.gcr.io/etcd:3.3.10
docker tag docker.io/fanever/k8pause k8s.gcr.io/pause:3.1
docker tag docker.io/fanever/k8proxy k8s.gcr.io/kube-proxy:v1.14.1
docker tag docker.io/fanever/k8scheduler k8s.gcr.io/kube-scheduler:v1.14.1
docker tag docker.io/fanever/k8controller k8s.gcr.io/kube-controller-manager:v1.14.1
docker tag docker.io/fanever/k8api k8s.gcr.io/kube-apiserver:v1.14.1

  

11、使用kubeadm init初始化集群

    在各节点开机启动kubelet服务:systemctl enable kubelet.service

    在master上使用kubeadm初始化集群:

kubeadm init   --kubernetes-version=v1.14.0   --pod-network-cidr=10.244.0.0/16   --apiserver-advertise-address=192.168.61.11

 根据提示,创建配置文件,和pod网络,选择flannel

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

 需要的镜像是:quay.io/coreos/flannel:v0.11.0-amd64在kube-flannel.yml中查看,可以先pull,镜像站在https://quay.io/repository/coreos/flannel?tab=tags

测试环境:

1 master

3nodes

所需软件:

kubeadm(部署工具)

kubelet(管理pod)

docker

k8s中文官方文档:

  Kubernetes对Docker的版本支持列表

部署dashboard web图形界面

 wget https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

更改镜像,加上type 

kubectl apply -f kubernetes-dashboard.yaml      #kubectl delete  -f kubernetes-dashboard.yaml

743  kubectl create serviceaccount fang -n kube-system
  744  kubectl get serviceaccount
  745  kubectl get serviceaccount -a
  746  kubectl get serviceaccount -A
  748  kubectl create clusterrolebinding fang --clusterrole=cluster-admin --serviceaccount=kube-system:fang
  749  kubectl get secret -A
  750  kubectl describe secret fang-token-skvgq -n kube-system

原文地址:https://www.cnblogs.com/fanever/p/10632333.html