当前位置:网站首页 > R语言数据分析 > 正文

kubelet命令(kubelet-client-current.pem)



前提条件: 已经使用kubeadm 安装集群

查看 kebelet.conf 配置内容

我们对应到kubelet.conf中,发现每个REDACTED字样对应的都是一段数据,这段数据是由对应的数字证书内容或密钥内容转换(base64)而来的,在访问apiserver时会用到

kubeadm创建k8s集群时,会在master node上创建一些用于组件间访问的证书、密钥和token文件,上面的kubeconfig中的“REDACTED”所代表的内容就是从这些文件转化而来的:

  • apiserver-key.pem:kube-apiserver的私钥文件
  • apiserver.pem:kube-apiserver的公钥证书
  • apiserver-pub.pem kube-apiserver的公钥文件
  • ca-key.pem:CA的私钥文件
  • ca.pem:CA的公钥证书
  • ca-pub.pem :CA的公钥文件
  • sa-key.pem :serviceaccount私钥文件
  • sa-pub.pem :serviceaccount的公钥文件
  • tokens.csv:kube-apiserver用于校验的token文件

我们在 node节点上通过curl 测试一下通过安全通道访问master node上的kube-apiserver,kubenetes 的authentication(包括:客户端证书认证、basic auth、static token等)只要通过其中一个即可。当前kube-apiserver开启了客户端证书认证(–client-ca-file)和static token验证(–token-auth-file),我们只要通过其中一个,就可以通过authentication,于是我们使用static token方式。static token file的内容格式:

用这个token通过curl与apiserver交互:

类型为ReplicationController: 通过curl 调用 kube-apiserver操作命令如:

registry="docker.cinyi.com:443"
#取出项目目录
javadir=`echo $WORKSPACE | awk -F'/' '{print $5}'`
#取出war包名称
javaname=`ls $WORKSPACE/target/*war | awk -F'/' '{print $7}' | cut -d . -f 1`
#tag 时间
image_data=`date +%F_%H_%S`





mkdir -p /data/docker_project/$javadir
rm /data/docker_profile/$javadir/$javaname.war -rf
mv $WORKSPACE/target/$javaname.war /data/docker_project/$javadir

if docker images | grep $javaname ; then
  docker rmi -f `docker images | grep $javaname | awk '{print $3}'`
fi

#打包,上传到registry
docker build -t docker.cinyi.com:443/senyint/$javaname:$image_data /data/docker_project/$javadir/
docker push docker.cinyi.com:443/senyint/$javaname:$image_data

#生成rc 和 server yaml文件
sed "s/im-web/$javaname/g" /data/docker_project/im-web_rc.yaml >/data/docker_project/$javadir/${javaname}_rc.yaml
#定义image版本号
sed -i "s/lastest/$image_data/g" /data/docker_project/$javadir/${javaname}_rc.yaml
sed "s/im-web/$javaname/g" /data/docker_project/im-web_service.yaml >/data/docker_project/$javadir/${javaname}_service.yaml



#定义namespace 为test:

#创建namespaces
if ! `$k8s_apicurl -H "Authorization: Bearer 199e9c8d4ce99c61" -X GET $k8s_url/api/v1/namespaces | grep test >/dev/null` ;then
  $k8s_apicurl -H "Authorization: Bearer 199e9c8d4ce99c61" -H "content-Type: application/yaml" -X POST $k8s_url/api/v1/namespaces -d "$(cat /data/docker_project/namespaces.yaml)"
fi


#创建service
if ! `$k8s_apicurl -H "Authorization: Bearer 199e9c8d4ce99c61" -X GET $k8s_url/api/v1/namespaces/test/services | grep "im-web" >/dev/null` ; then
  $k8s_apicurl -H "Authorization: Bearer 199e9c8d4ce99c61" -H "content-Type: application/yaml" -X POST $k8s_url/api/v1/namespaces/test/services -d "$(cat /data/docker_project/$javadir/${javaname}_service.yaml)"
fi


#创建ReplicationController
if ! `$k8s_apicurl -H "Authorization: Bearer 199e9c8d4ce99c61" -X GET $k8s_url/api/v1/namespaces/test/replicationcontrollers | grep "im-web" >/dev/null` ; then
  $k8s_apicurl -H "Authorization: Bearer 199e9c8d4ce99c61" -H "content-Type: application/yaml" -X POST $k8s_url/api/v1/namespaces/test/replicationcontrollers/ -d "$(cat /data/docker_project/$javadir/${javaname}_rc.yaml)"
else
#滚动升级
  ssh root@192.168.20.227 "kubectl rolling-update $javaname --image=docker.cinyi.com:443/senyint/$javaname:$image_data --namespace=test"
fi





类型为deployment: 通过curl 调用 kube-apiserver操作命令如: 对war包发版

registry="docker.cinyi.com:443"
#取出项目目录
javadir=`echo $WORKSPACE | awk -F'/' '{print $5}'`
#取出war包名称
javaname=`ls $WORKSPACE/target/*war | awk -F'/' '{print $7}' | cut -d . -f 1`
#tag 时间
image_data=`date +%F_%H_%M`





mkdir -p /data/docker_project/$javadir
rm /data/docker_profile/$javadir/$javaname.war -rf
mv $WORKSPACE/target/$javaname.war /data/docker_project/$javadir

if docker images | grep $javaname ; then
docker rmi -f `docker images | grep $javaname | awk '{print $3}'`
fi

#打包,上传到registry
docker build -t docker.cinyi.com:443/senyint/$javaname:$image_data /data/docker_project/$javadir/
docker push docker.cinyi.com:443/senyint/$javaname:$image_data

