centos 7 k8s v1.7 v1.6 搭建记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos 7 k8s v1.7 v1.6 搭建记相关的知识,希望对你有一定的参考价值。
K8s V1.6 V1.7 部署
一、基础环境
1、主机名 IP hosts 配置
主机名 IP 系统
k8s.master 192.168.1.44 CentOS 7 64
k8s.node1 192.168.1.45 CentOS 7 64
k8s.node2 192.168.1.46 CentOS 7 64
K8s.node3 192.168.1.47 CentOS 7 64
二、基础软件环境
1、关闭防火墙
systemctl stop firewalld.service && systemctl disable firewalld.service
2、禁用SELinux
setenforce 0
sed -i.bak ‘s/SELINUX=enforcing/SELINUX=permissive/‘ /etc/selinux/config
三、安装K8s
1、设置yum 代理 过GFW(根据自己网络条件判断是否需要翻墙)
vim /etc/yum.conf添加下面内容
proxy=http://192.168.1.8:2345/pac (这是我局域网的代理地址,根据自己的修改)
2、配置yum源
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
3、在所有节点上安装以下软件包:
yum install -y docker kubelet kubeadm kubectl kubernetes-cni 默认会安装v1.7版本
我本次安装v1.6.2版本
执行下面命令可以查看所有可用版本
yum list kubeadm --showduplicates |sort -r
yum install -y docker kubelet-1.6.2 kubeadm-1.6.2 kubectl-1.6.2 kubernetes-cni
systemctl enable docker && systemctl start docker
systemctl enable kubelet && systemctl start kubelet
4、内核参数修改
sysctl net.bridge.bridge-nf-call-iptables=1
sysctl net.bridge.bridge-nf-call-ip6tables=1
sysctl -p
5、初始化master
kubeadm init --kubernetes-version=v1.6.2 --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=192.168.1.44
因为在该集群中将使用flannel搭建pod网络,因此必须添加–pod-network-cidr参数
可能是GFW的原因 kubeadm init 一直卡在下载镜像
解决卡顿问题
千辛万苦找到的谷歌镜像免费代理
用法:
docker pull gcr.mritd.me/google_containers/k8s-dns-dnsmasq:1.10.1
下面是1.6.2版本需要使用到的一些镜像,各个版本有所不同,V1.7 的可以查看安装后的配置文件
gcr.io/google_containers/kube-proxy-amd64:v1.6.2
gcr.io/google_containers/kube-apiserver-amd64:v1.6.2
gcr.io/google_containers/kube-controller-manager-amd64:v1.6.2
gcr.io/google_containers/kube-scheduler-amd64:v1.6.2
quay.io/coreos/flannel:v0.7.1-amd64
gcr.io/google_containers/kubernetes-dashboard-amd64:v1.6.0
gcr.io/google_containers/k8s-dns-sidecar-amd64:1.14.1
gcr.io/google_containers/k8s-dns-kube-dns-amd64:1.14.1
gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64:1.14.1
gcr.io/google_containers/etcd-amd64:3.0.17
gcr.io/google_containers/pause-amd64 :3.0
镜像pull完成后 执行 kubeadm reset 后重新初始化
初始化完成 记录重要的token,新机器加入集群是需要
kubeadm join --token c7c5d9.cf80372282..... 192.168.1.44:6443
温馨提示!下面是偷懒下载镜像的脚本
#!/usr/bin/env bash images=( heapster-s390x:v1.3.0 heapster-ppc64le:v1.3.0 heapster-arm64:v1.3.0 heapster-arm:v1.3.0 heapster-amd64:v1.3.0 ) for imageName in ${images[@]} ; do docker pull gcr.mritd.me/google_containers/$imageName docker tag gcr.mritd.me/google_containers/$imageName gcr.io/google_containers/$imageName docker rmi gcr.mritd.me/google_containers/$imageName done
6、根据提示执行下面的命令
sudo cp /etc/kubernetes/admin.conf $HOME/
sudo chown $(id -u):$(id -g) $HOME/admin.conf
export KUBECONFIG=$HOME/admin.conf
至此,基本的安装就完成了
三、配置和插件安装
1、安装Pod Network
kubectl create -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel-rbac.yml
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
使用kubectl get pod --all-namespaces -o wide确保所有的Pod都处于Running状态
2、Dashboard 插件安装
执行下面的命令安装插件
kubectl create -f dashboard-rbac.yaml
kubectl create -f kubernetes-dashboard.yaml
执行下面命令查看Dashboard端口
kubectl describe --namespace kube-system service kubernetes-dashboard
然后就可以载浏览器通过 http://IP:NodePort的方式访问了
下面为页面安装可视化仪表插件
3、Heapster 监控仪表盘安装
源码下载地址
https://github.com/kubernetes/heapster/releases
wget https://github.com/kubernetes/heapster/archive/v1.3.0.tar.gz
安装插件
tar -zxvf v1.3.0.tar.gz
cd heapster-1.3.0/deploy/kube-config/influxdb
kubectl create -f ./
上面同样的方式获取谷歌镜像,版本和插件得一一对应
gcr.io/google_containers/heapster-s390x:v1.3.0
gcr.io/google_containers/heapster-ppc64le:v1.3.0
gcr.io/google_containers/heapster-arm64:v1.3.0
gcr.io/google_containers/heapster-arm:v1.3.0
gcr.io/google_containers/heapster-amd64:v1.3.0
查看状态
kubectl get pod --all-namespaces -o wide
附件:
1、pull-images.sh(偷懒下载谷歌镜像)
2、dashboard-rbac.yaml
3、kubernetes-dashboard.yaml
本文出自 “leihuajun” 博客,请务必保留此出处http://leihuajun.blog.51cto.com/12248802/1947277
以上是关于centos 7 k8s v1.7 v1.6 搭建记的主要内容,如果未能解决你的问题,请参考以下文章
Influxdb-v0.11 集群搭建(docker+nginx+influxdb)