linux学习-kubernetes学习之kubectl命令(代码片段)

丢爸 丢爸     2023-01-30     598

关键词:

kubernetes版本1.22.3

问题1:

Error from server: Get "https://192.168.88.103:10250/containerLogs/default/client/client": dial tcp 192.168.88.103:10250: connect: no route to host

解决方法

#经查看因为192.168.88.103上面firewalld服务处于开启状态,需关闭,并设置为开机不启动
[root@node2 ~]# systemctl stop firewalld
[root@node2 ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
kubectl 命令
#查看节点的详细信息
[root@master bak]# kubectl describe node node1
Name:               node1
Roles:              <none>
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/os=linux
                    kubernetes.io/arch=amd64
                    kubernetes.io/hostname=node1
                    kubernetes.io/os=linux
Annotations:        flannel.alpha.coreos.com/backend-data: "VNI":1,"VtepMAC":"72:c5:c4:bc:31:ff"
                    flannel.alpha.coreos.com/backend-type: vxlan
                    flannel.alpha.coreos.com/kube-subnet-manager: true
                    flannel.alpha.coreos.com/public-ip: 192.168.88.102
                    kubeadm.alpha.kubernetes.io/cri-socket: /var/run/dockershim.sock
                    node.alpha.kubernetes.io/ttl: 0
                    volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp:  Wed, 03 Nov 2021 10:45:38 -0400
Taints:             <none>
Unschedulable:      false
Lease:
  HolderIdentity:  node1
  AcquireTime:     <unset>
  RenewTime:       Wed, 03 Nov 2021 11:12:26 -0400
Conditions:
  Type                 Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
  ----                 ------  -----------------                 ------------------                ------                       -------
  NetworkUnavailable   False   Wed, 03 Nov 2021 10:45:46 -0400   Wed, 03 Nov 2021 10:45:46 -0400   FlannelIsUp                  Flannel is running on this node
  MemoryPressure       False   Wed, 03 Nov 2021 11:11:04 -0400   Wed, 03 Nov 2021 10:45:38 -0400   KubeletHasSufficientMemory   kubelet has sufficient memory available
  DiskPressure         False   Wed, 03 Nov 2021 11:11:04 -0400   Wed, 03 Nov 2021 10:45:38 -0400   KubeletHasNoDiskPressure     kubelet has no disk pressure
  PIDPressure          False   Wed, 03 Nov 2021 11:11:04 -0400   Wed, 03 Nov 2021 10:45:38 -0400   KubeletHasSufficientPID      kubelet has sufficient PID available
  Ready                True    Wed, 03 Nov 2021 11:11:04 -0400   Wed, 03 Nov 2021 10:45:48 -0400   KubeletReady                 kubelet is posting ready status
Addresses:
  InternalIP:  192.168.88.102
  Hostname:    node1
Capacity:
  cpu:                4
  ephemeral-storage:  38815216Ki
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             7992344Ki
  pods:               110
Allocatable:
  cpu:                4
  ephemeral-storage:  35772103007
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             7889944Ki
  pods:               110
System Info:
  Machine ID:                 53c69389ae554f4f83ed809bd51dddca
  System UUID:                BF9C4D56-0FE6-5083-0565-16792C78EDF6
  Boot ID:                    d4fd0a95-b88f-42af-8822-696d59b63542
  Kernel Version:             3.10.0-862.el7.x86_64
  OS Image:                   CentOS Linux 7 (Core)
  Operating System:           linux
  Architecture:               amd64
  Container Runtime Version:  docker://20.10.10
  Kubelet Version:            v1.22.3
  Kube-Proxy Version:         v1.22.3
PodCIDR:                      192.168.2.0/24
PodCIDRs:                     192.168.2.0/24
Non-terminated Pods:          (2 in total)
  Namespace                   Name                     CPU Requests  CPU Limits  Memory Requests  Memory Limits  Age
  ---------                   ----                     ------------  ----------  ---------------  -------------  ---
  kube-system                 kube-flannel-ds-dfvsb    100m (2%)     100m (2%)   50Mi (0%)        50Mi (0%)      35m
  kube-system                 kube-proxy-gn9nj         0 (0%)        0 (0%)      0 (0%)           0 (0%)         35m
Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource           Requests   Limits
  --------           --------   ------
  cpu                100m (2%)  100m (2%)
  memory             50Mi (0%)  50Mi (0%)
  ephemeral-storage  0 (0%)     0 (0%)
  hugepages-1Gi      0 (0%)     0 (0%)
  hugepages-2Mi      0 (0%)     0 (0%)
Events:
  Type    Reason                   Age                From        Message
  ----    ------                   ----               ----        -------
  Normal  Starting                 26m                kube-proxy  
  Normal  Starting                 34m                kube-proxy  
  Normal  NodeHasSufficientMemory  35m                kubelet     Node node1 status is now: NodeHasSufficientMemory
  Normal  NodeHasNoDiskPressure    35m                kubelet     Node node1 status is now: NodeHasNoDiskPressure
  Normal  NodeHasSufficientPID     35m                kubelet     Node node1 status is now: NodeHasSufficientPID
  Normal  NodeAllocatableEnforced  35m                kubelet     Updated Node Allocatable limit across pods
  Normal  Starting                 35m                kubelet     Starting kubelet.
  Normal  NodeReady                34m                kubelet     Node node1 status is now: NodeReady
  Normal  Starting                 26m                kubelet     Starting kubelet.
  Normal  NodeHasNoDiskPressure    26m (x2 over 26m)  kubelet     Node node1 status is now: NodeHasNoDiskPressure
  Normal  NodeHasSufficientPID     26m (x2 over 26m)  kubelet     Node node1 status is now: NodeHasSufficientPID
  Normal  NodeAllocatableEnforced  26m                kubelet     Updated Node Allocatable limit across pods
  Normal  NodeHasSufficientMemory  26m (x2 over 26m)  kubelet     Node node1 status is now: NodeHasSufficientMemory
  Normal  NodeReady                26m                kubelet     Node node1 status is now: NodeReady
#version查看kubectl版本信息
[root@master bak]# kubectl version
Client Version: version.InfoMajor:"1", Minor:"22", GitVersion:"v1.22.3", GitCommit:"c92036820499fedefec0f847e2054d824aea6cd1", GitTreeState:"clean", BuildDate:"2021-10-27T18:41:28Z", GoVersion:"go1.16.9", Compiler:"gc", Platform:"linux/amd64"
Server Version: version.InfoMajor:"1", Minor:"22", GitVersion:"v1.22.3", GitCommit:"c92036820499fedefec0f847e2054d824aea6cd1", GitTreeState:"clean", BuildDate:"2021-10-27T18:35:25Z", GoVersion:"go1.16.9", Compiler:"gc", Platform:"linux/amd64"
#cluster-info获得集群信息
[root@master bak]# kubectl cluster-info
Kubernetes control plane is running at https://192.168.88.101:6443
CoreDNS is running at https://192.168.88.101:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
#部署nginx应用
#--dry-run程序并没有真正执行
[root@master ~]# kubectl run nginx-deploy --image=nginx:1.14-alpine --port=80 --dry-run=true
W1103 11:25:31.051890  100284 helpers.go:569] --dry-run=true is deprecated (boolean value) and can be replaced with --dry-run=client.
pod/nginx-deploy created (dry run)
#创建deployment ,--replicas表示使用两个副本部署nginx
[root@master ~]# kubectl create deployment nginx-deploy --image=nginx:1.14-alpine --replicas=2
deployment.apps/nginx-deploy created
#通过service暴露资源
[root@master ~]# kubectl expose deployment nginx-deploy  --name=nginx --port=80 --target-port=80 --protocol=TCP
service/nginx exposed
#获取pod列表
[root@master ~]# kubectl get pods
NAME                            READY   STATUS    RESTARTS      AGE
nginx                           1/1     Running   1 (74m ago)   14h
nginx-deploy-7c948bcff4-jclqg   1/1     Running   0             26m
nginx-deploy-7c948bcff4-mczxp   1/1     Running   0             26m
#获取service列表,service创建后通过SELECTOR(标签选择器)关联至后端的Pod
[root@master ~]# kubectl get service -o wide
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE   SELECTOR
kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP   24h   <none>
nginx        ClusterIP   10.105.125.19   <none>        80/TCP    28m   app=nginx-deploy
#通过curl访问service的地址,可以查看nginx服务的页面
[root@master ~]# curl 10.105.125.19
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body 
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
#查看kube的服务dns
[root@master ~]# kubectl get service -n kube-system
NAME       TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)                  AGE
kube-dns   ClusterIP   10.96.0.10   <none>        53/UDP,53/TCP,9153/TCP   23h
#创建一个client deployment
[root@master ~]# kubectl create deployment client --image=busybox --replicas=1
deployment.apps/client created
#运行名为client的deployment
[root@master ~]# kubectl run client -it --image=busybox --restart=Never
If you don't see a command prompt, try pressing enter.
/ # cat /etc/resolv.conf
#DNS地址
nameserver 10.96.0.10
#kubernetes本地的Pod资源,default指的名称空间的名字,search表示搜索域
search default.svc.cluster.local svc.cluster.local cluster.local
options ndots:5
#在pod中可以直接解析service
/ # wget -O - -q nginx
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body 
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>

