本文主要内容:
- Kubernetes 集群安装
- 可能遇到的问题
- 初始化
- 常用命令
- 搭建Kubernetes dashboard
- Tips
Kubernetes 集群安装
Kubernetes 集群的安装参见kubernetes101-workshop readme即可。
可能遇到的问题
在执行 vagrant ssh master01
的时候我遇到下面问题:
解决方式:
使用 ssh vagrant@192.168.33.101
或 ssh vagrant@192.168.33.110
登录,密码 vagrant
猜测原因:
- 本机的某个配置导致没法使用
vagrant ssh
命令 - 只是针对这个 kubernetes101-workshop 没法使用
vagrant ssh
命令
验证:
新写了一个 vagrant 的 demo 发现了同样的问题:
结论:
猜测1成立,但由于只是不能使用vagrant ssh
命令,不影响学习 Kubernetes,遂止于此
初始化
初始化网络:
kubeadm init --apiserver-advertise-address=192.168.33.101 --pod-network-cidr=10.32.0.0/12
初始化完成:
其中红色区域的命令作用:每当有新增的节点,执行下面的命令则该节点可以
加入 Kubernetes 网络,同时还需在 master 节点执行上图中蓝色区域的命令
执行 kubectl get nodes
会发现我们添加的 node 还是 NotReady 状态,需要安装插件,执行命令 kubectl apply -f https://git.io/weave-kube-1.6
,这样就会看到我们所添加的 node 是 Ready 状态
常用命令
- get: 资源列表
- kubectl get <resource name>
- describe:资源详情
- kubectl describe <resource name><id>
- apply: 变更资源(增删改都可以),一般通过yaml进行,便于版本管理和追溯
- kubectl apply -f object.yaml
- delete:删除资源
- kubectl delete <resource name><id>
- logs:查看日志
- kubectl logs <pod-id> -c <container name> -f
- exec:在容器中执行命令
搭建Kubernetes dashboard
- 下载 dashboard 的 yaml 定义
curl https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml > dashboard.yaml
- 修改 yaml,将其以 nodePort 的形式暴露在集群外部,即添加图中红色区域的内容
执行命令
kubectl apply -f dashboard.yaml
,使 dashboard.yaml 生效浏览器访问:https://192.168.33.101:30001,即可看到 dashboard 登录页面,此时我们需要 token 才能进入主页
获取token:
kubectl get secret -n kube-system
kubectl describe secret admin-token-45rzl -n kube-system
或者
kubectl get secret $(kubectl get secret -n kube-system|grep admin-token|awk '{print $1}') -n kube-system -o jsonpath={.data.token}|base64 -d |xargs echo
即可在终端看到 token,输入 token即可看到dashboard页面
到此我们的 dashboard 也搭好了,可以继续开始后面的 Kubernetes 之旅了
Tips
在初始化的过程中可能会失败,使用kubeadm reset
命令进行重置