kubernetes部署(v1.6)(一)

参考链接:http://www.jianshu.com/p/02dc13d2f651

最近在尝试部署K8S,使用的是kubeadm,docker,以及flannel 

master端:

1.docker安装(安装版本:Docker version 1.12.6)

yum install -y docker

systemctl  enable docker && systemctl start docker

2.配置docker加速器(使用的是原文作者的提供的阿里云链接)

# 输入内容 tee /etc/docker/daemon.json <<-'EOF'
{ "registry-mirrors": ["https://x2j0t6lh.mirror.aliyuncs.com"] } EOF
 
# 保存配置文件, 并重启服务
systemctl daemon-reload && systemctl restart docker
 
3. 安装kubernete相关(使用的原文作者提供的私人源链接)
tee /etc/yum.repos.d/magina-k8s.repo << EOF
[magina-k8s] name=Magina K8s Repository
baseurl=https://cdn.yinnote.com/centos7/magina-k8s enabled=1
gpgcheck=0
gpgkey=https://cdn.yinnote.com/keys/rpm.public.key
EOF
4.
# 刷新cache yum makecache
# 安装 (同时会安装依赖socat和kubernetes-cni) yum install -y kubelet-1.5.3 kubectl-1.5.3 kubeadm-1.6.0
# 加入开机启动并启动kubelet (这里要先启动, 会报错, 但是也要启动)
systemctl enable kubelet && systemctl start kubelet
 
5.下载相关镜像(这一部,原生使用的事google源,但是国内的网络是不通的,感谢原作者提供的镜像源)

# 创建镜像下载脚本
cd /opt
vi k8s-docker-images.sh

#############################################
# 添加需要的镜像
images=(
pause-amd64:3.0
kube-proxy-amd64:v1.5.3
kube-scheduler-amd64:v1.5.3
kube-controller-manager-amd64:v1.5.3
kube-apiserver-amd64:v1.5.3
etcd-amd64:3.0.14-kubeadm
kube-discovery-amd64:1.0

kubedns-amd64:1.9
kube-dnsmasq-amd64:1.4
exechealthz-amd64:1.2
dnsmasq-metrics-amd64:1.0
)

for imageName in ${images[@]} ; do
docker pull registry.cn-hangzhou.aliyuncs.com/magina-k8s/$imageName
docker tag registry.cn-hangzhou.aliyuncs.com/magina-k8s/$imageName gcr.io/google_containers/$imageName
docker rmi registry.cn-hangzhou.aliyuncs.com/magina-k8s/$imageName
done
#############################################

# 执行脚本
bash k8s-docker-images.sh

 

6.启动镜像之前需要调整下配置文件,因为kubelet与docker的文件驱动方式不同,一个是cgroupfs ,一个是systemd

修改kubelet的文件驱动方式:

vim /etc/systemd/system/kubelet.service.d/

同时需要修改系统关于网桥的配置:

# 创建文件
vi /etc/sysctl.d/k8s.conf

# 添加如下内容
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1

# 使配置生效
sysctl -p /etc/sysctl.d/k8s.conf

之后需要重启kubelet

systemctl daemon-reload
systemctl restart kubelet

检查下ps -e|grep kub ,kubulet是否真的启动,若没启动,则在初始化的时候会卡死

初始化:

kubeadm init --kubernetes-version v1.6.1 --pod-network-cidr 10.244.0.0/16 --apiserver-advertise-address 10.75.134.78

如果之前没有出什么错的话,初始化的过程会比较迅速,如果过了很长时间没有反应,说明配置是有问题的,一个kublet,另外一个可能引起的是防火墙没有关闭。

初始化完成后,会显示带1条token的例子,也可以使用以下命令显示:

kubeadm token list

TOKEN

默认情况下, master节点是不会调度pod, 也就是说, 只有一台主机的情况下, 我们无法启动pod, 但有的时候我们的确只有一台机器, 这个时候可以执行命令, 允许master调度pod(这个命令和1.5.x版本不一样)

kubectl taint nodes --all node-role.kubernetes.io/master-

kubectl 命令

这个命令是我们经常使用的, 几乎所有的k8s相关操作都需要, 但当我们集群安装好后, 发现这个命令会报错, 这里我直接给出解决方案

# 如果不想每次都带上参数, 可以配置环境变量
vi /etc/profile
# 底部添加
export KUBECONFIG=/etc/kubernetes/admin.conf
# 使之生效
source /etc/profile

posted @ 2017-11-15 17:43  懵懂的青年  Views(319)  Comments(0)    收藏  举报