K8S集群维护

2022-01-14  本文已影响0人  Walker_7797

一、coredns

1.1 下载镜像和yaml文件

kubectl apply -f coredns.yaml

二、dashboard

2.1 下载dashboard的yaml文件

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml
kubectl -n kubernetes-dashboard describe secret TOKEN_NAME
token.png
dashboard.jpg

三、kubectl

3.1 create

kubectl create -f pod.yaml    # 用yaml文件创建一个pod

3.2 expose

kubectl expose rc nginx --port=80 --target-port=8000    # 创建nginx的rc,把容器的80端口绑定pod的8000端口

3.3 run

kubectl run nginx --image=nginx    # 从nginx的latest镜像创建一个nginx pod

3.4 set

k set image POD_NAME CONTAINER_NAME=IMAGE:VERSION    # 更新pod中容器的镜像

3.5 explain

kubectl explain pods.spec.containers    # 查看pod的spec里containers说明信息

3.6 get

kubectl get all    # 查看default命名空间下的所有资源

3.7 edit

kubectl -n NAMESPACE edit configmap CONFIGMAP_NAME    # 编辑configmap,类似于vi命令 

3.8 delete

kubectl delete pod POD_NAME

3.9 drain

kubectl drain NODE --force --ignore-daemonsets --delete-local-data    # 强制删除除去daemonset模式的pod,并删除pod使用emptyDir模式的数据

四、etcd

4.1 etcd简介

etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。etcd内部采用raft协议作为一致性算法,etcd基于Go语言实现。

4.2 etcd的使用

NODE_IPS="IP1 IP2 IP3"
for ip in ${NODE_IPS}; do ETCDCTL_API=3 /usr/bin/etcdctl --endpoints=https://${ip}:2379 --cacert=/etc/kubernetes/ssl/ca.pem --cert=/etc/kubernetes/ssl/etcd.pem --key=/etc/kubernetes/ssl/etcd-key.pem endpoint health; done
ETCDCTL_API=3 /usr/bin/etcdctl --endpoints=https://IP:2379 \
--cacert=/etc/kubernetes/ssl/ca.pem --cert=/etc/kubernetes/ssl/etcd.pem \
--key=/etc/kubernetes/ssl/etcd-key.pem get / --prefix --keys-only    # 查看etcd根目录下所有的key
ETCDCTL_API=3 /usr/bin/etcdctl --endpoints=https://IP:2379 \
--cacert=/etc/kubernetes/ssl/ca.pem --cert=/etc/kubernetes/ssl/etcd.pem \
--key=/etc/kubernetes/ssl/etcd-key.pem put /KEY VALUE    # 在根目录下添加key value键值对
ETCDCTL_API=3 /usr/bin/etcdctl --endpoints=https://IP:2379 \
--cacert=/etc/kubernetes/ssl/ca.pem --cert=/etc/kubernetes/ssl/etcd.pem \
--key=/etc/kubernetes/ssl/etcd-key.pem del /KEY    # 删除根目录下的key值
ETCDCTL_API=3 /usr/bin/etcdctl --endpoints=https://IP:2379 \
--cacert=/etc/kubernetes/ssl/ca.pem --cert=/etc/kubernetes/ssl/etcd.pem \
--key=/etc/kubernetes/ssl/etcd-key.pem version    # 查看版本信息
ETCDCTL_API=3 /usr/bin/etcdctl --endpoints=https://IP:2379 \
--cacert=/etc/kubernetes/ssl/ca.pem --cert=/etc/kubernetes/ssl/etcd.pem \
--key=/etc/kubernetes/ssl/etcd-key.pem member list -w table    # 以表格形式输出etcd成员信息
ETCDCTL_API=3 /usr/bin/etcdctl --endpoints=https://IP:2379 \
--cacert=/etc/kubernetes/ssl/ca.pem --cert=/etc/kubernetes/ssl/etcd.pem \
--key=/etc/kubernetes/ssl/etcd-key.pem snapshot save etcd-backup-`date +%Y%m%d%H%M%S`.db    # 在当前目录备份etcd加时间戳的文件
ETCDCTL_API=3 /usr/bin/etcdctl --endpoints=https://IP:2379 \
--cacert=/etc/kubernetes/ssl/ca.pem --cert=/etc/kubernetes/ssl/etcd.pem \
--key=/etc/kubernetes/ssl/etcd-key.pem snapshot restore FILENAME --data-dir=PATHNAME    # 把文件恢复到etcd数据目录
ETCDCTL_API=3 /usr/bin/etcdctl --endpoints=https://IP:2379 \
--cacert=/etc/kubernetes/ssl/ca.pem --cert=/etc/kubernetes/ssl/etcd.pem \
--key=/etc/kubernetes/ssl/etcd-key.pem snapshot status FILENAME    # 查看备份文件状态信息

五、yaml文件

5.1 json和yaml特点

json特点

yaml特点


六、实现nginx和tomcat的动静分离

6.1 编写yaml

编写yaml文件时可以使用kubectl explain资源对象

6.2 访问动静分离

上一篇 下一篇

猜你喜欢

热点阅读