一.部署Web UI(Dashboard)
1.解压包,进入目录
包就在以前的master部署组件里
这里里面kubernetes-server-linux-amd64.tar.gznode
2.执行yaml文件linux
查看启动的pod,没在默认命名空间,在kube-system下nginx
注:
其中dashboard-controller.yaml这个里面的dashboard镜像是国外的,若是慢,能够换成国内的镜像地址 image: registry.cn-hangzhou.aliyuncs.com/google_containers/kubernetes-dashboard-amd64:v1.10.0git
3.建立Dashboard服务github
4.查看启动的Dashboard服务web
外网访问的是端口是44721docker
5.设置登录令牌,访问web界面
建立用户访问,绑定集群管理员,使用它产生的密钥bootstrap
建立帐户产生的tokenvim
查看token后端
复制token到页面上便可
二.coredns的安装
安装coredns的yaml文档能够在kubernetes的github上找到https://github.com/kubernetes/kubernetes/edit/master/cluster/addons/dns/coredns/coredns.yaml.sed
[root@master ~]# vim coredns.yaml
# Warning: This is a file generated from the base underscore template file: coredns.yaml.base
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
labels:
kubernetes.io/bootstrapping: rbac-defaults
addonmanager.kubernetes.io/mode: Reconcile
name: system:coredns
rules:
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
annotations:
rbac.authorization.kubernetes.io/autoupdate: "true"
labels:
kubernetes.io/bootstrapping: rbac-defaults
addonmanager.kubernetes.io/mode: EnsureExists
name: system:coredns
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: system:coredns
subjects:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: coredns
namespace: kube-system
labels:
k8s-app: kube-dns
kubernetes.io/cluster-service: "true"
addonmanager.kubernetes.io/mode: Reconcile
kubernetes.io/name: "CoreDNS"
spec:
# 1. In order to make Addon Manager do not reconcile this replicas parameter. # 2. Default is 1. # 3. Will be tuned in real time if DNS horizontal auto-scaling is turned on.
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 1
selector:
matchLabels:
k8s-app: kube-dns
template:
metadata:
labels:
k8s-app: kube-dns
annotations:
seccomp.security.alpha.kubernetes.io/pod: 'docker/default'
spec:
serviceAccountName: coredns
tolerations:
apiVersion: v1
kind: Service
metadata:
name: kube-dns
namespace: kube-system
annotations:
prometheus.io/port: "9153"
prometheus.io/scrape: "true"
labels:
k8s-app: kube-dns
kubernetes.io/cluster-service: "true"
addonmanager.kubernetes.io/mode: Reconcile
kubernetes.io/name: "CoreDNS"
spec:
selector:
k8s-app: kube-dns
clusterIP: 10.0.0.2
ports:
1.部署coredns
2.查看部署dns结果
[root@master ~]# kubectl get pods -n kube-system
3.测试能够解析到集群里的服务
不一样命名空间解析
后面加上命名空间.svc.cluster.local
三.kubectl管理工具
1.删除
先删除控制器,再删服务
[root@master ~]# kubectl delete deployment.apps/nginx
[root@master ~]# kubectl delete service/nginx
2.在默认命名空间下建立nginx容器
[root@master ~]# kubectl run nginx --image=nginx --replicas=3 --labels="app=nignx-example" --image=nginx:1.10 --port=80
查看pod
[root@master ~]# kubectl get all
3.查看pod的详细信息describe
[root@master ~]# kubectl describe pod/nginx-7cfb59d88d-nmtp9
下面还有事件,能够用于排错
4.查看pod和service
[root@master ~]# kubectl get pod
[root@master ~]# kubectl get svc
5.显示标签
[root@master ~]# kubectl get pods --show-labels
注:设置标签的好处,到时候pod多了,能够指定pod的标签查找
6.查询pod的详细信息
[root@master ~]# kubectl get pods -o wide
7.查看控制用到的那些镜像
[root@master ~]# kubectl get deployment -o wide
8.启动发布服务
[root@master ~]# kubectl expose deployment nginx --port=88 --type=NodePort --target-port=80 --name=nginx-service
expose暴露服务
--port=88 外部ba暴露端口
type=NodePort 使用节点端口访问应用
--target-port=80 内部端口
--name=nginx-service 服务名称
经过集群ip加外部暴露端口能够在任意节点访问应用
或者经过node端口和节点地址地址访问
四.故障排查
1.查看pod详细信息
kubectl describe 容器pod id
2.查看pod日志
kubectl log 容器pod id
3.进入到pod查看状况
kubectl exec -it pod id bash
五.更新镜像
kubectl set --help 这个命令更新设置容器的设置
1.更新镜像版本
将以前的nginx1.10跟新为nginx1.11版本
这个过程是将以前的1.10版本的3个镜像删除,在建立3个1.11版本的镜像
查看刚建立的pod详细信息,已经变成nginx:1.11
[root@master ~]# kubectl describe pod nginx-799f6b8cfc-khbvf
2.还有另外一种的办法更新镜像,直接编辑控制器资源文件
[root@master ~]# kubectl edit deploy/nginx
查看新建立的pod信息显示image是nginx:1.12
3.能够查看版本历史
[root@master ~]# kubectl rollout status deploy/nginx
[root@master ~]# kubectl rollout history deploy/nginx
再次升级为nginx:1.13
更新完成
history能够查看以前的记录
4.回滚状态
如今版本是nginx:1.13,假设这个版本有问题,要根据history回滚到以前的版本
[root@master ~]# kubectl rollout undo deployment.apps/nginx
[root@master ~]# kubectl rollout status deploy/nginx
查看版本历史,少了第三个版本,已经回滚到nginx:1.12了
查看新pod详细信息已是1.12了
六.扩容副本scale
因为高并发业务须要将后端pod扩展为5个(如今为3个)
[root@master ~]# kubectl scale deployment.apps/nginx --replicas=5
业务下来了还能够缩容