天行健,君子以自强不息;地势坤,君子以厚德载物。
每个人都有惰性,但不断学习是好好生活的根本,共勉!
文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。
文章目录
- [1. 命名空间namespace相关](#1. 命名空间namespace相关)
-
- [1.1 创建命名空间](#1.1 创建命名空间)
- [1.2 查询命名空间](#1.2 查询命名空间)
- [2. 节点node相关](#2. 节点node相关)
-
- [2.1 查看集群节点](#2.1 查看集群节点)
- [2.2 查看节点健康状态](#2.2 查看节点健康状态)
- [3. 容器pod相关](#3. 容器pod相关)
-
- [3.1 查看pods](#3.1 查看pods)
- [3.2 删除pod](#3.2 删除pod)
- [3.3 查看pod详细信息](#3.3 查看pod详细信息)
- [3.4 查看pod描述信息](#3.4 查看pod描述信息)
- [3.5 查看deployment的日志信息](#3.5 查看deployment的日志信息)
- [3.6 查看问题pod](#3.6 查看问题pod)
- [3.7 进入pod](#3.7 进入pod)
- [3.8 退出pod](#3.8 退出pod)
- [4. 持久化存储pvc相关](#4. 持久化存储pvc相关)
-
- [4.1 查看pvc](#4.1 查看pvc)
- [4.2 删除pvc](#4.2 删除pvc)
- [5. 服务svc相关](#5. 服务svc相关)
-
- [5.1 查看svc](#5.1 查看svc)
- [5.2 删除svc](#5.2 删除svc)
- [6. 查看全部服务](#6. 查看全部服务)
- [7. 部署服务](#7. 部署服务)
-
- [7.1 部署所有yml文件](#7.1 部署所有yml文件)
- [7.2 部署某个yml文件](#7.2 部署某个yml文件)
- [8. 初始化集群主节点命令](#8. 初始化集群主节点命令)
-
- [8.1 配置镜像列表](#8.1 配置镜像列表)
- [8.2 拉取镜像](#8.2 拉取镜像)
- [8.3 初始化kubeadm](#8.3 初始化kubeadm)
- [8.4 其他节点加入集群](#8.4 其他节点加入集群)
- [8.5 生成join命令](#8.5 生成join命令)
- [8.6 重置kubeadm](#8.6 重置kubeadm)
-
- [8.6.1 重置kubeadm](#8.6.1 重置kubeadm)
- [8.6.2 移除文件](#8.6.2 移除文件)
命令中使用到的一些自定义参数表示的含义如下
namespacename 命名空间名称
podname pod的名称
selectorname 指yaml中定义的selector参数的值
pvcname 表示pvc的名称
deploymentname 表示deployment的名称
svcname 表示service的名称
1. 命名空间namespace相关
1.1 创建命名空间
l
kubectl create namespace namespacename
如创建一个名为ns-sb的命名空间
l
kubectl create namespace ns-sb
1.2 查询命名空间
查看全部命名空间
l
kubectl get namespace -A
2. 节点node相关
2.1 查看集群节点
l
kubectl get nodes
2.2 查看节点健康状态
l
kubectl get cs
3. 容器pod相关
3.1 查看pods
查看所有pod
l
kubectl get pod -A
查看指定命名空间中的pod
l
kubectl get pods -n namespacename
如查看命名空间为ns-sb的所有pod
l
kubectl get pods -n ns-sb
3.2 删除pod
未设置副本数或者副本数设为0则可用常规删除命令
l
kubectl delete pod podname -n namespacename
若设置副本数大于等于1时,则需要删除deployment
l
kubectl delete deployment name -n namespacename
3.3 查看pod详细信息
查看pod的名称、状态、所在集群的ip、所在节点等信息
l
kubectl get pod -o wide -n namespacename
3.4 查看pod描述信息
查看所有pod的详细信息(包含日志信息)
l
kubectl describe pod -n namespacename
查看指定pod的详细信息(包含日志信息)
l
kubectl describe pod podname -n namespacename
3.5 查看deployment的日志信息
查看deployment的日志
l
kubectl logs deploymentname -n namespacename
3.6 查看问题pod
查看有问题的pod
l
kubectl get pods -l selectorname -n namespacename
注:selectorname 指yaml中定义的selector参数的值
3.7 进入pod
进入pod
l
kubectl exec -it podname -n namespacename -- /bin/bash
3.8 退出pod
退出pod
l
exit
4. 持久化存储pvc相关
4.1 查看pvc
查看全部pvc
l
kubectl get pvc -A
查看指定命名空间的pvc
l
kbuectl get pvc -n namespacename
4.2 删除pvc
l
kubectl delete pvc pvcname -n namespacename
5. 服务svc相关
即查看service
svc是service的缩写,两者都可用
5.1 查看svc
查看全部svc
l
kubectl get svc -A
查看指定命名空间的svc
l
kubectl get svc -n namespacename
5.2 删除svc
l
kubectl delete svc svcname -n namespacename
6. 查看全部服务
查看全部服务,包含可选pvc、deploy、pod、svc等,也可全选,如下
l
kubectl get pvc,deploy,pod,svc -A
7. 部署服务
7.1 部署所有yml文件
部署所有yml文件
l
kubectl apply -f .
7.2 部署某个yml文件
如部署当前文件夹gitlab-yaml下的redis.yml文件
l
kubectl apply -f ./gitlab-yaml/redis.yml
以下为拓展
8. 初始化集群主节点命令
初始化使用的是kubeadm命令
8.1 配置镜像列表
l
kubeadm config images list
指定版本
l
kubeadm config images list --kubernetes-version v1.23.0
8.2 拉取镜像
l
kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers
8.3 初始化kubeadm
l
kubeadm init \
--apiserver-advertise-address=172.30.0.224 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.23.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16 \
--ignore-preflight-errors=all
--apiserver-advertise-address
集群通告地址(master 机器IP,这里用的万兆网)
--image-repository
由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址
--kubernetes-version
K8s版本,与上面安装的一致
--service-cidr
集群内部虚拟网络,Pod统一访问入口,可以不用更改,直接用上面的参数
--pod-network-cidr
Pod网络,与下面部署的CNI网络组件yaml中保持一致,可以不用更改,直接用上面的参数
8.4 其他节点加入集群
加入集群节点的命令(包含token)在初始化完成时输出的内容中,复制保存使用即可
l
kubeadm join 172.30.0.224:6443 --token 4uhwg7.ldccrwsxmplqahbc \
--discovery-token-ca-cert-hash sha256:cf6e896414b3d3169774b38f435d7789a1466c83064c173fc56537ba7e949e81
8.5 生成join命令
如果token过期或忘记加入集群的命令,使用以下命令生成新的加入集群命令(包含token)
l
kubeadm token create --print-join-command
8.6 重置kubeadm
如果初始化失败,或者需要重新初始化,可执行以下两个命令
8.6.1 重置kubeadm
l
kubeadm reset
8.6.2 移除文件
移除相关文件,不然会重置失败
l
sudo rm -fr ~/.kube/ /etc/kubernetes/* var/lib/etcd/*
代理访问dashboard
使用该命令可以将dashboard的服务定位到本机的8001端口
l
kubectl proxy
会输出Starting to serve on 127.0.0.1:8001
查看访问权限
l
kubectl auth can-i create deployments --namespace=kubernetes-dashboard
输出yes表示当前用户有权限创建deployments的权限,如果是no则表示没有权限
删除pod
感谢阅读,祝君暴富!