前提:centos能访问互联网html
安装docker-cenode
// 安装所需的包
yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
// 设置稳定的存储库
yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
// 安装最新版本
yum install docker-ce
// 启动docker服务
systemctl enable docker && systemctl start docker
一、禁用防火墙linux
systemctl stop firewalld
systemctl disable firewalldgit
二、禁用SELINUX和关闭swapgithub
setenforce 0docker
vi /etc/selinux/configshell
设置SELINUX=disabledcentos
swapoff -aapi
vi /etc/fstab
注释掉swap那行网络
三、设置路由
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl -p /etc/sysctl.d/k8s.conf
四、下载国内镜像到本地,并tag为k8s内镜像
docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/kube-apiserver-amd64:v1.10.0
docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/kube-scheduler-amd64:v1.10.0
docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/kube-controller-manager-amd64:v1.10.0
docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/kube-proxy-amd64:v1.10.0
docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/k8s-dns-kube-dns-amd64:1.14.8
docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/k8s-dns-dnsmasq-nanny-amd64:1.14.8
docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/k8s-dns-sidecar-amd64:1.14.8
docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/etcd-amd64:3.1.12
docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/flannel:v0.10.0-amd64
docker pull registry.cn-shenzhen.aliyuncs.com/cp_m/pause-amd64:3.1
docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/kube-apiserver-amd64:v1.10.0 k8s.gcr.io/kube-apiserver-amd64:v1.10.0
docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/kube-scheduler-amd64:v1.10.0 k8s.gcr.io/kube-scheduler-amd64:v1.10.0
docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/kube-controller-manager-amd64:v1.10.0 k8s.gcr.io/kube-controller-manager-amd64:v1.10.0
docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/kube-proxy-amd64:v1.10.0 k8s.gcr.io/kube-proxy-amd64:v1.10.0
docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/k8s-dns-kube-dns-amd64:1.14.8 k8s.gcr.io/k8s-dns-kube-dns-amd64:1.14.8
docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/k8s-dns-dnsmasq-nanny-amd64:1.14.8 k8s.gcr.io/k8s-dns-dnsmasq-nanny-amd64:1.14.8
docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/k8s-dns-sidecar-amd64:1.14.8 k8s.gcr.io/k8s-dns-sidecar-amd64:1.14.8
docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/etcd-amd64:3.1.12 k8s.gcr.io/etcd-amd64:3.1.12
docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/flannel:v0.10.0-amd64 quay.io/coreos/flannel:v0.10.0-amd64
docker tag registry.cn-shenzhen.aliyuncs.com/cp_m/pause-amd64:3.1 k8s.gcr.io/pause-amd64:3.1
五、设置k8s的国内源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
六、安装 kubelet、kubeadm、kubectl
yum makecache fast && yum install -y kubelet kubeadm kubectl
七、配置 kubelet
kubelet生成的配置文件将参数--cgroup-driver和docker的cgroup-driver必须一致
修改文件kubelet的配置文件/etc/systemd/system/kubelet.service.d/10-kubeadm.conf
将其中的KUBELET_CGROUP_ARGS参数更改为cgroupfs:
Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs"
Kubernetes从1.8开始要求关闭系统的 Swap ,能够经过 kubelet 的启动参数--fail-swap-on=false更改这个限制,在上面的配置文件中增长一项配置:
Environment="KUBELET_EXTRA_ARGS=--fail-swap-on=false"
最后,从新加载配置并启动kubelet
systemctl daemon-reload
systemctl enable kubelet && systemctl start kubelet
八、用kubeadm初始化
注意:若是是flannel网络--pod-network-cidr=10.244.0.0/16, 若是是Calico网络--pod-network-cidr=192.168.0.0/16
kubeadm init --kubernetes-version=v1.10.0 --pod-network-cidr=10.244.0.0/16
等待一段时间,若是出现下面信息,则表示初始化成功:
Your Kubernetes master has initialized successfully!
To start using your cluster, you need to run the following as a regular user:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/
You can now join any number of machines by running the following on each node
若是想要master也能够调度pod,则运行下面命令:
kubectl taint nodes --all node-role.kubernetes.io/master-
九、设置权限
要使kubectl适用于非root用户,请运行如下命令:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
或者,若是您是root用户,则能够运行:
export KUBECONFIG=/etc/kubernetes/admin.conf
十、安装flannel网络
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/v0.10.0/Documentation/kube-flannel.yml
十一、查看POD节点
kubectl get pods --all-namespaces
全部节点,状态都是Running,则表示安装成功
参考网址:https://www.cnblogs.com/cp-miao/p/8891200.html