我的编程空间,编程开发者的网络收藏夹
学习永远不晚

docker中k8s怎么用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

docker中k8s怎么用

小编给大家分享一下docker中k8s怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

   之前安装了一个master和两个nodes的k8s集群:   

[root@k8s-master chenzx]# kubectl get nodesNAME         STATUS    ROLES     AGE       VERSIONk8s-master   Ready     master    17h       v1.11.2k8s-node1    Ready     <none>    14h       v1.11.2k8s-node2    Ready     <none>    13h       v1.11.2

    kubectl命令就是apiserver的客户端工具,可以实现对nodes资源的增删改查。

 kubectl describe

功能:描述一个节点的信息

[root@k8s-master chenzx]# kubectl describe node k8s-node1Name:               k8s-node1Taints:             <none>  ##Taints表示是否有污点Allocated resources:  (Total limits may be over 100 percent, i.e., overcommitted.)  Resource  Requests    Limits  --------  --------    ------  cpu       100m (10%)  100m (10%)  memory    50Mi (2%)   50Mi (2%)Events:     <none>

kubectl  cluster-info

功能:看k8s集群信息

[root@k8s-master chenzx]# kubectl  cluster-infoKubernetes master is running at https://172.16.1.100:6443KubeDNS is running at https://172.16.1.100:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

创建并运行镜像

举例:创建一个nginx镜像

[root@k8s-master chenzx]# kubectl run nginx-deploy  --image=nginx:1.14-alpine --port=80 --replicas=1 --dry-run=true

说明:

        --image:表示docker官网的镜像名字

        --replicas:表示创建并启动几个Pod,不写默认就是1个

        --dry-run:表示并不真正执行,去掉这个选择就真正执行了

[root@k8s-master chenzx]# kubectl run nginx-deploy  --image=nginx:1.14-alpine --port=80 --replicas=1 deployment.apps/nginx-deploy created
[root@k8s-master chenzx]# kubectl get deployment NAME           DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGEnginx-deploy   1         1         1            1           12s

说明:AVAILABLE项要保证为1,表示为可用状态。一开始运行kubectl get deployment时AVAILABLE可能为0,这时在做就绪行探测,过一会就会变为1;Desired表示期望几个副本,current表示实际上有几个副本。

[root@master ~]# kubectl get podNAME                          READY     STATUS    RESTARTS   AGEnginx-deploy-5b595999-65rff   1/1       Running   0          1m

说明:1/1表示这个pod里面有一个容器,并且都准备好了。

        RESTARTs=0表示没有被重启过

[root@master ~]# kubectl get pod -o wideNAME                          READY     STATUS    RESTARTS   AGE       IP           NODEnginx-deploy-5b595999-65rff   1/1       Running   0          23m       10.244.2.2   node2

通过-o wide可以显示更多信息,比如可以看到nginx这个容器在node2节点上运行着,这个pod的ip地址是10.244.2.2。这个pod使用的是node2节点上的cni0的地址(在node2上用ifconfig查看)。

访问一下nginx页面:

[root@node2 ~]# curl  10.244.2.2 Welcome to nginx!

可以看到welcom to nginx的字样。

pod的地址10.244.2.2只能在k8s内部使用,跳过k8s之外是无法使用的。

我们知道pod的客户端有两类;

    第一类:其他pod;

    第二类:集群外部客户端。

删除pod

[root@master ~]# kubectl get podNAME                          READY     STATUS    RESTARTS   AGEnginx-deploy-5b595999-65rff   1/1       Running   0          40m[root@master ~]# kubectl delete pods nginx-deploy-5b595999-65rffpod "nginx-deploy-5b595999-65rff" deleted[root@master ~]#  kubectl get podNAME                          READY     STATUS    RESTARTS   AGEnginx-deploy-5b595999-fzwvq   1/1       Running   0          21s[root@master ~]#  kubectl get pod -o wideNAME                          READY     STATUS    RESTARTS   AGE       IP           NODEnginx-deploy-5b595999-fzwvq   1/1       Running   0          3m        10.244.1.2   node1

pod是控制器来管理的,如果我们删除正在运行的pod后,控制器会马上再创建一个新的pod,这个新的pod和原来的一样,并换个node节点,如上从node2到node1上,并且ip地址也变了。这是因为必须保持一定数量的pod副本在线。

