通过kubeadm安装kubernetes的教程:
1: 首先在每台机器上安装: docker(1.12), kubeadm(1.6), kubectl, kubelet, kubernetes-cni
apt-get update && apt-get install -y apt-transport-https
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -

cat <<EOF >/etc/apt/sources.list.d/kubernetes.list   
deb http://apt.kubernetes.io/ kubernetes-xenial main #将kubernetes的源加入到当前的source list中
EOF

apt-get update
# Install docker if you don't have it already.
apt-get install -y docker-engine
apt-get install -y kubelet kubeadm kubectl kubernetes-cni
~~~~~~~~~~~~~~~~~~~~~~~~
其中docker install 安装注意事项:
https://docs.docker.com/engine/installation/linux/ubuntu/#install-using-the-repository
由于通过k8s管理containers,只需要有docker-engine部分就可以了,其它的并不需要,因此:
有两个命令可以查看当前可以安装的docker-ce版本和docker-engine版本:
apt-cache policy docker-engine
apt-cache madison docker-ce
~~~~~~~~~~~~~~~~~~~~~~~~~

2: 然后在master节点上:
kubeadm init
第一次执行等待时间比较长,卡在(Created API client, waiting for the control plane to become ready)
解决办法:kubeadm reset -> kubeadm init

当出现:
renjingui@renjg-HP-Compaq-Pro-6380-MT:~$ sudo kubeadm init
[kubeadm] WARNING: kubeadm is in beta, please do not use it for production clusters.
[init] Using Kubernetes version: v1.6.2
[init] Using Authorization mode: RBAC
[preflight] Running pre-flight checks
[preflight] Starting the kubelet service
[certificates] Generated CA certificate and key.
[certificates] Generated API server certificate and key.
[certificates] API Server serving cert is signed for DNS names [renjg-HP-Compaq-Pro-6380-MT kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [10.96.0.1 109.123.123.6]
[certificates] Generated API server kubelet client certificate and key.
[certificates] Generated service account token signing key and public key.
[certificates] Generated front-proxy CA certificate and key.
[certificates] Generated front-proxy client certificate and key.
[certificates] Valid certificates and keys now exist in "/etc/kubernetes/pki"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/controller-manager.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/scheduler.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/admin.conf"
[kubeconfig] Wrote KubeConfig file to disk: "/etc/kubernetes/kubelet.conf"
[apiclient] Created API client, waiting for the control plane to become ready
[apiclient] All control plane components are healthy after 16.520114 seconds
[apiclient] Waiting for at least one node to register
[apiclient] First node has registered after 4.010585 seconds
[token] Using token: d9961d.36bce67db0c5bd3b
[apiconfig] Created RBAC rules
[addons] Created essential addon: kube-proxy
[addons] Created essential addon: kube-dns

Your Kubernetes master has initialized successfully!

To start using your cluster, you need to run (as a regular user):

sudo cp /etc/kubernetes/admin.conf $HOME/
  sudo chown $(id -u):$(id -g) $HOME/admin.conf
  export KUBECONFIG=$HOME/admin.conf

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  http://kubernetes.io/docs/admin/addons/

You can now join any number of machines by running the following on each node
as root:

kubeadm join --token d9961d.36bce67db0c5bd3b 109.123.123.6:6443
就说明init成功了。

通过: kubectl taint nodes --all node-role.kubernetes.io/master- 可以将一个master节点映射为一个node节点

通过 kubectl get nodes 可以查看当前节点情况。

3: 配置网络环境。
由于机器的硬件环境不同,所以要采用通用的网络组件,Flannel 和 Weave Net,前面一种没有成功,原因:dns docker container启动不了
后面一种配置方法:
kubectl apply -f https://git.io/weave-kube-1.6

可以查看所有的namespace的信息:
renjingui@renjg-HP-Compaq-Pro-6380-MT:~$ kubectl get pods --all-namespaces
NAMESPACE     NAME                                                  READY     STATUS    RESTARTS   AGE
kube-system   etcd-renjg-hp-compaq-pro-6380-mt                      1/1       Running   0          6m
kube-system   kube-apiserver-renjg-hp-compaq-pro-6380-mt            1/1       Running   0          6m
kube-system   kube-controller-manager-renjg-hp-compaq-pro-6380-mt   1/1       Running   0          6m
kube-system   kube-dns-3913472980-1j8dx                             3/3       Running   0          7m
kube-system   kube-proxy-4j745                                      1/1       Running   0          7m
kube-system   kube-scheduler-renjg-hp-compaq-pro-6380-mt            1/1       Running   0          6m
kube-system   weave-net-r4b8d                                       2/2       Running   0          5m
renjingui@renjg-HP-Compaq-Pro-6380-MT:~$

4:部署应用/调试信息
kubectl describe -n kube-system po kube-flannel-ds-rr7xv
                    (NAMESPACE)            (NAME)

5:删除一个节点:
Master:
    kubectl drain maoxj-optiplex-7010 --delete-local-data --force --ignore-daemonsets
    kubectl delete node <node name>
node:
    kubeadm reset

6:加入Cluster的方式为:
在node节点上执行:
    kubeadm join --token a93f59.e500af089136cc83 109.123.123.6:6443
    
7:添加dashboard:
    在master节点上执行
    参看链接:
    https://github.com/kubernetes/dashboard#kubernetes-dashboard
    apache 转发代理配置:
    <VirtualHost *:8081>
        ProxyRequests On
        ProxyPass / http://127.0.0.1:8001/
    </VirtualHost>

kubernetes 环境搭建(ubuntu16.04)的更多相关文章

  1. 阿里云ECS服务器环境搭建——ubuntu16.04图形界面的安装

    阿里云ECS服务器环境搭建——ubuntu16.04图形界面的安装 最近琢磨着想在服务器上搭建一个hexo博客,于是就在阿里云上买了一个云服务器ECS,远程接入后默认给的是一个命令窗口,没有图形界面, ...

  2. (转)深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0

      深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0 发表于2016年07月15号由52nlp 接上文<深度学习主机攒机小记>,这台GTX10 ...

  3. 深度学习主机环境配置: Ubuntu16.04 + GeForce GTX 1070 + CUDA8.0 + cuDNN5.1 + TensorFlow

    深度学习主机环境配置: Ubuntu16.04 + GeForce GTX 1070 + CUDA8.0 + cuDNN5.1 + TensorFlow 最近在公司做深度学习相关的学习和实验,原来一直 ...

  4. Docker Kubernetes 环境搭建

    Docker Kubernetes 环境搭建 节点规划 版本 系统:Centos 7.4 x64 Docker版本:18.09.0 Kubernetes版本:v1.8 etcd存储版本:etcd-3. ...

  5. 深度学习主机环境配置: Ubuntu16.04+GeForce GTX 1080+TensorFlow

    接上文<深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0>,我们继续来安装 TensorFlow,使其支持GeForce GTX 1080显卡 ...

  6. 深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0

    不多说,直接上干货! 深度学习主机环境配置: Ubuntu16.04+Nvidia GTX 1080+CUDA8.0

  7. 深度学习环境配置:Ubuntu16.04安装GTX1080Ti+CUDA9.0+cuDNN7.0完整安装教程(多链接多参考文章)

    本来就对Linux不熟悉,经过几天惨痛的教训,参考了不知道多少篇文章,终于把环境装好了,每篇文章或多或少都有一些用,但没有一篇完整的能解决我安装过程碰到的问题,所以决定还是自己写一篇我安装过程的教程, ...

  8. 深度学习环境配置:Ubuntu16.04下安装GTX1080Ti+CUDA9.0+cuDNN7.0完整安装教程(多链接多参考文章)

    本来就对Linux不熟悉,经过几天惨痛的教训,参考了不知道多少篇文章,终于把环境装好了,每篇文章或多或少都有一些用,但没有一篇完整的能解决我安装过程碰到的问题,所以决定还是自己写一篇我安装过程的教程, ...

  9. 傲视Kubernetes(二):Docker镜像搭建与本地Kubernetes环境搭建

    主要内容: 1.Docker与Kubernetes的关系 2.SpringBoot微服务的Docker镜像创建 3.Kubernetes本地环境搭建 一.Docker与Kubernetes的关系 在说 ...

随机推荐

  1. HDOJ-2175 汉诺塔IX

    题目大意:基于汉诺塔原型,第一根柱子上有n个盘子,从上至下编号从1依次递增至n.在最佳移动方案中,第m次所移动的盘子的编号. 解题思路:模拟必然是会超时的.但根据汉诺塔的递归原理,容易发现,对于n阶汉 ...

  2. Confluence 6 指派和撤销空间权限

    指派空间权限 希望添加一个新用户或者用户组到权限列表中,从希望选择的选项中查找用户组或者用户,然后选择 添加(Add).用户和用户组将会显示在列表中:选择你希望引用的权限,然后选择 保存所有(Save ...

  3. python基础之列表以及切片等操作

    列表 定义: 能装对象的对象,列表能放大量的数据,各种类型,且列表内的数据是可以修改保存的,常用 [ ] 去表示,每一项数据之间用逗号隔开 1.列表的索引与切片 1.1 索引 与字符串的索引几乎一致, ...

  4. 向java高级工程师和项目经理的道路进发【转】

    转自https://www.cnblogs.com/ahudyan-forever/p/5263296.html 宏观 一. JAVA.要想成为JAVA(高级)工程师肯定要学习JAVA.一般的程序员或 ...

  5. .NET 高效开发之不可错过的实用工具(第一的当然是ReSharper插件)

    工欲善其事,必先利其器,没有好的工具,怎么能高效的开发出高质量的代码呢?本文为 ASP.NET 开发者介绍一些高效实用的工具,包括 SQL 管理,VS插件,内存管理,诊断工具等,涉及开发过程的各个环节 ...

  6. Leetcode 1029. 可被 5 整除的二进制前缀

    1029. 可被 5 整除的二进制前缀  显示英文描述 我的提交返回竞赛   用户通过次数467 用户尝试次数662 通过次数477 提交次数1964 题目难度Easy 给定由若干 0 和 1 组成的 ...

  7. Leetcode 863. 二叉树中所有距离为 K 的结点

    863. 二叉树中所有距离为 K 的结点  显示英文描述 我的提交返回竞赛   用户通过次数39 用户尝试次数59 通过次数39 提交次数174 题目难度Medium 给定一个二叉树(具有根结点 ro ...

  8. nodejs--路径问题

    在读写模块中,需要引入读写文件,此时需要注意路径问题.Node.js中为我们提供了两个参数:__dirname和__filename. __dirname:全局变量,存储的是文件所在的文件目录 __f ...

  9. php 循环数组问题

    $a = array('abe','ben','cam'); //foreach遍历数组时,实际上是遍历的数组的一个拷贝,并且在开始遍历之前会把指针指向拷贝的开始:,根据cow机制,写时,重新复制一份 ...

  10. git rebase commit 信息处理

    pick:正常选中 reword:选中,并且修改提交信息: edit:选中,rebase时会暂停,允许你修改这个commit(参考这里) squash:选中,会将当前commit与上一个commit合 ...