centos7 、kubeadm 安装kubernetes 1.9

1     环境

1.1      软件环境

名称

版本

操作系统

CentOS Linux release 7.3.1611 (Core)

内核

3.10.0-514.el7.x86_64

kubernetes

1.9

docker

17.03

kubeadm

v1.9.0

kube-apiserver

v1.9.0

kube-controller-manager

v1.9.0

kube-scheduler

v1.9.0

k8s-dns-sidecar

1.14.7

k8s-dns-kube-dns

1.14.7

k8s-dns-dnsmasq-nanny

1.14.7

kube-proxy

v1.9.0

etcd

3.1.10

pause

3.0

flannel

v0.9.1

kubernetes-dashboard

v1.8.1

1.2      硬件环境

主机名

IP

配置

k8s-master

192.168.32.132

2核2G

k8s-node1

192.168.32.129

2核2G

k8s-node2

192.168.32.130

2核2G

2     环境预配置

设置主机名:

hostnamectl--static set-hostname  k8s-master

hostnamectl--static set-hostname  k8s-node1

hostnamectl--static set-hostname  k8s-node2

 

关闭防火墙:

systemctldisable firewalld.service

systemctlstop firewalld.service

 

关闭selinux:

sed -i's/SELINUX=enforcing/SELINUX=disabled/g' /etc/ /config

grepSELINUX=disabled /etc/selinux/config

setenforce 0

 

关闭swap:

swapoff -a

 

配置系统路由参数,防止kubeadm报路由警告:

echo "

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

" >> /etc/sysctl.conf

sysctl –p

 

导入镜像:

cd /usr/local/k8s/k8s_images/docker_images/

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.0.tar

docker load < kube-controller-manager-amd64_v1.9.0.tar
docker load < kube-scheduler-amd64_v1.9.0.tar

docker load < flannel:v0.9.1-amd64.tar

docker load < pause-amd64_3.0.tar

docker load < kube-proxy-amd64_v1.9.0.tar

docker load < kubernetes-dashboard_v1.8.1.tar

docker load < etcd-amd64_v3.1.10.tar

 

3     安装k8s

下载离线安装包,并解压:

tar -xjvfk8s_images.tar.bz2

3.1      安装docker

安装docker-ce17.03(kubeadmv1.9最大支持docker-ce17.03)

rpm -ihvdocker-ce-selinux-17.03.2.ce-1.el7.centos.noarch.rpm

rpm -ivhdocker-ce-17.03.2.ce-1.el7.centos.x86_64.rpm

修改docker的镜像源为国内的daocloud

curl -sSLhttps://get.daocloud.io/daotools/set_mirror.sh | sh -shttp://a58c8480.m.daocloud.io

安装docker1.12.6及版本需要设置cgroup-driver=cgroupfs,因为kubelet默认的cgroupdriverdocker的不一样,docker默认的cgroupfskubelet默认为systemd

sed -i's/cgroup-driver=systemd/cgroup-driver=cgroupfs/g'/etc/systemd/system/kubelet.service.d/10-kubeadm.conf

或者修改10-kubeadm.conf文件中的--cgroup-driver=cgroupfs"

vi/etc/systemd/system/kubelet.service.d/10-kubeadm.conf

启动docker-ce

systemctl start docker&& systemctl enable docker

3.2      安装kubelet、kubeadm、kubectl包

rpm -ivh socat-1.7.3.2-2.el7.x86_64.rpm

rpm -ivh kubernetes-cni-0.6.0-0.x86_64.rpm

rpm -ivh kubelet-1.9.9-9.x86_64.rpm

rpm -ivh kubectl-1.9.0-0.x86_64.rpm

rpm -ivh kubeadm-1.9.0-0.x86_64.rpm

3.3      master节点操作

启动kubelete:

systemctl enable kubelet&& sudo systemctl start kubelet

开始初始化master:

kubeadm init--kubernetes-version=v1.9.0 --pod-network-cidr=10.244.0.0/16

kubernetes默认支持多重网络插件如flannel、weave、calico,这里使用flannel,就必须要设置--pod-network-cidr参数,10.244.0.0/16是kube-flannel.yml里面配置的默认网段,如果需要修改的话,需要把kubeadm init的--pod-network-cidr参数和后面的kube-flannel.yml里面修改成一样的网段就可以了。

如果需要重复执行,则执行:

kubeadmreset

kubeadmjoin xxx保存下来,等下node节点需要使用如果忘记了,可以在master上通过kubeadmin token list得到。

### 注意:kubeadm init 输出的 join 指令中 token 只有 24h 的有效期,如果过期后,需要重新生成,具体请参考:

[root@tvm-00 ~]#kubeadm token create --print-join-command kubeadm join --tokenbe00f1.f2ef09da1dd56308 192.168.32.132:6443 --discovery-token-ca-cert-hashsha256:5b8ab8d5ec008400192594af0d68396707d20bc01c35ce44503257d69cdbd504

按照上面提示,此时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用户

export KUBECONFIG=/etc/kubernetes/admin.conf

也可以直接放到~/.bash_profile

echo "exportKUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile

source一下环境变量

source ~/.bash_profile

kubectl version测试:

3.4      安装网络

可以使用flannel、calico、weave、macvlan这里我们用flannel。

下载此文件

wgethttps://raw.githubusercontent.com/coreos/flannel/v0.9.1/Documentation/kube-flannel.yml

或直接使用离线包里面的。

若要修改网段,需要kubeadm --pod-network-cidr=和这里同步:

vim kube-flannel.yml

修改network项

"Network": "10.244.0.0/16",

执行

kubectlcreate -f kube-flannel.yml

3.5      node节点操作

使用刚刚kubeadm后的kubeadm join --xxx

kubeadm join--token be00f1.f2ef09da1dd56308 192.168.32.132:6443--discovery-token-ca-cert-hashsha256:5b8ab8d5ec008400192594af0d68396707d20bc01c35ce44503257d69cdbd504

3.6    验证

执行kubectl get nodes

你可能感兴趣的:(kubernetes)