发布端口

[root@master ~]# kubectl  expose deployment nginx-deploy --name=nginx --port=80 --target-port=80 --protocol=TCP

--name:名字随便起,是我们要创建的service名字。

上面命令的含义是给deployment控制器下的nginx -deploy pod创建一个serivice,而service名字叫nginx,service的端口(--port)是80,映射到nginx-deploy pod的端口(--target-port)端口是80.

查看service的详细信息:

[root@master ~]# kubectl get svc #全称是serviceNAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGEkubernetes   ClusterIP   10.96.0.1       <none>        443/TCP   2dnginx        ClusterIP   10.100.47.128   <none>        80/TCP    2d[root@master ~]# kubectl get serviceNAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGEkubernetes   ClusterIP   10.96.0.1       <none>        443/TCP   2dnginx        ClusterIP   10.100.47.128   <none>        80/TCP    2d

查看标签

上面clusterip就是service ip,但是这个ip只能集群内部访问,集群外部是访问不了的。nginx(service name)会生成iptables访问规则, 把cluster ip对应的地址和port都调度至标签选择器关联到的各pod端,可以通过kubectl describe svc nginx来看nginx这个服务资源的详细信息:

[root@master ~]# kubectl describe svc nginxName:              nginxNamespace:         defaultLabels:            run=nginx-deploy  ##这就是标签选择器,这个标签对应的pod可以通过下面的Endpoints看出。Annotations:       <none>Selector:          run=nginx-deployType:              ClusterIPIP:                10.100.47.128Port:              <unset>  80/TCPTargetPort:        80/TCPEndpoints:         10.244.1.3:80 #通过这个可以看到nginx service关联的是10.244.1.3:80这个podSession Affinity:  NoneEvents:            <none>

通过如下命令可以看到各pod的标签:

[root@master ~]# kubectl get pods --show-labelsNAME                          READY     STATUS    RESTARTS   AGE       LABELSclient                        1/1       Running   0          42m       run=clientnginx-deploy-5b595999-2hbgh   1/1       Running   0          1h        pod-template-hash=16151555,run=nginx-deploy

查看coredns

另外,我们可以通过service ip访问,也可以通过serivce name访问,但是这个service name是通过k8s的coredns进行解析的。cordns地址的查看方法如下:

[root@master ~]# kubectl get pods -n kube-system -o wideNAME                             READY     STATUS    RESTARTS   AGE       IP             NODEcoredns-78fcdf6894-2l2cf         1/1       Running   0          2d        10.244.0.2     mastercoredns-78fcdf6894-dkkfq         1/1       Running   0          2d        10.244.0.3     master

上面我们看到coredns的pod地址分别是10.244.0.2和10.244.0.3。但是我们一般也不直接使用pod的地址,而是使用service ip来访问coredns pod:

[root@master ~]# kubectl get svc -n kube-systemNAME       TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)         AGEkube-dns   ClusterIP   10.96.0.10   <none>        53/UDP,53/TCP   2d

[root@master ~]# yum -y install bind-utils

[root@master ~]# dig -t A nginx @10.96.0.10 #表示用dns10.96.0.10解析域名nginx地址,A表示A记录; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7_5.1 <<>> -t A nginx @10.96.0.10;; global options: +cmd;; Got answer:;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 3924;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1;; OPT PSEUDOSECTION:; EDNS: version: 0, flags:; udp: 4000;; QUESTION SECTION:;nginx.INA;; Query time: 1 msec;; SERVER: 10.96.0.10#53(10.96.0.10);; WHEN: Mon Sep 10 02:53:19 EDT 2018;; MSG SIZE  rcvd: 34

上面我们用dig命令,发现没有解析出来nginx域名对应的ip地址,这是因为nginx域名没写完整,下面我们就要看看k8s集群内部配置的域名后缀是什么。

下面我们再run一个busybox pod,作为其他pod的客户端。

[root@master ~]# kubectl  run  client --image=busybox --replicas=1 -it --restart=NeverIf you don't see a command prompt, try pressing enter./ # cat /etc/resolv.conf nameserver 10.96.0.10search default.svc.cluster.local svc.cluster.local cluster.localoptions ndots:5/ #

