k8s基础操作命令
K8s重新加入节点
1.重置node节点环境在slave节点上执行
[root@node2 ~]# kubeadm reset [reset] WARNING: changes made to this host by 'kubeadm init' or 'kubeadm join' will be reverted.
[reset] are you sure you want to proceed? [y/N]: y
[preflight] running pre-flight checks
[reset] stopping the kubelet service
[reset] unmounting mounted directories in "/var/lib/kubelet"
[reset] removing kubernetes-managed containers
[reset] cleaning up running containers using crictl with socket /var/run/dockershim.sock
[reset] failed to list running pods using crictl: exit status . Trying to use docker instead[reset] no etcd manifest found in "/etc/kubernetes/manifests/etcd.yaml". Assuming external etcd
[reset] deleting contents of stateful directories: [/var/lib/kubelet /etc/cni/net.d /var/lib/dockershim /var/run/kubernetes]
[reset] deleting contents of config directories: [/etc/kubernetes/manifests /etc/kubernetes/pki]
[reset] deleting files: [/etc/kubernetes/admin.conf /etc/kubernetes/kubelet.conf /etc/kubernetes/bootstrap-kubelet.conf /etc/kubernetes/controller-manager.conf /etc/kubernetes/scheduler.conf]
reset
2.关闭slave节点的交换分区
[root@node3 ~]# swapoff -a
处理token和CA证书过期
1.在master上执行
[root@k8s-master ~]# openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der >/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
5a949445e86e76a060f6c3a6c2f571df4361085387cde7068493b418d484bb14
[root@k8s-master ~]# kubeadm token create
lsv2rv.7q0or3flbjne8s0k
2.在slave上执行
[root@node2 ~]# kubeadm join 192.168.11.141: --token lsv2rv.7q0or3flbjne8s0k --discovery-token-ca-cert-hash sha256:5a949445e86e76a060f6c3a6c2f571df4361085387cde7068493b418d484bb14 [preflight] running pre-flight checks
[WARNING RequiredIPVSKernelModulesAvailable]: the IPVS proxier will not be used, because the following required kernel modules are not loaded: [ip_vs ip_vs_rr ip_vs_wrr ip_vs_sh] or no builtin kernel ipvs support: map[ip_vs_wrr:{} ip_vs_sh:{} nf_conntrack_ipv4:{} ip_vs:{} ip_vs_rr:{}]
you can solve this problem with following methods:
. Run 'modprobe -- ' to load missing kernel modules;
. Provide the missing builtin kernel ipvs support I0517 ::53.384827 kernel_validator.go:] Validating kernel version
I0517 ::53.384903 kernel_validator.go:] Validating kernel config
[WARNING Hostname]: hostname "node2" could not be reached
[WARNING Hostname]: hostname "node2" lookup node2 on 192.168.11.2:: no such host
[discovery] Trying to connect to API Server "192.168.11.141:6443"
[discovery] Created cluster-info discovery client, requesting info from "https://192.168.11.141:6443"
[discovery] Requesting info from "https://192.168.11.141:6443" again to validate TLS against the pinned public key
[discovery] Cluster info signature and contents are valid and TLS certificate validates against pinned roots, will use API Server "192.168.11.141:6443"
[discovery] Successfully established connection with API Server "192.168.11.141:6443"
[kubelet] Downloading configuration for the kubelet from the "kubelet-config-1.11" ConfigMap in the kube-system namespace
[kubelet] Writing kubelet configuration to file "/var/lib/kubelet/config.yaml"
[kubelet] Writing kubelet environment file with flags to file "/var/lib/kubelet/kubeadm-flags.env"
[preflight] Activating the kubelet service
[tlsbootstrap] Waiting for the kubelet to perform the TLS Bootstrap...
[patchnode] Uploading the CRI Socket information "/var/run/dockershim.sock" to the Node API object "node2" as an annotation This node has joined the cluster:
* Certificate signing request was sent to master and a response
was received.
* The Kubelet was informed of the new secure connection details. Run 'kubectl get nodes' on the master to see this node join the cluster.
3.kubectl命令过期
# rm -fr $HOME/.kube/config
# cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
# sudo chown $(id -u):$(id -g) $HOME/.kube/config

