
systemctl stop firewalld 临时关闭防火墙 systemctl disable firewalld 禁止开机启动防火墙
sed -i 's/enforcing/disabled/' /etc/selinux/config
[root@k8s-master ~]# swapoff -a 禁掉所有交换分区 [root@k8s-master ~]# vim /etc/fstab 注释掉,不然重启swap分区又会被激活
cat >> /etc/hosts << EOF 192.168.87.128 k8s-master 192.168.87.127 k8s-node1 192.168.87.126 k8s-node2 EOF
cat > /etc/sysctl.d/k8s.conf << EOF net.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system # 生效
yum install ntpdate -y ntpdate time.windows.com
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/daemon.json << EOF
{
"registry-mirrors": ["https://30nyszb4.mirror.aliyuncs.com"],
"exec-opts": ["native.cgroupdriver=systemd"], 将cgroups改成systemd机制
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2"
}
EOF
systemctl restart docker 重启docker服务
docker info 查看配置 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
yum install -y kubelet-1.17.3 kubectl-1.17.3 kubeadm-1.17.3 (指定兼容的版本---依据你的docker版本来配置,若安装Rancher,则依据Rancher版本来配置) systemctl enable kubelet
kubeadm init --apiserver-advertise-address=自己master节点的ip --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.17.3(自己想要安装的版本,必须和上面安装的kubectl版本是一致的) --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16 如果初始化话失败,则 kubectl reset 重置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 查看是否启动 如果报The connection to the server localhost:8080 was refused - did you specify the right host or port? 则配置环境变量 export KUBECONFIG=/etc/kubernetes/kubelet.conf
安装pod网络插件
kubectl apply -f https://warehouse-lxf.gitee.io/develop/config/kube-flannel.yml 或者 kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml 如果不行,就 wget kube-flannel.yml 再 kubectl apply -f kube-flannel.yml
执行以下指令,加入集群 kubeadm join 192.168.87.128:6443 --token pbcvxr.jmkts88d2v2jmdj2 --discovery-token-ca-cert-hash sha256:9fc32c0acd3c7fd220b200380da2aef356cd0095750cecc6f2ab38507f2cd4f2 初始化主(master)节点时返回的kubeadm join 192.168.87.128:6443 --token ... 如果忘记复制保存,则在master主节点中执行: kubeadm token create --print-join-command 查看加入集群的指令
kubectl top node 如果报错: Error from server (NotFound): the server could not find the requested resource (get services http:heapster:) 问题分析: Heapster是容器集群监控和性能分析工具,HPA、Dashborad、Kubectl top都依赖于heapster收集的数据。 但是Heapster从kubernetes 1.8以后已经被遗弃了… 被metrics-server所替代…那么就部署一下Heapster吧 解决问题,执行: kubectl apply -f https://warehouse-lxf.gitee.io/develop/config/heapster-clusterrole.yaml kubectl apply -f https://warehouse-lxf.gitee.io/develop/config/heapster.yaml