客户端证书访问 Kubernetes api

1.查看客户端证书

more /etc/kubernetes/manifests/kube-apiserver.yaml

 

2.更新镜像文件

curl https://192.168.1.9:6443/apis/apps/v1/namespaces/default/deployments/config-deployment -v -k -X PUT \
  -H "content-type: application/yaml" \
  --key /etc/kubernetes/pki/apiserver-kubelet-client.key \
  --cert /etc/kubernetes/pki/apiserver-kubelet-client.crt \
  -d '---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: config-deployment
spec:
  selector:
    matchLabels:
      app: cloud_config
  replicas: 2
  template:
    metadata:
      labels:
        app: cloud_config
    spec:
      containers:
      - name: cloud-config
        image: 192.168.1.12/canary/cloud-config:v20220622.17.46.22 # 
        ports:
        - containerPort: 8082
  ' \

这里header 设置是 content-type: application/yaml,(PS:尝试json 没成功)

 

3.jenkins 构建、部署服务shell脚本

cd cloud-config
/usr/local/maven/apache-maven-3.8.6/bin/mvn package -DskipTests=true
DATE=$(date +%Y%m%d.%H.%M.%S)
wget -O ./Dockerfile http://192.168.1.254:9595/beeadmin/app/download
docker build  . -t 192.168.1.12/canary/cloud-config:v$DATE
docker login 192.168.1.12 -u admin -p Harbor12345
docker push 192.168.1.12/canary/cloud-config:v$DATE
docker rmi 192.168.1.12/canary/cloud-config:v$DATE
curl https://192.168.1.9:6443/apis/apps/v1/namespaces/default/deployments/config-deployment -v -k -X PUT \
  -H "content-type: application/yaml" \
  --key /etc/kubernetes/pki/apiserver-kubelet-client.key \
  --cert /etc/kubernetes/pki/apiserver-kubelet-client.crt \
  -d '---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: config-deployment
spec:
  selector:
    matchLabels:
      app: cloud_config
  replicas: 2
  template:
    metadata:
      labels:
        app: cloud_config
    spec:
      containers:
      - name: cloud-config
        image: 192.168.1.12/canary/cloud-config:v'$DATE' # 
        ports:
        - containerPort: 8082
  ' \

4.Dockerfile文件内容

FROM majiajue/jdk1.8:latest
COPY target/cloud-config-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8082
ENTRYPOINT ["java","-jar","/app.jar"]

问题:

jenkins调用docker命令行报错

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.24/build?buildargs=%7B%7D&cachefrom=%5B%5D&cgroupparent=&cpuperiod=0&cpuquota=0&cpusetcpus=&cpusetmems=&cpushares=0&dockerfile=Dockerfile&labels=%7B%7D&memory=0&memswap=0&networkmode=default&rm=1&shmsize=0&t=192.168.1.12%2Fcanary%2Fcloud-config%3Av20221002.23.37.06&target=&ulimits=null&version=1: dial unix /var/run/docker.sock: connect: permission denied

解决:

将 jenkins 账号加入到 root 组中。

gpasswd -a jenkins root

chmod 777 /var/run/docker.sock

重启 Jenkins

systemctl start jenkins

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值