#替换image版本号
echo 11111
sed -i "s/latest/$image_data/g" /data/docker_project/$javadir/${javaname}_deployment.yaml

#定义namespace 为test:

#创建namespaces
if ! `$k8s_apicurl -H "Authorization: Bearer 199e9c8d4ce99c61" -X GET $k8s_url/api/v1/namespaces | grep test >/dev/null` ;then
$k8s_apicurl -H "Authorization: Bearer 199e9c8d4ce99c61" -H "content-Type: application/yaml" -X POST $k8s_url/api/v1/namespaces -d "$(cat /data/docker_project/namespaces.yaml)"
fi


#创建service
if ! `$k8s_apicurl -H "Authorization: Bearer 199e9c8d4ce99c61" -X GET $k8s_url/api/v1/namespaces/test/services | grep "${javaname}" >/dev/null` ; then
$k8s_apicurl -H "Authorization: Bearer 199e9c8d4ce99c61" -H "content-Type: application/yaml" -X POST $k8s_url/api/v1/namespaces/test/services -d "$(cat /data/docker_project/$javadir/${javaname}_service.yaml)"
fi


#创建Deployment
if `$k8s_apicurl -H "Authorization: Bearer 199e9c8d4ce99c61" -X GET $k8s_url/apis/extensions/v1beta1/namespaces/test/deployments/ | grep "${javaname}" >/dev/null` ; then
#滚动升级
$k8s_apicurl -H "Authorization: Bearer 199e9c8d4ce99c61" -H "content-Type: application/yaml" -X PUT $k8s_url/apis/extensions/v1beta1/namespaces/test/deployments/${javaname} -d "$(cat /data/docker_project/$javadir/${javaname}_deployment.yaml)"
else
$k8s_apicurl -H "Authorization: Bearer 199e9c8d4ce99c61" -H "content-Type: application/yaml" -X POST $k8s_url/apis/extensions/v1beta1/namespaces/test/deployments/ -d "$(cat /data/docker_project/$javadir/${javaname}_deployment.yaml)"




fi

类型为deployment: 通过curl 调用 kube-apiserver操作命令如: 对tar.gz包发版

Dockerfile

使用 rolling-update进行升级必须使用

jenkins 对应的目录文件。

[root@docker1 ~]# kubectl rolling-update fengjian --image=docker.cinyi.com:443/senyint/im-web:v1 --namespace=fengjian

deployment 使用命令升级方法

[root@docker1 ~]# kubectl set image deployment/pay-startup-package pay-startup-package=docker.cinyi.com/senyint/pay-startup-package:2017-03-27_15_56 --namespace=test

查看ingress 内容

[root@docker1 ~]# curl --cacert /root/ca.pem -H "Authorization: Bearer 199e9c8d4ce99c61" -X GET https://192.168.20.227:6443/apis/extensions/v1beta1/ingresses

查看 namespaces下的 ingress

删除namespaces 下的ingress

创建

读取

替换

删除

更新

docker registry 查看镜像:

[root@bcbf4a94a152 ~]# curl https://docker.cinyi.com/v2/_catalog

docker registry 查看版本号:

[root@bcbf4a94a152 ~]# curl https://docker.cinyi.com/v2/senyint/im-web/tags/list

  1. java变量
  2. CentOS完美搭建Redis3.0集群并附测试
  3. [SAP ABAP开发技术总结]几个小技巧
  4. Cesium简介
  5. STL六大组件之——分配器(内存分配,好深奥的东西)
  6. 自动计算label字体的高度和图片拉伸处理(封装成分类分享)
  7. ArcGIS_系列视频教程::精品大放送
  8. Storm构建分布式实时处理应用初探(转)
  9. PHP导出生成CSV文件
  10. Docker安装Jenkins
  11. Docker介绍及使用
  12. jenkins构建成功,但war包没有发布到tomcat下
  13. python基本数据类型之集合
  14. WebAPI路由、参数绑定
  15. 通过重建清理SVN服务器无用目录,不丢失其他目录修改记录
  16. CS229 笔记05
  17. mysql实现复杂groupby : GROUP_CONCAT
  18. Apache Server Status详解
  19. linux上mysql安装详细教程
  20. java redis client jedis 测试

  1. 【原】Spring activiti 环境搭建之数据库创建
  2. graphviz 的节点形状
  3. google vue开发调试插件,简便安装,亲测可用
  4. Q:链表的中间元素
  5. JS 自定义对象 属性
  6. node.js(http协议)
  7. BZOJ5317:[JSOI2018]战争(闵可夫斯基和)
  8. css类选择器类名覆盖优先级
  9. SQL Server 修改表结构被阻止 解决办法
  10. 数据是ERP系统搭建的基础,但,不要让数据毁了ERP
到此这篇kubelet命令(kubelet-client-current.pem)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • store苹果商店下载不了软件(苹果商店下不了软件是怎么回事)2026-02-03 18:09:09
  • redis连接需要关闭吗(redis需要连接池吗)2026-02-03 18:09:09
  • swagger啥意思(swaggie意思)2026-02-03 18:09:09
  • qpainter画图(qpainter画曲线图)2026-02-03 18:09:09
  • rbac权限模型是什么(rbac权限模型有什么缺点)2026-02-03 18:09:09
  • you raseme up什么意思(you raise me up中文意思)2026-02-03 18:09:09
  • endoport器械(multi press器械)2026-02-03 18:09:09
  • nfs文件服务器的作用(nfs server所用到的文件和目录)2026-02-03 18:09:09
  • proremoval怎么读(progrem怎么读)2026-02-03 18:09:09
  • tornado的翻译(to raven翻译)2026-02-03 18:09:09
  • 全屏图片