k8s-学习-14-kubelet详解

k8s-学习-13-kubelet详解

1、使用二进制安装部署K8S的要点

1、基础设置环境准备好:

  • Centos7.6系统(内核在3.8.x以上)
  • 关闭selinux,关闭firewalld服务
  • 时间同步(chronyd)
  • 调整Base源,Epel源
  • 内核优化(文件描述符大小,内核转发,等等)

2、安装部署bind9内网DNS系统

3、安装部署docker的私有仓库 -- harbor

4、准备证书签发环境 -- cfssl

5、安装部署主动节点服务(4个)

  • Etcd
  • Apiserver
  • Controller-manager
  • Scheduler

6、安装部署运算节点服务(2个)

  • kubelet
  • kube-proxy

2、查看证书信息

复制代码
[root@hdss7-200 certs]# cfssl-certinfo -cert apiserver.pem
{
  "subject": {
    "common_name": "k8s-apiserver",
    "country": "CN",
    "organization": "od",
    "organizational_unit": "ops",
    "locality": "beijing",
    "province": "beijing",
    "names": [
      "CN",
      "beijing",
      "beijing",
      "od",
      "ops",
      "k8s-apiserver"
    ]
  },
  "issuer": {
    "common_name": "OldboyEdu",
    "country": "CN",
    "organization": "od",
    "organizational_unit": "ops",
    "locality": "beijing",
    "province": "beijing",
    "names": [
      "CN",
      "beijing",
      "beijing",
      "od",
      "ops",
      "OldboyEdu"
    ]
  },
  "serial_number": "277359228170517373750388551602385964782473057337",
  "sans": [
    "kubernetes.default",
    "kubernetes.default.svc",
    "kubernetes.default.svc.cluster",
    "kubernetes.default.svc.cluster.local",
    "127.0.0.1",
    "192.168.0.1",
    "10.4.7.10",
    "10.4.7.21",
    "10.4.7.22",
    "10.4.7.23"
  ],
  "not_before": "2022-04-03T09:50:00Z",
  "not_after": "2042-03-29T09:50:00Z",
  "sigalg": "SHA256WithRSA",
  "authority_key_id": "E1:A6:A2:B9:90:3D:58:DB:51:3F:3F:83:19:52:B7:32:EE:BB:CB:4B",
  "subject_key_id": "E6:CE:9:F8:98:15:E4:3F:90:F1:7E:E7:B5:C5:B9:98:56:BA:92:7",
  "pem": "-----BEGIN CERTIFICATE-----\nMIIEbzCCA1egAwIBAgIUMJU3yqg9Hlil/ODQ534y/3qmFDkwDQYJKoZIhvcNAQEL\nBQAwYDELMAkGA1UEBhMCQ04xEDAOBgNVBAgTB2JlaWppbmcxEDAOBgNVBAcTB2Jl\naWppbmcxCzAJBgNVBAoTAm9kMQwwCgYDVQQLEwNvcHMxEjAQBgNVBAMTCU9sZGJv\neUVkdTAeFw0yMjA0MDMwOTUwMDBaFw00MjAzMjkwOTUwMDBaMGQxCzAJBgNVBAYT\nAkNOMRAwDgYDVQQIEwdiZWlqaW5nMRAwDgYDVQQHEwdiZWlqaW5nMQswCQYDVQQK\nEwJvZDEMMAoGA1UECxMDb3BzMRYwFAYDVQQDEw1rOHMtYXBpc2VydmVyMIIBIjAN\nBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwDzTAXN9OyYSl3rAj0LHBY7Z63uT\npgUEAQaBYtiU9yez0ppyTjxm4I/OF/aa/ampQAv08mKIOLXY9Di/yekfY0WabF5N\nc79wHIbbbjYd2RCuDYVW7PvXY4LgZ785b66I33/cPPWuZB/wU1nwpScgvmR4hvP3\n+WJhbGMqZb3bYsxAXOM8BzQss8rUFaD3SQblEtj7q8NC63KTMZZ9JN/ZKOqKoXLV\nKQk7cXaBhZ53R61ElHkzJTY+hQGH5wXz2dwKIax7j+STZF9gp0oCxw1zZ7VcnAt9\nOWJzgcvABnxJBblKkeXawIonv7fgsNcMtbYtWeGxdorm6mMtBIN5k+ojhwIDAQAB\no4IBGzCCARcwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoGCCsGAQUFBwMBMAwG\nA1UdEwEB/wQCMAAwHQYDVR0OBBYEFObOCfiYFeQ/kPF+57XFuZhWupIHMB8GA1Ud\nIwQYMBaAFOGmormQPVjbUT8/gxlStzLuu8tLMIGhBgNVHREEgZkwgZaCEmt1YmVy\nbmV0ZXMuZGVmYXVsdIIWa3ViZXJuZXRlcy5kZWZhdWx0LnN2Y4Iea3ViZXJuZXRl\ncy5kZWZhdWx0LnN2Yy5jbHVzdGVygiRrdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNs\ndXN0ZXIubG9jYWyHBH8AAAGHBMCoAAGHBAoEBwqHBAoEBxWHBAoEBxaHBAoEBxcw\nDQYJKoZIhvcNAQELBQADggEBAJXLPQtCBENcdsdoiRyY29sGN/vDbTEpEohPKxIZ\ntu3qcwGXRdxIb3s8m1Vat3wH7S1sC/iZxH2pqPGYrLSqdE9DQVau/mH+CoqNKnR2\npe4aF01Zo6+LjVFrMY49egk0K54HXJrPql3jBL4NO+w+8/dPu71PUXw11WmeIE1s\n3CcEcYXQ99fVZ6IBhtZJu8g5v10JT8+t76mV2TwzpszKW0Fk0X5zylqQ4UjyCvZr\nsy4oPa/s/VJK+yoq1f9o4u7nNG5t3mKNRS2T180OkaTD0jSNUUavIXdF5O386XC3\nH2ukR7imAQol6YXZWWGTzk+qClCm988yJ0pwnv43pGKRjl8=\n-----END CERTIFICATE-----\n"
}
[root@hdss7-200 certs]# 
复制代码

 