#解析nginx的A记录的service地址
[root@master ~]# dig -t A nginx.default.svc.cluster.local @10.96.0.10 

; <<>> DiG 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.7 <<>> -t A nginx.default.svc.cluster.local @10.96.0.10
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31486
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;nginx.default.svc.cluster.local. IN	A

;; ANSWER SECTION:
nginx.default.svc.cluster.local. 30 IN	A	10.105.125.19

;; Query time: 0 msec
;; SERVER: 10.96.0.10#53(10.96.0.10)
;; WHEN: Sun Nov 07 09:54:21 EST 2021
;; MSG SIZE  rcvd: 107

[root@master ~]# kubectl get services -o wide
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGE   SELECTOR
kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP   23h   <none>
nginx        ClusterIP   10.105.125.19   <none>        80/TCP    24m   app=nginx-deploy
#查看service的信息
[root@master ~]# kubectl describe service nginx
Name:              nginx
Namespace:         default
Labels:            app=nginx-deploy
Annotations:       <none>
#选择器
Selector:          app=nginx-deploy
Type:              ClusterIP
IP Family Policy:  SingleStack
IP Families:       IPv4
IP:                10.105.125.19
IPs:               10.105.125.19
Port:              <unset>  80/TCP
TargetPort:        80/TCP
#对应的Pod的地址
Endpoints:         10.244.1.4:80,10.244.3.3:80
Session Affinity:  None
Events:            <none>
[root@master ~]# kubectl get pods --show-labels
NAME                            READY   STATUS             RESTARTS       AGE   LABELS
client                          1/1     Running            0              13m   run=client
client-7c75c79d7c-h9994         0/1     CrashLoopBackOff   8 (58s ago)    16m   app=client,pod-template-hash=7c75c79d7c
nginx                           1/1     Running            1 (103m ago)   14h   run=nginx
nginx-deploy-7c948bcff4-jclqg   1/1     Running            0              55m   app=nginx-deploy,pod-template-hash=7c948bcff4
nginx-deploy-7c948bcff4-mczxp   1/1     Running            0              55m   app=nginx-deploy,pod-template-hash=7c948bcff4
#动态扩展副本数量(增加/减少)
[root@master ~]# kubectl scale --replicas=3 deployment nginx-deploy
deployment.apps/nginx-deploy scaled
[root@master ~]# kubectl get pods
NAME                            READY   STATUS             RESTARTS       AGE
client                          1/1     Running            0              23m
client-7c75c79d7c-h9994         0/1     CrashLoopBackOff   10 (33s ago)   26m
nginx                           1/1     Running            1 (113m ago)   14h
nginx-deploy-7c948bcff4-jclqg   1/1     Running            0              65m
nginx-deploy-7c948bcff4-lhq2q   1/1     Running            0              7s
nginx-deploy-7c948bcff4-mczxp   1/1     Running            0              65m
[root@master ~]# kubectl scale --replicas=2 deployment nginx-deploy
deployment.apps/nginx-deploy scaled
[root@master ~]# kubectl get pods
NAME                            READY   STATUS             RESTARTS       AGE
client                          1/1     Running            0              24m
client-7c75c79d7c-h9994         0/1     CrashLoopBackOff   10 (84s ago)   27m
nginx                           1/1     Running            1 (114m ago)   14h
nginx-deploy-7c948bcff4-jclqg   1/1     Running            0              66m
nginx-deploy-7c948bcff4-mczxp   1/1     Running            0              66m
#修改service类型让其它机器可以访问Pod资源
[root@master ~]# kubectl edit service nginx
#修改  type: NodePort
[root@master ~]# kubectl get service
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP        24h
nginx        NodePort    10.105.125.19   <none>        80:31526/TCP   49m

