Kubernetes常用命令与常见问题
2016-09-05 14:59
507 查看
本文原文出处: http://blog.csdn.net/bluishglc/article/details/52440312 严禁任何形式的转载,否则将委托CSDN官方维护权益!
注:docker服务总是在要flannel服务之后启动,flannel服务重启,docker服务必须重启。这是因为flannel会为docker配置好网络参数并以环境变量的方式传递给docker, 这些配置好的环境变量会存放在
补充:如果机器上没有安装brctl,可使用如下命令安装:
我们可以把上述命令添加到cron作业里,让机器自动定时清理。
Kubernetes支持非常多类型的volume, 具体的信息可以参考官方文档: http://kubernetes.io/docs/user-guide/volumes/ 其中最为常见的是
emptyDir: 随Pod删除,适用于临时存储、灾难恢复、共享运行时数据
hostPath 类似于Docker的本地Volume,把Pod上的某个文件夹映射到本地目录,用于访问一些本地资源(比如本地Docker)。
下面这个份配置是一个比较典型的例子,mysql的官方docker镜像中配置了一个指定的文件夹:
常用命令
重启Master节点
for SERVICE in etcd kube-apiserver kube-controller-manager kube-scheduler; do sudo systemctl restart $SERVICE sudo systemctl enable $SERVICE sudo systemctl status $SERVICE done
查看Master节点服务状态
for SERVICE in etcd kube-apiserver kube-controller-manager kube-scheduler; do sudo systemctl status $SERVICE done
重启Slave节点
for SERVICE in kube-proxy kubelet flanneld; do sudo systemctl restart $SERVICE sudo systemctl enable $SERVICE sudo systemctl status $SERVICE done sudo systemctl stop docker sudo /sbin/ifconfig docker0 down sudo brctl delbr docker0 sudo systemctl start docker sudo systemctl enable docker sudo systemctl status docker
注:docker服务总是在要flannel服务之后启动,flannel服务重启,docker服务必须重启。这是因为flannel会为docker配置好网络参数并以环境变量的方式传递给docker, 这些配置好的环境变量会存放在
/run/flannel/docker文件里,文件中一般会存储这些变量:
DOCKER_OPT_BIP="--bip=172.16.54.1/24" DOCKER_OPT_IPMASQ="--ip-masq=true" DOCKER_OPT_MTU="--mtu=1450" DOCKER_NETWORK_OPTIONS=" --bip=172.16.54.1/24 --ip-masq=true --mtu=1450 "
查看Slave节点服务状态
for SERVICE in kube-proxy kubelet flanneld docker; do sudo systemctl status $SERVICE done
补充:如果机器上没有安装brctl,可使用如下命令安装:
sudo yum -y install bridge-utils
查看RC、Service和Pod
for NAMESPACE in your-namespace; do echo "" echo "########## [ $NAMESPACE ] ##########" echo "" for ITEM in rc services pods; do echo "" echo "---------- [ $ITEM ] ----------" echo "" sudo kubectl --namespace=$NAMESPACE get $ITEM done done
清理namepace下的所有RC、Service和Pod
for NAMESPACE in your-namespace; do echo "" echo "########## [ $NAMESPACE ] ##########" echo "" for ITEM in rc services pods; do echo "" echo "---------- [ $ITEM ] ----------" echo "" sudo kubectl --namespace=$NAMESPACE delete $ITEM --all --cascade --timeout=0 done done
清理Docker上所有的废弃镜像
所谓“废弃”镜像是指那些不再被任何tag标记的镜像。sudo docker rmi $(sudo docker images | awk '/^<none>/ { print $3 }')
我们可以把上述命令添加到cron作业里,让机器自动定时清理。
根据关键字删除docker容器
sudo docker rm -f $(sudo docker ps -a|awk '/your-keyword/ { print $1 }')
常见问题
Service无法访问或不可用
初学者在刚刚接触Kubernetes时会遇到Service无法访问的问题,原因往往只是Service的selector的值没有和pod匹配,这种错误很容易通过查看service的endpoints信息来验证,如果endpoints为空,就说明selector的值配错了。只需要修改为对应pod的标签就可以了。在kubernetes配置中挂载volume
在kubernetes的yaml配置文件中,使用spec.volumes来指定一个Pod需要的volume信息,使用
spec.containers.volumeMounts来将container和一个volume关联起来。
Kubernetes支持非常多类型的volume, 具体的信息可以参考官方文档: http://kubernetes.io/docs/user-guide/volumes/ 其中最为常见的是
emptyDir: 随Pod删除,适用于临时存储、灾难恢复、共享运行时数据
hostPath 类似于Docker的本地Volume,把Pod上的某个文件夹映射到本地目录,用于访问一些本地资源(比如本地Docker)。
下面这个份配置是一个比较典型的例子,mysql的官方docker镜像中配置了一个指定的文件夹:
/docker-entrypoint-initdb.dmysql容器启动时会自动执行这个文件夹下的shell脚本和sql文件,这给了应用程序初始化数据库的机会,所以当我们需要在mysql容器启动时初始化我们的数据库,我们以把数据库脚本放到本地的某个目录下,本例中我们使用的是
/home/admin/mysql, 然后配置mysql的部署描述文件,把容器预定义的文件夹
/docker-entrypoint-initdb.d映射到本地的
/home/admin/mysql即可。在下述配置中,我们需要特别注意
spec.volumes和
spec.containers.volumeMounts两处配置:
apiVersion: v1 kind: ReplicationController metadata: name: app-db namespace: app-dev labels: name: app-db spec: replicas: 1 template: metadata: labels: name: app-db spec: containers: - name: app-db image: my-registry:5000/docker_library/mysql:5.7 imagePullPolicy: Always volumeMounts: - mountPath: /docker-entrypoint-initdb.d name: init-volume env: - name: MYSQL_ROOT_PASSWORD value: root ports: - containerPort: 3306 name: mysql volumes: - name: init-volume hostPath: path: /home/admin/mysql host: db-node nodeName: db-node
相关文章推荐
- linux常见问题之常用的几条arm命令
- git常用命令及常见问题的解决方法
- Git常用命令以及常见问题
- OEM 重建 常见问题 常用命令
- 收集整理的oracle常用命令大全,解决oracle常见问题
- git常用命令及常见问题解决办法
- window7常用命令与常见问题
- Linux常用命令&常见问题
- ubuntu 常用命令 常见问题 集
- 树莓派操作目录以及常用命令整理——树莓派入手常见问题(四)
- Maven常用命令及Maven项目中常见问题
- 树莓派操作目录以及常用命令整理——树莓派入手常见问题二
- Monkey常用命令及常见问题
- MySQL常用命令和常见问题
- Hadoop常用命令及常见问题
- Ubuntu常用命令及常见问题
- mysql 的常用命令及常见问题解决方法
- mysql5.7安装配置,常用命令,常见问题
- Linux主要常用命令及常见问题的解决方法
- Git常用命令以及常见问题处理