目录结构:
K8集群所需组件功能介绍:
coredns.tar #kubernetes的内部服务发现DNS服务器
etcd-amd64.tar #键值存储仓库,用于配置共享和服务发现
flannel-amd64.tar #容器间的跨主机通信
heapster-amd64.tar #器集群监控和性能分析cpu、内存、network、filesystem
heapster-grafana-amd64.tar #通过webUI展示heapster存储在influxdb的数据
heapster-influxdb-amd64.tar #存储heapster采集的各指标数据
kube-apiserver-amd64.tar #k8s的管理接口负责认证授权、数据校验以及集群状态变更等
kube-controller-manager-amd64.tar #集群管理控制器负责保证集群中各种资源处于期望状态,状态不正常时触发对应的调度操作
kube-proxy-amd64.tar #代理转发暴漏集群内部容器提供的服务
kubernetes-dashboard-amd64.tar #提供友好的K8s的dashboardWEBUI面板
kube-scheduler-amd64.tar #k8s调度器,容器的启动、迁移、扩容缩减,节点调度选择
pause-amd64.tar #为pod里的容器提供network namespace和父进程,相当于所有pod里面的容器的父容器
cni-plugins-amd64-v0.7.1.tgz #容器平台提供网络的标准化,通过相同的接口调用不同的网络组件(flannel.calico)等
kubelet-1.10.2-0.x86_64.rpm #处理Master节点下发到本节点的任务,管理Pod和其中的容器,定期向Master汇报节点资源使用情况,是Node上的pod管家
kubectl-1.10.2-0.x86_64.rpm #kubectl 是 Kubernetes 自带的客户端,可以用它来直接操作Kubernetes
安装步骤如下:
1:初始化环境
##关闭selinux和防火墙
sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config
setenforce 0
systemctl stop firewalld && systemctl disable firewalld
##修改内核参数
echo 1 > /proc/sys/net/ipv4/ip_forward #开启ipv4转发
echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables # bridge模式开启
echo 1 > /proc/sys/net/bridge/bridge-nf-call-ip6tables
sysctl -p
##关闭系统Swap
swapoff -a
sed -i /swap/s\/^\/#\/g /etc/fstab
2、安装kubelet kubeadm kubectl和cni
cd ywr/rpm
mkdir -p /opt/cni/bin
tar -xf cni-plugins-amd64-v0.7.1.tgz -C /opt/cni/bin/
rpm -ivh ./*.rpm --nodeps --force
3、镜像准备(离线方式)
cd ywr/images
for i in `ls .`;do docker load -i $i;done
4、初始化kubelet启动配置参数
sed -i 's/systemd/cgroupfs/g' /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
systemctl daemon-reload
systemctl start kubelet.service
5、初始化集群
Kubeadm init --kubernetes-version=v1.10.2 --pod-network-cidr=10.244.0.0/16 --feature-gates=CoreDNS=true
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
##配置初始化flannel网络
kubectl create -f ywr/yaml/flannel/kube-flannel.yml
6、安装dashboard
kubectl create -f ywr/yaml/dashboard/kubernetes-dashboard.yaml
kubectl create -f ywr/yaml/dashboard/kubernetes-dashboard-admin.rbac.yaml
nohup kubectl proxy --address=masterip --port=8086 --accept-hosts=^*$ 2>&1 &
测试访问dashboard
http://ip:8086/api/v1/namespaces/kube-system/services/https:kubernetes-dashboard:/proxy
7、安装heaspster,grafana.influxdb监控组件
cd ywr/yaml/heapster/
kubectl create -f grafana.yaml -f heapster.yaml -f influxdb.yaml -f heapster-rbac.yaml
测试访问grafana
http://ip:8086/api/v1/proxy/namespaces/kube-system/services/monitoring-grafana