3、查看其他域名证书信息

cfssl-certinfo -domain www.baidu.com

4、kubelet详解

4.1、管理k8s核心资源的三种基本方法:

  • 陈述式管理方法  - 主要依赖命令行CLI工具进行管理
  • 声明式管理方法  - 主要依赖统一资源配置清单(manifest)进行管理
  • GUI式管理方法   - 主要依赖图形化操作界面(web界面)进行管理

4.2、陈述式管理资源方法

复制代码
# 1、查看名称空间
[root@hdss7-22 kubelet]# kubectl get namespace
NAME              STATUS   AGE
default           Active   3d20h
kube-node-lease   Active   3d20h
kube-public       Active   3d20h
kube-system       Active   3d20h

# 2、查看名称空间内的资源
[root@hdss7-22 kubelet]# kubectl get all -n default
NAME                 READY   STATUS    RESTARTS   AGE
pod/nginx-ds-7hxxw   1/1     Running   3          2d19h
pod/nginx-ds-n5vrp   1/1     Running   3          2d19h


NAME                 TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)   AGE
service/kubernetes   ClusterIP   192.168.0.1   <none>        443/TCP   3d20h

NAME                      DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR   AGE
daemonset.apps/nginx-ds   2         2         2       2            2           <none>          3d11h


# 3、名称空间的创建删除
[root@hdss7-22 kubelet]# kubectl create namespace app
namespace/app created
[root@hdss7-22 kubelet]# kubectl get namespace
NAME              STATUS   AGE
app               Active   9s
default           Active   3d20h
kube-node-lease   Active   3d20h
kube-public       Active   3d20h
kube-system       Active   3d20h
[root@hdss7-22 kubelet]# 
[root@hdss7-22 kubelet]# kubectl delete namespace app
namespace "app" deleted
[root@hdss7-22 kubelet]# 
[root@hdss7-22 kubelet]# kubectl get namespace       
NAME              STATUS   AGE
default           Active   3d20h
kube-node-lease   Active   3d20h
kube-public       Active   3d20h
kube-system       Active   3d20h
[root@hdss7-22 kubelet]# 
复制代码

 4、创建deployment

~]# kubectl create deployment nginx-dp --image=harbor.od.com/public/nginx:v1.7.9 -n kube-public

5、查看deployment

~]# kubectl get deployment nginx-dp -o wide -n kube-public   

~]# kubectl get pods -o wide -n kube-public

~]# kubectl describe deployment nginx-dp -n kube-public

6、k8s 默认是滚动发布

StrategyType:  RollingUpdate

7、进入容器

~]#kubectl exec -it nginx-dp-5dfc689474-4whfn /bin/bash -n kube-public

8、删除pod,删除pod之后会重新拉起另一个pod

~]# kubectl delete pod nginx-dp-5dfc689474-4whfn -n kube-public

9、创建service资源

~]# kubectl expose deployment nginx-dp --port=80 -n kube-public 

10、查看service资源

 ~]# kubectl get svc -n kube-public

11、查看service资源的详细信息

~]# kubectl describe svc nginx-dp -n kube-public

12、pod 扩容

~]# kubectl scale deployment nginx-dp --replicas=2 -n kube-public

13、查看cluster IP 与 Pod IP 的对应关系

1
2
3
4
5
6
7
8
9
10
~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  10.254.0.1:443 nq
  -> 192.168.16.13:6443           Masq    1      0          0        
  -> 192.168.16.14:6443           Masq    1      0          0        
TCP  10.254.127.91:80 nq
  -> 172.7.11.3:80                Masq    1      0          0        
  -> 172.7.21.3:80                Masq    1      0          0

4.3、陈述式资源管理方法小结

1.kubernetes集群管理集群资源的唯一入口是通过相应的方法调用apiserver的接口
2.kubectl是官方的CLI命令行工具,用于与apiserver进行通信,将用户在命令行输入的命令,组织并转化为apiserver能识别的信息,进而实现管理k8s各种资源的一种有效途径
3.kubectl的命令大全:kubectl --help
4.陈述式资源管理方法可以满足90%以上的资源管理需求,但他的缺点也很明显
命令冗长、复杂、难以记忆
特定场景下,无法实现管理需求
对资源的增、删、查操作比较简单,改就很痛苦

  

 

posted @   AlexMa  阅读(208)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示