K8S api接口詳解

一、創建管理員用戶,授權,獲取token值

1. 創建用戶
編寫CreateServiceAccount.yaml文件

apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kube-system

創建用戶命令:

kubectl create -f CreateServiceAccount.yaml

查看創建用戶的命令

kubectl -n kube-system get sa

2. 用戶授權
編寫RoleBinding.yaml文件,給於cluster-admin角色

apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kube-system

給用戶授權,執行命令

kubectl create -f RoleBinding.yaml

3. 獲取token

kubectl get secret -n kube-system | grep admin

在這裏插入圖片描述

kubectl  describe secret admin-user-token-7lsrn -n kube-system |grep token

在這裏插入圖片描述
4. 然後可以拿取到的token,去訪問api
可以通過postman來調試,訪問api
在這裏插入圖片描述
在postaman中關閉SSL認證(setting)

二、管理Pod

1. 創建pod
編寫yaml文件,namespace可以默認default,也可以提前自己創建

apiVersion: v1
kind: Pod
metadata:
  name: test-pod2
  namespace: testzhang

spec:
  nodeSelector:
    type: node1
  containers:
  - name: nginx-container
    image: nginx:1.12.2
    ports:
    - containerPort: 80

在nodeSelector中可以指定node節點
將pod調度到指定節點有2種方式:
方式一:強制約束Pod調度到指定Node節點上
在這裏插入圖片描述
方式二:通過label-selector機制選擇節點
在這裏插入圖片描述
以下使用第二種方式實現pod調度到指定節點。
這個方式是通過匹配節點的標籤來將pod部署在指定的node上的,所以節點必須先打好標籤
①爲Node添加label

kubectl label node k8s-node1<節點名稱> type=node1
kubectl get nodes --show-labels

在這裏插入圖片描述
創建Pod對象

kubectl create -f pod.yaml

查看pod對象

kubectl get pods

查看pod詳細信息

kubectl get pods -o wide

查看指定的namespace的pod信息:
kubectl get pods -o wide -n testzhang(namespace名稱)

查看全部namespace的pod信息:
kubectl get pods -o wide -A

查看指定的pod信息,不指定namespace 則會找默認的default命名空間
kubectl get pod test-pod1 -o wide -n testzhang

查看pod 詳細描述

 kubectl describe pod test-pod1 -n testzhang

刪除pod

kubectl delete pod [podname]

還可以指定創建pod時的yaml文件進行刪除指定的pod:
kubectl delete -f pod.yaml

更新pod
更新pod必須先刪除pod然後創建新的。
可以將其中鏡像升級後更行yaml文件。然後創建pod
還有一個方法是修改yaml文件後執行命令kubectl replace -f pod.yaml --force來用新的yaml生成的pod替換原有的pod。這裏使用–force參數是因爲在替換的時候可能會失敗,所以使用這個參數表示強制替換。

這個命令的原理也是先刪除原有pod,再創建新的pod

關於pod的其他操作

// 查看pod具體信息
kubectl describe pod [podname]

// 查看pod日誌
kubectl log [podname]

// 連接pod
kubectl exec -it [podname] bash
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章