部署说明
k8s新的版本与之前 1.5 的部署方式发生改变,官方将 kubernetes 大组件中的服务例如(kube-proxy、kube-api 等服务)剥离出来封装成容器的形式来简化部署的方式。以下为三个必装的服务:
kubelet :运行在 Cluster 所有节点上,主要负责启动 Pod 和容器。
kubeadm :用于初始化和引导 Cluster(是官方推出快速部署k8s集群,其本质是将k8s的相关服务容器化)
kubectl :是 Kubernetes 命令行工具与 api 交互。通过 kubectl 可以部署和管理应用,查看各种资源,创建、删除和更新各种组件
部署环境
角色 IP 服务
ka8-master 10.0.0.120 kubeadm-1.9.6-0,kubectl-1.9.6-0,docker-ce-17-03.0,kubelet-1.9.6-0
k8s-node 10.0.0.121 kubelet-1.9.6-0,
注意:两台机器的时间一定要一致,并且 docker-ce 的版本不能大于 17.03,docker 可以使用官方的源进行安装,安装的时候指定需要安装的版本,或者使用 rpm 包安装即可。
k8s需要用到的镜像已经打包好上传到云盘:
链接: https://pan.baidu.com/s/1CVuCwX3Fl-VcUxftXPEN1g 密码: 56a3
安装配置
系统环境:centos7.3
1、替换源,因为按照官方的方式在国内安装,会导致安装失败(被墙)
配置位置 Master node
1)配置准备
关闭 firewalld
systemctl stop firewalld
systemctl disable firewalld
1
2
关闭 swap
swapoff -a
sed -i ‘s/.swap./#&/’ /etc/fstab
1
2
关闭 selinux
setenforce 0
1
添加 kubernetes 源
cat:
cat < /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
1
2
3
4
5
6
7
8
9
10
11
2)安装 docker-ce 并导入镜像
配置位置 Master node
安装 docker-ce:
$rpm -ihv docker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm
$rpm -ivh docker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm
启动 docker-ce
$systemctl start docker
$systemctl enable docker
解压下载的镜像包:
$tar -jvxf k8s-1.9.6-images.tar.bz2
$cd k8s-1.9.6-images
导入所需要的镜像包:
$docker load <etcd-amd64_3.1.11.tar
$docker load < flannel_v0.10.0-amd64.tar
$docker load < k8s-dns-dnsmasq-nanny-amd64_v1.14.7.tar
$docker load < k8s-dns-kube-dns-amd64_1.14.7.tar
$docker load < k8s-dns-sidecar-amd64_1.14.7.tar
$docker load < kube-apiserver-amd64_v1.9.6.tar
$docker load < kube-controller-manager-amd64_v1.9.6.tar
$docker load < kube-proxy-amd64_v1.9.6.tar
$docker load < kubernetes-dashboard-amd64_v1.8.3.tar
$docker load < kube-scheduler-amd64_v1.9.6.tar
$docker load < pause-amd64_3.0.tar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
3)安装 k8s
配置位置 Master node
1、修改参数
修改内核两个参数(这两个是参数是防止应用部署在 centos 系统情况下由于 iptables 被绕过而导致的路由错误)
简单的说就是使流过网桥的流量也进入 iptables/netfilter 框架中:
cat < /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl –system
1
2
3
4
5
6
7
8
9
2、安装组件
yum install -y kubelet-1.9.6-0 kubectl-1.9.6-0 kubeadm-1.9.6-0
确保 kubelets 使用的 cgroup-driver 和 docker 使用的 cgroup-driver 一样:
sed -i “s/cgroup-driver=systemd/cgroup-driver=cgroupfs/g” /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
1
2
3
4
3、启动 kubelet 服务:
systemctl daemon-reload
systemctl start kubelet
systemctl enable kubelet
1
2
3
4)集群初始化:
配置位置 Master
kubeadm init –apiserver-advertise-address 192.168.100.135 –pod-network-cidr=10.244.0.0/16
–apiserver-advertise-address
1
2
指明用 Master 的哪个 interface 与 Cluster 的其他节点通信
–pod-network-cidr
指定 Pod 网络的范围 k8s 支持多种网络方案不同的网络方案对这个配置有不同的要求,这里设置为 10.244.0.0/16 是因为我们将使用 flanne 网络方案,所以设置成这个 CIDR。
5)root 用户还不能使用 kubelet 控制集群,需要配置下环境变量:
对于非 root 用户:
$mkdir -p $HOME/.kube
$cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$chown $(id -u):$(id -g) $HOME/.kube/config
对于 root 用户:
$echo “export KUBECONFIG=/etc/kubernetes/admin.conf” >> ~/.bash_profile
$source ~/.bash_profile
测试下:
$kubectl version
1
2
3
4
5
6
7
8
9
10
11
6)部署 pod 网络
配置位置 Master
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
Node 节点上执行如下加入:
kubeadm join –token 0428e2.35a3db294493bfdb 192.168.100.135:6443 –discovery-token-ca-cert-hash sha256:d598c1b5229bc1e3b118bed424a5f369cbbb61c03072dcd126f209ca7b5efbba
kubeadm token list
1
2
3
这里的 token 为我们在 maste 初始化时候给出的 token,若是忘记或者关闭了 master 窗口没记录下来可以在 master 上执行如下来获取 token 加入
7)kubernetes-dashboard 部署
配置位置 Master
给 master 主机设置一个 label 用来后面部署 dashborad 的时候指定部署到 master 主机上,防止部署到 node 节点上
kubectl label nodes k8s-master master=node1
1
用于部署 kubernetes-dashboard 的 yaml 文件也在刚刚下载的压缩包里面,所以一样进入 k8s-1.9.6-images 目录
kubectl create -f kubernetes-dashboard.yaml
1
注意:设置 label 是因为我修改了 kubernetes-dashboard.yaml,防止部署到 node 节点上去,到时候还得修改其他配置,麻烦
(-_-),压缩包中的该配置文件我已经改成如下,若不想(aojiao)设置 label 和上面的一样,需要自行修改。
访问测试:https://10.0.0.120:32666
作者:苦行僧 Alan
来源:CSDN
原文:https://blog.csdn.net/len9596/article/details/79977094
版权声明:本文为博主原创文章,转载请附上博文链接!