上面我们看到cordns搜索的域是default.svc.cluster.local svc.cluster.local cluster.local。

那么我们再来测试一下nginx域名,在coredns中对应的ip地址:

[root@master ~]#  dig -t A nginx.default.svc.cluster.local  @10.96.0.10;; ANSWER SECTION:nginx.default.svc.cluster.local. 5 INA10.100.47.128

上面可以清楚的看到nginx.default.svc.cluster.local这个域名对应的ip是10.100.47.128。注意nginx是service的名字(通过 kubectl get service可以看到)。

下面我们把nginx pod删除,可以看到k8s很快自动的启动一个新的nginx pod,并且nginx pod地址发生了改变,再通过nginx域名(service name)访问,还能看到nginx的页面,这就是因为service根据标签和标签选择器来关联pod资源,而不是根据ip地址来选择pod。这样nginx pod地址无论怎么变化,都能通过service name来访问到pod资源。

[root@master ~]# kubectl get podsNAME                          READY     STATUS    RESTARTS   AGEclient                        1/1       Running   0          59mnginx-deploy-5b595999-fzwvq   1/1       Running   0          2d[root@master ~]# kubectl delete pods nginx-deploy-5b595999-fzwvqpod "nginx-deploy-5b595999-fzwvq" deleted[root@master ~]#  kubectl get podsNAME                          READY     STATUS    RESTARTS   AGEclient                        1/1       Running   0          59mnginx-deploy-5b595999-2hbgh   1/1       Running   0          11s[root@master ~]# kubectl  run  client --image=busybox --replicas=1 -it --restart=NeverIf you don't see a command prompt, try pressing enter./ # wget -O - -q   <title>Welcome to nginx!</title>  #nginx pod ip地址变了,但是还能通过nginx域名访问到nginx页面

改变service ip地址

[root@master ~]# kubectl get svcNAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)   AGEkubernetes   ClusterIP   10.96.0.1       <none>        443/TCP   3dnginx        ClusterIP   10.100.47.128   <none>        80/TCP    2d[root@master ~]# [root@master ~]# kubectl describe svc nginxName:              nginxNamespace:         defaultLabels:            run=nginx-deployAnnotations:       <none>Selector:          run=nginx-deployType:              ClusterIPIP:                10.100.47.128Port:              <unset>  80/TCPTargetPort:        80/TCPEndpoints:         10.244.1.3:80Session Affinity:  NoneEvents:            <none>

[root@master ~]# kubectl edit svc nginx

打开后改变cluster ip的地址,比如改成10.100.47.88,这里面的变化会立刻反应到coredns解析记录中去。

查看控制器(deployment)的详细信息

控制器deployment也是通过标签选择器来管理Pod的。

[root@master ~]# kubectl describe deployment nginx-deployName:                   nginx-deployNamespace:              defaultCreationTimestamp:      Fri, 07 Sep 2018 09:03:36 -0400Labels:                 run=nginx-deployAnnotations:            deployment.kubernetes.io/revision=1Selector:               run=nginx-deployReplicas:               1 desired | 1 updated | 1 total | 1 available | 0 unavailableStrategyType:           RollingUpdateMinReadySeconds:        0RollingUpdateStrategy:  25% max unavailable, 25% max surgePod Template:  Labels:  run=nginx-deploy  Containers:   nginx-deploy:    Image:        nginx:1.14-alpine    Port:         80/TCP    Host Port:    0/TCP    Environment:  <none>    Mounts:       <none>  Volumes:        <none>Conditions:  Type           Status  Reason  ----           ------  ------  Progressing    True    NewReplicaSetAvailable  Available      True    MinimumReplicasAvailableOldReplicaSets:  <none>NewReplicaSet:   nginx-deploy-5b595999 (1/1 replicas created)Events:          <none>

动态修改replicas副本的数量

先新建一个pod:

[root@master ~]# kubectl run mytomcat --image=tomcat --replicas=2
[root@master ~]# kubectl get deploymentNAME           DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGEmyapp          2         2         2            0           3hmytomcat       2         2         2            2           10m
[root@master ~]# kubectl get deployment -w  #-w是watch监控的意思,就不会退出了NAME           DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGEmyapp          2         2         2            0           3hmytomcat       2         2         2            2           10m
[root@master ~]# kubectl get pods -o wideNAME                          READY     STATUS             RESTARTS   AGE       IP            NODEclient                        1/1       Running            0          4h        10.244.2.4    node2mytomcat-5f8c6fdcb-lhcsc      1/1       Running            0          11m       10.244.2.7    node2mytomcat-5f8c6fdcb-rntrg      1/1       Running            0          3m        10.244.1.10   node1