linux快速入门打开你的学习之道

相信看到这篇文章的你一定是想要学习Linux,或者已经在学习Linux的人了,那我们就可以一起探讨一下,学习Linux如何快速入门呢?首先,希望大家弄清楚自己为什么要学习Linux,有的人是因为兴趣,有的人是因为Linux比较好找工... 查看详情

linux学习-docker学习之私有registry(代码片段)

启动构建私有Registry#--restart=always参数表示在docker服务重新启动时自动启动此容器[root@docker~]#dockerrun-d-p5000:5000--restart=always-v/opt/registry:/var/lib/registryregistry[root@docker~]#dockerimagelsREPOSI 查看详情

kubernetes深入学习之二:编译和部署镜像(api-server)(代码片段)

欢迎访问我的GitHub本篇概览本文是《Kubernetes深入学习》系列的第二篇,上一章我们下载了Kubernetes1.13源码,然后修改kubectl源码再构建运行进行验证,在整个源码包中,除了kubectl这样的可执行程序,还有api-server、controller-manager这... 查看详情

kubernetes学习之入门篇

本篇内容是在公司做技术分享时的PPT,主要内容:Kubernetes&Docker简介容器技术基础知识介绍Kubernetes核心设计浅析详细内容请看PPT:https://download.csdn.net/download/u010657094/13078830或者:https://github.com/ByrsH/doc/blo 查看详情

