kubeadm 安装 kubernetes 1.4.6
- 准备
- 安装docker
- 下载镜像
- 安装kubernetes
- 安装kubernetes-dashbord
准备
机器名 | ip |
---|---|
centos7-kubermaster | 192.168.10.130 |
centos7-kuber146node1 | 192.168.10.131 |
centos7-kuber146node2 | 192.168.10.132 |
master 和node的修改hosts 文件
192.168.10.130 centos7-kubermaster
192.168.10.131 centos7-kuber146node1
192.168.10.132 centos7-kuber146node2
或者
hostnamectl --static set-hostname <hostname>
安装DOCKER
详细安装方法参照官网文档
传送门docker安
下载镜像
因为伟大GWF的原因,要想直接安装成功是不可能的。因为gcr.io/google_containers 下的镜像不可访问。
于是这里要借助github + docker hub的方式来解决镜像问题。通过github 编写dockerfile,然后通过docker hub 的自动构建任务来获取gcr.io/google_containers中的镜像,然后本地在从docker hub 下载镜像。
首先要有一个github 的repo,可以直接从我准备好的repo fork 传送门
然后进入docker hub
1 创建自动构建工程
2 选择github 方式
3 选中自己的github repo
4 设置build setting
5 点击trigger build 项目,查看build结果
6 本地拉去镜像
docker pull yudar1024/docker-library:etcd-amd64-2.2.5
7 将本地yudar1024/docker-library:etcd-amd64-2.2.5 镜像 打成google的镜像
docker tag yudar1024/docker-library:etcd-amd64-2.2.5 gcr.io/google_containers/etcd-amd64:2.2.5
docker rmi yudar1024/docker-library:etcd-amd64-2.2.5
安装kubernetes
安装kubelet(所有节点,包括master 和node)
# cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://yum.kubernetes.io/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
# setenforce 0
yum install -y kubelet kubeadm kubectl kubernetes-cni
systemctl enable kubelet && systemctl start kubelet
安装master
kubeadm init --api-advertise-addresses=192.168.10.130 --use-kubernetes-version v1.4.6
记录token
kubeadm join --token=2f16a0.0daacdab5df146df 192.168.10.130
安装node,在所有node 执行
kubeadm join --token=2f16a0.0daacdab5df146df 192.168.10.130
查看集群状态
[root@centos7-kubermaster ~]# kubectl get nodes
NAME STATUS AGE
centos7-kuber146node1 Ready 2h
centos7-kuber146node2 Ready 2h
centos7-kubermaster Ready 2h
安装pod network ( add-on)
下载weave yaml 文件
curl -O https://git.io/weave-kube
打开刚刚下载的weave-daemonset.yaml,找到image元素,可以看到需要如下两个镜像
image: weaveworks/weave-kube:1.8.1
weaveworks/weave-npc:1.8.1
安装网络
docker pull weaveworks/weave-kube:1.8.1
docker pull weaveworks/weave-npc:1.8.1
kubectl apply -f https://git.io/weave-kube
查看结果
[root@centos7-kubermaster ~]# kubectl get pods --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system dummy-2088944543-0v299 1/1 Running 0 2h
kube-system etcd-centos7-kubermaster 1/1 Running 0 2h
kube-system kube-apiserver-centos7-kubermaster 1/1 Running 0 2h
kube-system kube-controller-manager-centos7-kubermaster 1/1 Running 0 2h
kube-system kube-discovery-1150918428-eclmt 1/1 Running 0 2h
kube-system kube-dns-654381707-l2pu6 3/3 Running 0 2h
kube-system kube-proxy-5wyav 1/1 Running 0 2h
kube-system kube-proxy-dwjbj 1/1 Running 0 2h
kube-system kube-proxy-igp1e 1/1 Running 0 2h
kube-system kube-scheduler-centos7-kubermaster 1/1 Running 0 2h
kube-system kubernetes-dashboard-3109394916-msusa 1/1 Running 0 2h
kube-system weave-net-7yj7g 2/2 Running 0 2h
kube-system weave-net-cdf66 2/2 Running 0 2h
kube-system weave-net-wgx8g 2/2 Running 0 2h
### 推送配置到集群
# 备份master节点的 @R_301_382@
/etc/kubernetes/admin.conf
#保存至 其他电脑,通过执行@R_301_382@控制集群
kubectl --kubeconfig ./admin.conf get nodes
安装dashbord
#下载 yaml 文件,直接导入会去官方拉取images
curl -O https://rawgit.com/kubernetes/dashboard/master/src/deploy/kubernetes-dashboard.yaml
#编辑 yaml 文件
vi kubernetes-dashboard.yaml
#grc 的镜像都需要预先通过 dockerhub 中转拉取
image: gcr.io/google_containers/kubernetes-dashboard-amd64:v1.4.0
修改为
image: gcr.io/google_containers/kubernetes-dashboard-amd64:v1.4.2
imagePullPolicy: Always
修改为
imagePullPolicy: IfNotPresent
#执行如下命令
kubectl create -f ./kubernetes-dashboard.yaml
# 查看 NodePort ,既外网访问端口
kubectl describe svc kubernetes-dashboard --namespace=kube-system
Port: <unset> 80/TCP
NodePort: <unset> 30451/TCP
浏览器访问 http://192.168.10.130:30451
完成
原创文章,转载请保留出处