namespace 命令
创建一个 dev 命名空间 dev-namespace.yaml
apiVersion: v1
kind: Namespace
metadata:
name: dev
labels:
name: dev
部署进k8s : kubectl apply dev-namespace.yaml
获取namespace 的列表
kubectl get namespace
重新部署失败的yaml 配置文件
kubeclt replace -f dev-namespace.yaml
node命令
查看集群各节点的状态
kubectl get nodes -o wide
部署应用
删除一个service服务
查询service服务列表
kubectl get services
查看网络资源
kubectl get svc
pod
创建一个namespace
kubectl create namaspace namespace名称
进入pod容器中
kubectl exec -it -n kube-system calico-kube-controllers-6c99c8747f-5z2wb sh
查看pod
kubectl get pod -A
kubectl get pod -o wide
#查看pod日志
kubectl -n kube-system describe po calico-kube-controllers-7ddc4f45bc-bvzf2
重启 POD
平滑重启k8s 集群
查看 deployment
kubectl get pod -A -o wide
kubectl rollout restart deployment tomcat-deploy -n default
删除pod
1 先删除pod 2 在删除对应的deployment
kubeclt delete pod pod名称
强制删除pod
kubectl delete pod tomcat-deploy-c5c7bcfc4-4pk44 --force
查看deployment
kubectl get deployment
删除deployment
kubectl delete deployment deployment名称
删除 状态为 Terminating pod
kubectl delete pod tomcat-deploy-c5c7bcfc4-4pk44 --grace-period=0 --force
Service 命令
查看服务列表,查看端口情况
kubectl get svc
查找 Service 关联的pod service与pod之间用labels标签关联
kubectl get svc --show-labels -A
RBAC 用户权限
k8s 不存储User信息,
用户类型: serviceaccount ClusterRoleBinding
serviceaccount 则是集群内部用户
ClusterRoleBinding 在整个集群中授权
获取k8s 所有用户信息
kubectl get clusterroles.rbac.authorization.k8s.io --all-namespaces
kubectl get roles.rbac.authorization.k8s.io --all-namespaces
创建一个 serviceaccount 用户
kubectl create sa jenkins
查看 service account 用户
查看k8s 中定义的用户组
kubectl get clusterrolebindings | grep admin
对整个集群授权 使用 ClusterRoleBinding 用户组为admin
ClusterRoleBinding.yaml 官网示例
apiVersion: rbac.authorization.k8s.io/v1
# This cluster role binding allows anyone in the "manager" group to read secrets in any namespace.
kind: ClusterRoleBinding
metadata:
name: read-secrets-global
subjects:
- kind: Group
name: manager # Name is case sensitive
apiGroup: rbac.authorization.k8s.io
roleRef:
kind: ClusterRole
name: secret-reader
apiGroup: rbac.authorization.k8s.io
查看 集群中k8s的token值 在kube-system 的空间中
kubectl -n kube-system get secrets
查看jenkisn用户的token 以及token值的具体信息
kubectl -n kube-system describe secrets jenkins
kubectl -n kube-system get secrets jenkins -o go-template --template '{{index .data "token"}}' | base64 --decode
确认k8s下jenkisn用户是否有token
# kubectl describe sa jenkins -n kube-system
Name: jenkins
Namespace: kube-system
Labels: addonmanager.kubernetes.io/mode=Reconcile
kubernetes.io/cluster-service=true
Annotations: <none>
Image pull secrets: <none>
Mountable secrets: <none>
Tokens: jenkins
Events: <none>
允许 k8s master 节点部署 pod 节点
默认情况下 master节点不能部署pod节点 基于安全考虑
查看master的污点信息 版本不同 master污点的key 不同
kubectl get no -o yaml | grep taint -A 5
taints:
- effect: NoSchedule
key: node-role.kubernetes.io/control-plane
status:
addresses:
- address: 192.168.241.160
删除master 节点污点
kubectl taint nodes --all node-role.kubernetes.io/control-plane-
node/k-master untainted