一、創建管理員用戶,授權,獲取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