下面开始动态扩展副本数量为5:

[root@master ~]# kubectl scale --replicas=5 deployment mytomcatdeployment.extensions/mytomcat scaled

看到扩展成功:

[root@master ~]# kubectl get pods -o wideNAME                          READY     STATUS             RESTARTS   AGE       IP            NODEclient                        1/1       Running            0          5h        10.244.2.4    node2mytomcat-5f8c6fdcb-7t5s2      1/1       Running            0          1m        10.244.2.8    node2mytomcat-5f8c6fdcb-l2cdn      1/1       Running            0          1m        10.244.1.11   node1mytomcat-5f8c6fdcb-lhcsc      1/1       Running            0          32m       10.244.2.7    node2mytomcat-5f8c6fdcb-rntrg      1/1       Running            0          24m       10.244.1.10   node1mytomcat-5f8c6fdcb-thzjf      1/1       Running            0          1m        10.244.2.9    node2nginx-deploy-5b595999-fpm8x   1/1       Running            0          33m       10.244.1.7    node1

能扩展,也能缩减,下面缩减为3个副本:

[root@master ~]# kubectl scale --replicas=3 deployment mytomcatdeployment.extensions/mytomcat scaled
[root@master ~]# kubectl get pods -o wideNAME                          READY     STATUS             RESTARTS   AGE       IP            NODEmytomcat-5f8c6fdcb-7t5s2      1/1       Running            0          3m        10.244.2.8    node2mytomcat-5f8c6fdcb-lhcsc      1/1       Running            0          34m       10.244.2.7    node2mytomcat-5f8c6fdcb-rntrg      1/1       Running            0          26m       10.244.1.10   node1mytomcat-5f8c6fdcb-thzjf      0/1       Terminating        0          3m        10.244.2.9    node2

创建service

[root@master ~]# kubectl get deploymentNAME           DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGEmyapp          2         2         2            0           4hmytomcat       2         2         2            2           22m
[root@master ~]# kubectl expose deployment mytomcat --name=mytomcat --port 80service/mytomcat exposed
[root@master ~]# kubectl get pods -o wideNAME                          READY     STATUS             RESTARTS   AGE       IP            NODEmytomcat-5f8c6fdcb-lhcsc      1/1       Running            0          25m       10.244.2.7    node2mytomcat-5f8c6fdcb-rntrg      1/1       Running            0          17m       10.244.1.10   node1
[root@master ~]# kubectl get svcmytomcat     ClusterIP   10.98.25.122     <none>        80/TCP    1m

然后客户端通过访问http://mytomcat会看到负载均衡现象,即一会访问node1上的tomcat,一会访问node2上的tomcat。

动态升级pod版本

[root@master ~]# kubectl set image deployment mytomcat mytomcat=ikubernetes/mytomcat:v2deployment.extensions/mytomcat image updated

说明:mytomcat=ikubernetes/mytomcat:v2是容器1版本=容器2版本

通过下面的命令可以动态查看更新状态:

[root@master ~]# kubectl rollout status deployment mytomcatWaiting for deployment "mytomcat" rollout to finish: 1 out of 3 new replicas have been updated..

可以通过kubectl describe pods看容器的版本:

[root@master ~]#  kubectl describe pods mytomcat-5f8c6fdcb-7t5s2 Image:          tomcat

回滚pod至指定版本

如果版本升级失败,可以回滚到指定版本:

[root@master ~]# kubectl rollout undo deployment mytomcat:v1deployment.extensions/mytomcat

不指定版本表示回滚到上一个版本。

查看service

[root@master ~]# iptables -vnL
root@master ~]# iptables -vnL -t nat

在集群外部访问pod

[root@master ~]# kubectl edit svc mytomcat

把type: ClusterIP改成NodePort。

[root@master ~]# kubectl get svcNAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGEmytomcat     NodePort    10.98.25.122     <none>        80:31388/TCP   1h

