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基础操作命令的更多相关文章

  1. git的简单理解及基础操作命令

    前端小白一枚,最近开始使用git,于是花了2天看了廖雪峰的git教程(偏实践,对于学习git的基础操作很有帮助哦),也在看<git版本控制管理>这本书(偏理论,内容完善,很不错),针对所学 ...

  2. MySQL基础操作命令

    MySQL基础操作命令 1. 查看MySQL进程 ps -ef|grep mysql |grep -v grep 2. 查看MySQL端口 ss -lnt | grep 3306 3. MySQL的启 ...

  3. 《两地书》--Kubernetes(K8s)基础知识(docker容器技术)

    大家都知道历史上有段佳话叫“司马相如和卓文君”.“皑如山上雪,皎若云间月”.卓文君这么美,却也抵不过多情女儿薄情郎. 司马相如因一首<子虚赋>得汉武帝赏识,飞黄腾达之后便要与卓文君“故来相 ...

  4. Git的常见基础操作命令

    Git的常见基础操作命令 1安装初始化 1.1安装git本地安装Windows版本 下载地址: https://git-scm.com/downloads/ 1.2初始化Git用户信息配置 配置git ...

  5. ASP.NET Core on K8S深入学习(1)K8S基础知识与集群搭建

    在上一个小系列文章<ASP.NET Core on K8S学习初探>中,通过在Windows上通过Docker for Windows搭建了一个单节点的K8S环境,并初步尝试将ASP.NE ...

  6. Kubeasz部署K8s基础测试环境简介

    下面介绍使用Kubeasz部署K8s集群环境. https://github.com/easzlab/kubeasz在需要使用kubeeasz项目安装的k8s时,需要将所有需要它来部署的节点上,都安装 ...

  7. Kubernetes(K8s)基础知识(docker容器技术)

    今天谈谈K8s基础知识关键词: 一个目标:容器操作:两地三中心:四层服务发现:五种Pod共享资源:六个CNI常用插件:七层负载均衡:八种隔离维度:九个网络模型原则:十类IP地址:百级产品线:千级物理机 ...

  8. docker+k8s基础篇五

    Docker+K8s基础篇(五) service资源介绍 A:service资源的工作特性 service的使用 A:service字段介绍 B:ClusterIP的简单使用 C:NodePort的简 ...

  9. docker+k8s基础篇四

    Docker+K8s基础篇(四) pod控制器 A:pod控制器类型 ReplicaSet控制器 A:ReplicaSet控制器介绍 B:ReplicaSet控制器的使用 Deployment控制器 ...

随机推荐

  1. linux压缩 zip和unzip

    .把/home目录下面的mydata目录压缩为mydata.zip zip -r mydata.zip mydata #压缩mydata目录 .把/home目录下面的mydata.zip解压到myda ...

  2. Java基础 awt Frame 点击叉后,在控制台输出提示信息并关闭程序

        JDK :OpenJDK-11      OS :CentOS 7.6.1810      IDE :Eclipse 2019‑03 typesetting :Markdown   code ...

  3. ES6 - 数组扩展(扩展运算符)

    扩展运算符 扩展运算符(spread)是三个点(...).它好比 rest 参数的逆运算(函数),将一个数组转为用逗号分隔的参数序列. rest: 变量将多余的参数放入数组中. spread(扩展): ...

  4. opencv马赛克python实现

    最近要实现opencv视频打马赛克,在网上找了一下基本是C++的实现,好在原理一样,下面给出python实现. 原理和注意点,我都写在注释里了 import cv2 ##马赛克 def do_mosa ...

  5. Python unittest(PyUnit)单元测试框架

    PyUnit(unittest) 是 Python 自带的单元测试框架,用于编写和运行可重复的测试.PyUnit 是 xUnit 体系的一个成员,xUnit 是众多测试框架的总称,PyUnit 主要用 ...

  6. 1.3.1 LVM条带化error

    报错:​ #pvcreate /dev/dfb2 /dev/dfa2 /dev/dfc2 /dev/dfd2 already exists in filesystem   Can't open /de ...

  7. PHP设计模式 - 解释器模式

    给定一个语言, 定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子. 角色: 环境角色(PlayContent):定义解释规则的全局信息. 抽象解释器(Empress):定 ...

  8. LeetCode 540. 有序数组中的单一元素(Single Element in a Sorted Array) 42

    540. 有序数组中的单一元素 540. Single Element in a Sorted Array 题目描述 每日一算法2019/6/14Day 42LeetCode540. Single E ...

  9. 【Uiautomatorviewer】报错:Unexpected error while obtaining UI hierarchy java.lang.reflect.InvocationT...

    android 9.0系统不能用uiautomator识别 解决方法:android 8.0 以后 uiautomator 无法直接使用的问题https://www.cnblogs.com/copyw ...

  10. 利用nginx搭建文件服务器

    1.安装nginx 安装教程:https://www.cnblogs.com/sunny1009/p/11411673.html 2.配置nginx 配置server节点下的location部分和se ...