k8s命令实例
pod的创建和删除
[root@k8s-master ~]#kubectl run nginx-deploy --image=nginx:1.14-alpine --port= --replicas= [root@k8s-master ~]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE
nginx-deploy-5b595999-d7rpg / Running 226d 10.244.1.11 node2
nginx-deploy-5b595999-sdfcz / Running 226d 10.244.1.10 node2 [root@node2 ~]# curl 10.244.1.11
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style> [root@k8s-master ~]# kubectl delete pods nginx-deploy-5b595999-sdfcz
pod "nginx-deploy-5b595999-sdfcz" deleted
[root@k8s-master ~]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE
nginx-deploy-5b595999-d7rpg / Running 226d 10.244.1.11 node2
nginx-deploy-5b595999-s4cjv / ContainerCreating 4s <none> node3
[root@k8s-master ~]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE
nginx-deploy-5b595999-d7rpg / Running 226d 10.244.1.11 node2
nginx-deploy-5b595999-s4cjv / Running 25s 10.244.2.5 node3
service的管理
service是用来为pod提供固定访问端点的
service地址是通过iptables或者ipvs规则来实现的 不能直接ping通 但是却可以通过地址访问到对应的服务
[root@k8s-master ~]# kubectl run myapp --image=ikubernetes/myapp:v1 --replicas=
deployment.apps/myapp created
[root@k8s-master ~]# kubectl get deployment
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
myapp 14s
nginx-deploy 226d
[root@k8s-master ~]# kubectl get deployment -w
NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE
myapp 23s
nginx-deploy 226d
myapp 55s
myapp 1m
^C[root@k8s-master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
myapp-848b5b879b-9kd6s / Running 1m
myapp-848b5b879b-dvtgn / Running 1m
nginx-deploy-5b595999-d7rpg / Running 226d
nginx-deploy-5b595999-s4cjv / Running 56m
[root@k8s-master ~]# kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE
myapp-848b5b879b-9kd6s / Running 1m 10.244.2.6 node3
myapp-848b5b879b-dvtgn / Running 1m 10.244.1.12 node2
nginx-deploy-5b595999-d7rpg / Running 226d 10.244.1.11 node2
nginx-deploy-5b595999-s4cjv / Running 57m 10.244.2.5 node3
[root@k8s-master ~]# wget -O - -q 10.244.2.6
Hello MyApp | Version: v1 | <a href="hostname.html">Pod Name</a>
[root@k8s-master ~]# kubectl expose deployment myapp --name=myapp --port=
service/myapp exposed
[root@k8s-master ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> /TCP 226d
myapp ClusterIP 10.101.171.64 <none> /TCP 8s
nginx ClusterIP 10.106.232.252 <none> /TCP 6m
[root@k8s-master ~]# kubectl scale --replicas= deployment=myapp
error: resource(s) were provided, but no name, label selector, or --all flag specified
[root@k8s-master ~]# kubectl scale --replicas= deployment myapp
deployment.extensions/myapp scaled
[root@k8s-master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
client / Running 5m
myapp-848b5b879b-5vqx5 / ContainerCreating 12s
myapp-848b5b879b-98pht / ContainerCreating 12s
myapp-848b5b879b-9kd6s / Running 10m
myapp-848b5b879b-dvtgn / Running 10m
myapp-848b5b879b-s6bjh / ContainerCreating 12s
nginx-deploy-5b595999-d7rpg / Running 226d
nginx-deploy-5b595999-s4cjv / Running 1h
[root@k8s-master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
client / Running 5m
myapp-848b5b879b-5vqx5 / Running 15s
myapp-848b5b879b-98pht / Running 15s
myapp-848b5b879b-9kd6s / Running 10m
myapp-848b5b879b-dvtgn / Running 10m
myapp-848b5b879b-s6bjh / Running 15s
nginx-deploy-5b595999-d7rpg / Running 226d
nginx-deploy-5b595999-s4cjv / Running 1h
[root@k8s-master ~]# kubectl scale --replicas= deployment myapp
deployment.extensions/myapp scaled
[root@k8s-master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
client / Running 5m
myapp-848b5b879b-5vqx5 / Running 30s
myapp-848b5b879b-9kd6s / Running 10m
myapp-848b5b879b-dvtgn / Running 10m
nginx-deploy-5b595999-d7rpg / Running 226d
nginx-deploy-5b595999-s4cjv / Running 1h
[root@k8s-master ~]# kubectl set image deployment myapp myapp=ikubernetes/myapp:v2
deployment.extensions/myapp image updated
[root@k8s-master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
client / Running 9m
myapp-74c94dcb8c-mjjpw / ContainerCreating 14s
myapp-848b5b879b-5vqx5 / Running 4m
myapp-848b5b879b-9kd6s / Running 14m
myapp-848b5b879b-dvtgn / Running 14m
nginx-deploy-5b595999-d7rpg / Running 226d
nginx-deploy-5b595999-s4cjv / Running 1h
[root@k8s-master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
client / Running 10m
myapp-74c94dcb8c-l2j8v / ContainerCreating 32s
myapp-74c94dcb8c-mjjpw / Running 1m
myapp-848b5b879b-9kd6s / Running 15m
myapp-848b5b879b-dvtgn / Running 15m
nginx-deploy-5b595999-d7rpg / Running 226d
nginx-deploy-5b595999-s4cjv / Running 1h
[root@k8s-master ~]# kubectl get pods
NAME READY STATUS RESTARTS AGE
client / Running 11m
myapp-74c94dcb8c-dhhln / Running 1m
myapp-74c94dcb8c-l2j8v / Running 1m
myapp-74c94dcb8c-mjjpw / Running 2m
nginx-deploy-5b595999-d7rpg / Running 226d
nginx-deploy-5b595999-s4cjv / Running 1h
[root@k8s-master ~]# kubectl edit svc myapp
修改service的type ClusterType 改成NodePort service/myapp edited
[root@k8s-master ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> /TCP 226d
myapp NodePort 10.101.171.64 <none> :/TCP 19m
nginx ClusterIP 10.106.232.252 <none> /TCP 25m
通过service可以把服务映射到集群中的任何一个节点上

k8s基础操作命令的更多相关文章
- git的简单理解及基础操作命令
前端小白一枚,最近开始使用git,于是花了2天看了廖雪峰的git教程(偏实践,对于学习git的基础操作很有帮助哦),也在看<git版本控制管理>这本书(偏理论,内容完善,很不错),针对所学 ...
- MySQL基础操作命令
MySQL基础操作命令 1. 查看MySQL进程 ps -ef|grep mysql |grep -v grep 2. 查看MySQL端口 ss -lnt | grep 3306 3. MySQL的启 ...
- 《两地书》--Kubernetes(K8s)基础知识(docker容器技术)
大家都知道历史上有段佳话叫“司马相如和卓文君”.“皑如山上雪,皎若云间月”.卓文君这么美,却也抵不过多情女儿薄情郎. 司马相如因一首<子虚赋>得汉武帝赏识,飞黄腾达之后便要与卓文君“故来相 ...
- Git的常见基础操作命令
Git的常见基础操作命令 1安装初始化 1.1安装git本地安装Windows版本 下载地址: https://git-scm.com/downloads/ 1.2初始化Git用户信息配置 配置git ...
- ASP.NET Core on K8S深入学习(1)K8S基础知识与集群搭建
在上一个小系列文章<ASP.NET Core on K8S学习初探>中,通过在Windows上通过Docker for Windows搭建了一个单节点的K8S环境,并初步尝试将ASP.NE ...
- Kubeasz部署K8s基础测试环境简介
下面介绍使用Kubeasz部署K8s集群环境. https://github.com/easzlab/kubeasz在需要使用kubeeasz项目安装的k8s时,需要将所有需要它来部署的节点上,都安装 ...
- Kubernetes(K8s)基础知识(docker容器技术)
今天谈谈K8s基础知识关键词: 一个目标:容器操作:两地三中心:四层服务发现:五种Pod共享资源:六个CNI常用插件:七层负载均衡:八种隔离维度:九个网络模型原则:十类IP地址:百级产品线:千级物理机 ...
- docker+k8s基础篇五
Docker+K8s基础篇(五) service资源介绍 A:service资源的工作特性 service的使用 A:service字段介绍 B:ClusterIP的简单使用 C:NodePort的简 ...
- docker+k8s基础篇四
Docker+K8s基础篇(四) pod控制器 A:pod控制器类型 ReplicaSet控制器 A:ReplicaSet控制器介绍 B:ReplicaSet控制器的使用 Deployment控制器 ...
随机推荐
- pytorch 中conv1d操作
参考:https://blog.csdn.net/liujh845633242/article/details/102668515 这里我重点说一下1D卷积,2D卷积很好理解,但是1D卷积就不是那么好 ...
- IfcRoot
IfcRoot is the most abstract and root class for all entity definitions that roots in the kernel or i ...
- 工控随笔_C#连接PLC_之_C#入门_01_配置学习环境
最近在做一个东西,需要用到通用开发语言开发一个软件来读取PLC的内容,这方面的难点在于解析PLC利用 以太网通讯的通讯协议,而一般的PLC厂商对自己的协议是封闭的,对一般的开发者是不开放的,虽然可以通 ...
- 使用BaGet 搭建私有nuget 服务器
使用BaGet 搭建私有nuget 服务器 netNugetBaGet 引言 为了增强代码的安全性和企业团队开发的高效性,搭建私有的package 包管理服务器是很有必要的,搭建私有的类库管理服务有以 ...
- Java之输入和输出
输出 在前面的代码中,我们总是用System.out.println()来向屏幕输出一些内容: println是print line的缩写,表示输出并换行.因此,如果输出后不想换行,可以用print( ...
- 分割nginx日志
#!/bin/bash #此脚本用于自动分割Nginx的日志,包括access.log和error.log #每天00:00执行此脚本 将前一天的access.log重命名为access-xxxx-x ...
- SQL2014做数据库主从镜像备份(也可以用于高可用)备忘(非域控)。
部份内容参考原始文章链接:https://www.cnblogs.com/stragon/p/5643754.html ,同时比较有参考价值的文章:https://blog.csdn.net/sqls ...
- Matlab 线性规划问题模型代码
线性规划问题的基本内容 线性规划解决的是自变量在一定的线性约束条件下,使得线性目标函数求得最大值或者最小值的问题. \[ \min z=\sum_{j=1}^{n} f_{j} x_{j} \] \[ ...
- cannot access org.springframework.core.io.InputStreamSouce
cannot access org.springframework.core.io.InputStreamSouce错误,把mian路径下main.iml文件备份一下,然后删除该文件,报错就会消失,但 ...
- Python之路【第三十篇】:django 模型层-多表关系
多表操作 文件为 ----> orm2 数据库表关系之关联字段与外键约束 一对多Book id title price publish email addr 1 php 100 人民出版社 1 ...