这样在外部就可以通过31338端口访问内部资源了

以上是“docker中k8s怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

docker中k8s怎么用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

docker中k8s怎么用

小编给大家分享一下docker中k8s怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 之前安装了一个master和两个nodes的k8s集群: [r
2023-06-04

k8s怎么管理docker

Kubernetes(简称K8s)是一个开源的容器编排管理工具,用于自动化部署、扩展和管理容器化应用程序。K8s可以管理Docker容器,下面是一些Kubernetes管理Docker的常见操作:1. 安装Docker:首先,需要在所有要使
2023-10-11

怎么使用docker部署k8s项目

要使用Docker部署Kubernetes项目,可以按照以下步骤进行操作:1. 安装Docker和Kubernetes:首先,确保已经安装了Docker和Kubernetes。可以通过Docker官方网站和Kubernetes官方网站获取安
2023-10-11

Docker中如何部署k8s

这篇文章主要介绍Docker中如何部署k8s,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!拓扑结构1master + 2minionk8s-master 192.168.0.201 masterk8s-node1 1
2023-06-07

docker和k8s环境怎么搭建及使用

要搭建和使用Docker和Kubernetes(K8s)环境,你可以按照以下步骤进行操作:1. Docker环境搭建:a. 下载并安装适用于你的操作系统的Docker。官方网站提供了针对各种操作系统的下载链接: https://www.do
2023-10-11

docker中19-k8s的示例分析

这篇文章主要介绍docker中19-k8s的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! Docker的第一类编排工具: 1) docker compose(docker原生):只能对一
2023-06-04

k8s和docker区别是什么

k8s和docker区别是:1、抽象层次不同,Docker提供一种容器化的技术,而Kubernetes提供一个容器编排和管理的平台;2、管理范围不同,Docker主要用于本地开发和单主机环境中的容器管理,而Kubernetes适用于多主机或
2023-07-24

docker中如何初始化k8s集群

这篇文章给大家分享的是有关docker中如何初始化k8s集群的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 k8s的部署有多种方式,但我们采用kubeadm工具部署。 k
2023-06-04

k8s中的secret怎么使用

这篇文章主要讲解了“k8s中的secret怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“k8s中的secret怎么使用”吧!secret可以加密用户名和密码文件,将其打包成一个sec
2023-07-06

k8s与Docker的关系是什么

这期内容当中小编将会给大家带来有关k8s与Docker的关系是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、从虚拟化角度:图1上图是Docker容器(可用k8s管理的玩意儿)与传统虚拟化方式的不同
2023-06-06

k8s中kubeconfig怎么配置使用

这篇文章主要讲解了“k8s中kubeconfig怎么配置使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“k8s中kubeconfig怎么配置使用”吧!1、概述kubeconfig文件保存了
2023-06-26

docker中k8s存储卷的示例分析

这篇文章给大家分享的是有关docker中k8s存储卷的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 因为pod是有生命周期的,pod一重启,里面的数据就没了。所以我们需要数据持久化存储。 在
2023-06-04

docker中k8s基于canal的网络策略是什么

这篇文章主要介绍了docker中k8s基于canal的网络策略是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前提条件 1、kubelet必须配置为CNI网络插件(
2023-06-04

CentOS中怎么搭建K8S

这篇文章将为大家详细讲解有关CentOS中怎么搭建K8S,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。环境: 操作系统:win10 虚拟机:virtual box linux发行版:Cent
2023-06-15

linux中怎么部署k8s

在Linux上部署Kubernetes(K8s)可以按照以下步骤进行操作:安装Docker:K8s使用Docker作为容器运行时环境,因此首先需要在Linux上安装Docker。可以通过在终端中运行以下命令来安装:sudo apt upd
2023-10-27

Docker中swarm怎么用

这篇文章给大家分享的是有关Docker中swarm怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。swarm 三台虚拟机 132,133,1341.初始化一个集群 并把自己加入集群中# 初始化主节点docke
2023-06-25

怎么在Docker中使用Docker命令

这篇文章主要介绍“怎么在Docker中使用Docker命令”,在日常操作中,相信很多人在怎么在Docker中使用Docker命令问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么在Docker中使用Docke
2023-06-15

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录