linux学习-docker学习之dockerfile(代码片段)

dockerfile命令FROM:基础镜像FROMcentos:6.9FROMcentos@ImageIDRUN:构建镜像过程中运行的命令bash程序–使用&&连接多个命令#仅限bash程序,多个命令通过&&连接RUNcd/etc/yum.repos.d&&mkdirbak&&mv*. 查看详情

kubernetes学习之入门篇

...篇内容是在公司做技术分享时的PPT,主要内容:Kubernetes&Docker简介容器技术基础知识介绍Kubernetes核心设计浅析详细内容请看PPT:https://download.csdn.net/download/u010657094/13078830或者:https://github.com/ByrsH/doc/blob/main/Kubern... 查看详情

python3-学习之linux极简教程(学习准备)(代码片段)

前言:此篇文章是为Python学习做铺垫,主要学习内容:01.操作系统历史概述02.购买和连接云服务器03.Bash和Linux命令04.获取命令的帮助05.文件操作相关命令-106.文件操作相关命令-207.使用包管理工具安装软件08.配置阿里云防火... 查看详情

kubernetes学习二:kubernetes集群搭建之部署kubernetesserver(代码片段)

目录1、解压缩文件2、部署kube-apiserver组件创建TLSBootstrappingToken3、创建Apiserver配置文件4、创建apiserversystemd文件5、启动服务6、部署kube-scheduler组件创建kube-scheduler配置文件7、部署kube-controller-manager组件创建kube-controller-manager配置文... 查看详情

linux学习-docker学习之数据卷(代码片段)

Docker镜像由多个只读层叠加而成,启动容器时,Docker会加载只读镜像层并在镜像栈顶部添加一个读写层。如果运行中的容器修改了现有的一个已经存在的文件,那该文件将会从读写层下面的只读层复制到读写层,... 查看详情

k8s学习之体系架构介绍

K8S学习之体系架构介绍Kubernetes整体架构master构成worker构成Controller控制器其他Label参考链接Kubernetes整体架构内容介绍每个Kubernetes集群都有两种类型的节点:master和worker。master负责控制和监控worker工作集群整体组成master构成整... 查看详情

从零入门机器学习之linux系统详解

...。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,科大讯飞比赛第三名,CCF比赛第四名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过... 查看详情

从零入门机器学习之linux系统详解

...。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,科大讯飞比赛第三名,CCF比赛第四名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过... 查看详情

jackson学习之六:常用类注解(代码片段)

...所有原创文章分类汇总及配套源码,涉及Java、Docker、Kubernetes、DevOPS等;本篇概览本文是《jackson学习》系列的第六篇,继续学习jackson强大的注解能力,本篇学习的是常用的类注解,并 查看详情

容器学习之k8s入门1

一、版本策略  1、kube-apiserver  HA升级,小版本号最多差1(必须最先升级apiserver)    例:最新为1.18,其余均为1.18或1.17  2、kubelet,不可高于kube-apiserver,最多差两个版本    例:最新api-server为1.18  kubelet可... 查看详情

机器学习之寻找合适的学习方法

...以为往后的时间都是奉献给java了,却不想到闯入了机器学习的殿堂。那年夏天,烈日炎炎,穿越1000公里来到陌生的城市漂泊,希望这一切都是值得的。  本人java出身,略懂c,linux,数据库,技术渣渣一枚。  希望人生的每一... 查看详情

linux学习之centos--虚拟机下的centos如何上网

...5377/archive/2013/04/05/3001148.html 这篇随笔应该说跟CentOS的学习关系不是很大,但是却关系到了我接下来的CentOS学习。。。。。。自从在虚拟机中安装了CentOS以来,就想着能不能在虚拟机里面和宿主windows一样上网,当时可是花费... 查看详情

机器学习之概率统计基础,机器学习学习笔记----07

机器学习之概率统计基础文章目录机器学习之概率统计基础一、条件概率二、贝叶斯公式三、独立性注:本图片来源于《机器学习中的数学》一书一、条件概率在一个情况发生的情况下,另一个情况的概率二、贝叶斯公... 查看详情

深度学习之bert中文分类学习

深度学习之Bert中文分类学习BERT实验预训练结果分析tfhub_handle_preprocess="https://hub.tensorflow.google.cn/tensorflow/bert_zh_preprocess/3"bert_preprocess_model=hub.KerasLayer(tfhub_handle_preprocess)text_test=['我真是个天才啊! 查看详情