linux怎么查看本机内存大小
246
2022-11-09
k8s集群搭建-新-以及k8s相关命令详情
修改主机名hostnamectl set-hostname master00 hostnamectl set-hostname node1 hostnamectl set-hostname node2 所有集群主机都改好,主机名自定义 修改/etc/hosts文件,所有主机都修改192.168.5.100 master00192.168.5.101 node01192.168.5.102 node02
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
cat <
#注:sed这一步操作可自行进入 kubeadm.conf中修改自定义版本,我的是v1.18.2sed -i s/v1.14.0/v1.14.3/ kubeadm.conf
kubeadm config images pull --config kubeadm.conf kubeadm init --kubernetes-version=v1.18.0 --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=192.168.111.128 mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config kubectl apply -f https://docs.projectcalico.org/v3.8/manifests/calico.yaml
完了之后记住下面两行内容,因为node加入集群需要用到 kubeadm join 192.168.5.100:6443 --token j2tngs.y5fzfd9ph5ppdien \ --discovery-token-ca-cert-hash sha256:b2a2b249a16aaf2f1784ab6206fb6abd279e8c70cf0b470c7fd004f1b8fdb481
查看集群状态 kubectl get cs NAME STATUS MESSAGE ERROR controller-manager Healthy ok scheduler Healthy ok etcd-0 Healthy {"health":"true"} 成功
kubectl get pods --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-fb8b8dccf-khsgh 1/1 Running 0 2m2s kube-system coredns-fb8b8dccf-rrxgb 1/1 Running 0 2m2s kube-system etcd-master00 1/1 Running 0 78s kube-system kube-apiserver-master00 1/1 Running 0 73s kube-system kube-controller-manager-master 00 1/1 Running 0 79s kube-system kube-flannel-ds-amd64-xpr74 1/1 Running 0 2m2s kube-system kube-proxy-dhvcr 1/1 Running 0 2m2s kube-system kube-scheduler-master00 1/1 Running 0 57s
如果STATUS不是Running 请等几分钟再查看,还是没有,查看报错日志 cat /var/log/messages,然后找失败原因
master部署完了,下面是node部署
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab
cat <
#注:sed这一步操作可自行进入 kubeadm.conf中修改自定义版本,我的是v1.18.2 sed -i s/v1.14.0/v1.14.3/ kubeadm.conf kubeadm config images pull --config kubeadm.conf
部署k8s控制台rancher(在加入Node 节点前部署rancher) docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher:latest
在K8S集群执行 kubectl create clusterrolebinding cluster-admin-binding --clusterrole cluster-admin --user admin curl --insecure -sfL | kubectl apply -f - 然后加入集群:通过刚刚master的记录加入 kubeadm join 192.168.5.100:6443 --token j2tngs.y5fzfd9ph5ppdien \ --discovery-token-ca-cert-hash sha256:b2a2b249a16aaf2f1784ab6206fb6abd279e8c70cf0b470c7fd004f1b8fdb481 This node has joined the cluster: * Certificate signing request was sent to apiserver and a response was received. * The Kubelet was informed of the new secure connection details. Run 'kubectl get nodes' on the control-plane to see this node join the cluster 成功加入集群
然后所有的node依次加入集群 查看集群状态kubectl get cs 查看集群节点kubectl get nodes
新生成加入集群密钥
kubeadm token create
kubeadm token list
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
kubeadm join 192.168.5.100:6443 --token j2tngs.y5fzfd9ph5ppdien \ --discovery-token-ca-cert-hash sha256:b2a2b249a16aaf2f1784ab6206fb6abd279e8c70cf0b470c7fd004f1b8fdb481
k8s一些相关命令:#查看所有namespace的pods运行情况#kubectl get pods --all-namespaces#查看具体pods,记得后边跟namespace名字哦kubectl get pods kubernetes-dashboard-76479d66bb-nj8wr --namespace=kube-system查看pods具体信息kubectl get pods -o wide kubernetes-dashboard-76479d66bb-nj8wr --namespace=kube-system查看集群健康状态kubectl get cs获取所有deploymentkubectl get deployment --all-namespaces列出该 namespace 中的所有 pod 包括未初始化的kubectl get pods --include-uninitialized查看deployment()kubectl get deployment nginx-app查看rc和serverskubectl get rc,services查看pods结构信息(重点,通过这个看日志分析错误)对控制器和服务,node同样有效kubectl describe pods xxxxpodsname --namespace=xxxnamespace其他控制器类似吧,就是kubectl get 控制器 控制器具体名称查看pod日志kubectl logs $POD_NAME查看pod变量kubectl exec my-nginx-5j8ok -- printenv | grep SERVICE集群kubectl get cs # 集群健康情况kubectl cluster-info # 集群核心组件运行情况kubectl get namespaces # 表空间名kubectl version # 版本kubectl api-versions # APIkubectl get events # 查看事件kubectl get nodes //获取全部节点kubectl delete node k8s2 //删除节点kubectl rollout status deploy nginx-test
创建kubectl create -f ./nginx.yaml # 创建资源kubectl create -f . # 创建当前目录下的所有yaml资源kubectl create -f ./nginx1.yaml -f ./mysql2.yaml # 使用多个文件创建资源kubectl create -f ./dir # 使用目录下的所有清单文件来创建资源kubectl create -f # 使用 url 来创建资源kubectl run -i --tty busybox --image=busybox ----创建带有终端的podkubectl run nginx --image=nginx # 启动一个 nginx 实例kubectl run mybusybox --image=busybox --replicas=5 ----启动多个podkubectl explain pods,svc # 获取 pod 和 svc 的文档
更新kubectl rolling-update python-v1 -f python-v2.json # 滚动更新 pod frontend-v1kubectl rolling-update python-v1 python-v2 --image=image:v2 # 更新资源名称并更新镜像kubectl rolling-update python --image=image:v2 # 更新 frontend pod 中的镜像kubectl rolling-update python-v1 python-v2 --rollback # 退出已存在的进行中的滚动更新cat pod.json | kubectl replace -f - # 基于 stdin 输入的 JSON 替换 pod强制替换,删除后重新创建资源。会导致服务中断。kubectl replace --force -f ./pod.json为 nginx RC 创建服务,启用本地 80 端口连接到容器上的 8000 端口kubectl expose rc nginx --port=80 --target-port=8000
更新单容器 pod 的镜像版本(tag)到 v4kubectl get pod nginx-pod -o yaml | sed 's/(image: myimage):.*$/\1:v4/' | kubectl replace -f -kubectl label pods nginx-pod new-label=awesome # 添加标签kubectl annotate pods nginx-pod icon-url= # 添加注解kubectl autoscale deployment foo --min=2 --max=10 # 自动扩展 deployment “foo”
编辑资源kubectl edit svc/docker-registry # 编辑名为 docker-registry 的 serviceKUBE_EDITOR="nano" kubectl edit svc/docker-registry # 使用其它编辑器
动态伸缩podkubectl scale --replicas=3 rs/foo # 将foo副本集变成3个kubectl scale --replicas=3 -f foo.yaml # 缩放“foo”中指定的资源。kubectl scale --current-replicas=2 --replicas=3 deployment/mysql # 将deployment/mysql从2个变成3个kubectl scale --replicas=5 rc/foo rc/bar rc/baz # 变更多个控制器的数量kubectl rollout status deploy deployment/mysql # 查看变更进度
删除kubectl delete -f ./pod.json # 删除 pod.json 文件中定义的类型和名称的 podkubectl delete pod,service baz foo # 删除名为“baz”的 pod 和名为“foo”的 servicekubectl delete pods,services -l name=myLabel # 删除具有 name=myLabel 标签的 pod 和 serivcekubectl delete pods,services -l name=myLabel --include-uninitialized # 删除具有 name=myLabel 标签的 pod 和 service,包括尚未初始化的kubectl -n my-ns delete po,svc --all # 删除 my-ns namespace下的所有 pod 和 serivce,包括尚未初始化的kubectl delete pods prometheus-7fcfcb9f89-qkkf7 --grace-period=0 --force 强制删除
交互kubectl logs nginx-pod # dump 输出 pod 的日志(stdout)kubectl logs nginx-pod -c my-container # dump 输出 pod 中容器的日志(stdout,pod 中有多个容器的情况下使用)kubectl logs -f nginx-pod # 流式输出 pod 的日志(stdout)kubectl logs -f nginx-pod -c my-container # 流式输出 pod 中容器的日志(stdout,pod 中有多个容器的情况下使用)kubectl run -i --tty busybox --image=busybox -- sh # 交互式 shell 的方式运行 podkubectl attach nginx-pod -i # 连接到运行中的容器kubectl port-forward nginx-pod 5000:6000 # 转发 pod 中的 6000 端口到本地的 5000 端口kubectl exec nginx-pod -- ls / # 在已存在的容器中执行命令(只有一个容器的情况下)kubectl exec nginx-pod -c my-container -- ls / # 在已存在的容器中执行命令(pod 中有多个容器的情况下)kubectl top pod POD_NAME --containers # 显示指定 pod和容器的指标度量
调度配置$ kubectl cordon k8s-node # 标记 my-node 不可调度$ kubectl drain k8s-node # 清空 my-node 以待维护$ kubectl uncordon k8s-node # 标记 my-node 可调度$ kubectl top node k8s-node # 显示 my-node 的指标度量$ kubectl cluster-info dump # 将当前集群状态输出到 stdout $ kubectl cluster-info dump --output-directory=/path/to/cluster-state # 将当前集群状态输出到 /path/to/cluster-state#如果该键和影响的污点(taint)已存在,则使用指定的值替换$ kubectl taint nodes foo dedicated=special-user:NoSchedule
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~