k8s篇
xiangzilong
这个作者很懒,什么都没留下…
展开
-
k8s kubeadm 部署证书续期
k8s 证书分为2套,一套是apiserver 和etcd管理节点:如果是kubeadm 部署则自动生成,二进制一般由cfssl 或者openssl工作节点: 工作节点主要指kubelet 连接apiserver 所需的客户端证书,这个证书是由controller-manager组件自动颁发,默认是一年,如果到期,kubelet 将无法使用过期的证书连接apiserver,日志将会报错 (x509:certificate has expired or is not yet valid)红线:原创 2022-02-03 22:12:04 · 3747 阅读 · 3 评论 -
Kubernetes 审计日志
启用审计日志功能:参考文档审计 | Kubernetesvi /etc/kubernetes/manifests/kube-apiserver.yaml… - --audit-policy-file=/etc/kubernetes/audit/audit-policy.yaml- --audit-log-path=/var/log/k8s_audit.log- --audit-log-maxage=30- --audit-log-maxbackup=10- --audit-lo原创 2022-01-22 22:44:38 · 1986 阅读 · 0 评论 -
OPA 鉴权
Gatekeeper 是基于 OPA的一个 Kubernetes 策略解决方案,可替代PSP或者部分RBAC功能。 当在集群中部署了Gatekeeper组件,APIServer所有的创建、更新或者删除操作都会触发 Gatekeeper来处理,如果不满足策略则拒绝OPA(Open Policy Agent):是一个开源的、通用策略引擎,可以将策略编写为代码。提供 一个种高级声明性语言-Rego来编写策略,并把决策这一步骤从复杂的业务逻辑中解耦出来。 OPA可以用来做什么? • 拒原创 2022-01-22 22:30:25 · 2028 阅读 · 0 评论 -
准入控制器: Admission Webhook
Admission Webhook:准入控制器Webhook是准入控制插件的一种,用于拦截所有向APISERVER发送的 请求,并且可以修改请求或拒绝请求。 Admission webhook为开发者提供了非常灵活的插件模式,在kubernetes资源持久化之前,管理员通过程序 可以对指定资源做校验、修改等操作。例如为资源自动打标签、pod设置默认SA,自动注入sidecar容器等。 相关Webhook准入控制器: • MutatingAdmissionWebhook:修改资源,理论上可原创 2022-01-22 22:16:30 · 1347 阅读 · 0 评论 -
rbac 解析
rbac 基于角色的访问控制主体(subject)user: 用户Group: 用户组serviceaccount: 服务账号kubectl create sa psp-denial-sa -n staging角色:role: 授权特定命名空间的访问权限kubectl create role role-2 -n db --verb=delete --resource=namespacesclusterrole: 授权所有的命名空间访问权限kubectl c.原创 2022-01-22 20:34:19 · 3818 阅读 · 0 评论 -
gVisor与Containerd集成
gVisor内核要求:Linux 3.17+,如果用的是CentOS7则需要升级内核,Ubuntu不需要。rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.orgrpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpmyum --enablerepo=elrepo-kernel install kernel-ml-devel kernel-ml原创 2022-01-15 12:39:57 · 466 阅读 · 0 评论 -
k8s 指定节点调度标签
nodeSelector 强制匹配指定pod 调度到标签 ssd[root@k8s-master cka3]# cat ssd.yaml apiVersion: v1kind: Podmetadata: name: nginx-kusc00401spec: containers: - name: nginx image: nginx imagePullPolicy: IfNotPresent nodeSelector: disktype: s..原创 2021-12-15 20:42:31 · 4413 阅读 · 0 评论 -
RBAC 授权
1 上传文件[root@k8s-master rbc]# lsrbac.zip[root@k8s-master rbc]# unzip rbac.zip Archive: rbac.zip creating: rbac/ inflating: rbac/cert.sh inflating: rbac/kubeconfig.sh inflating: rbac/rbac.yaml [root@k8s-master rbc]#.原创 2021-12-07 23:54:54 · 594 阅读 · 0 评论 -
nginx-ingress ingress-controller 安装
https://github.com/kubernetes/ingress-nginx[root@k8s-master ~]# cat ingress-controller-0.49.yaml | grep image: image: lizhenliang/ingress-nginx-controller:v0.49.0 image: docker.io/jettech/kube-webhook-certg...原创 2021-11-24 09:28:28 · 2140 阅读 · 2 评论 -
k8s电商环境搭建
mkdir -p /web/{html,data} yum -y install nfs-utils rpcbind #安装 nfs[root@client_15_k8s_clould ~]# cat /etc/exports/web/html *(rw,no_root_squash)/web/data *(rw,no_root_squash)/ifs/kubernetes/jenkins *(rw,no_root_squash)systemctl enable nfs ..原创 2021-10-22 17:36:03 · 766 阅读 · 0 评论 -
chart 制作打包
habor 安装插件./install.sh --with-chartmuseum添加本地仓库helm repo add --username admin --password Harbor12345 myrepo http://172.16.2.15:5000/chartrepo/libraryhelm create java_demo[root@client_15_k8s_clould chart]# helm package java_demo/Successfully p.原创 2021-10-09 20:18:32 · 589 阅读 · 0 评论 -
rancher k8s jekins 安装1
yum -y install nfs-utilsmkdir -p /ifs/kubernetes/jenkins[root@client_15_k8s_clould updates]# cat /etc/exports/web/html *(rw,no_root_squash)/web/data *(rw,no_root_squash)/ifs/kubernetes/jenkins *(rw,no_root_squash)systemctl restart nfs &&.原创 2021-10-09 19:49:03 · 98 阅读 · 0 评论 -
docker harbor镜像漏洞扫描
通常情况下这个插件需要手动开启./prepare --with-clair需要重启服务:[root@client_15_k8s_clould harbor]# docker-compose -f docker-compose.yml up -dCreating network "harbor_harbor-clair" with the default driverWARNING: Found orphan containers (chartmuseum) for this pr...原创 2021-09-28 19:51:39 · 650 阅读 · 0 评论 -
TKE 托管安装helm 取消 helm 告警
选择一个同网段的服务器,安装kubectl ,开启内网访问cat <<EOF > /etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://mirro.原创 2021-09-28 11:25:48 · 185 阅读 · 0 评论 -
使用rancher 搭建k8s
实验环境:服务器3台 centos 7.9172.16.2.15 harbor 服务器,rancher server172.16.2.29 master1,etcd,wor172.16.2.42 master2初始化服务器:172.16.2.15 运行 docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged rancher/rancher在另外节点运行...原创 2021-09-24 15:35:18 · 325 阅读 · 0 评论 -
k8s 移除node 全过程
可以看到node3上有 5个pod[root@VM-2-5-centos ~]# kubectl get pod -A -owideNAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATESkube-system calico-kube.原创 2021-09-16 16:38:58 · 1242 阅读 · 0 评论 -
k8s HPA
首先介绍一下node 级别的缩容,在执行缩容的时候该注意啥:不能直接删除node,直接删除会导致流量丢失1,获取节点node 列表kubectl get node2,设置不可调度kubectl cordon node_name3,驱逐节点上的podkubectl drain node_name --ignore-deamonsets4,移除节点kubectl delete node node_nameHorizontal Pod Autoscaler(H...原创 2021-09-14 18:06:40 · 297 阅读 · 0 评论 -
k8s pod 优雅的删除
如果有10个副本,现在业务没那么繁忙,低于我负载的50%了,开始缩容,缩容的过程中,肯定也有业务和请求在这些被缩容的pod上,那现在缩容就可能导致我线上出现问题,调用被强制终止,接口会产生一些404,网关502的问题还有滚动更新的时候,发布新的版本,老的pod会终止,新的pod 产生,如果在这个过程中,老pod有一个很长的操作,如数据库的,或者定时任务之类的,如果这个时候我们杀死这个pod,就一定会丢失一定的流量当 Kubernetes 杀死一个 pod 时,会发生以下 5 个步骤:1、 Pod原创 2021-09-10 12:57:37 · 1157 阅读 · 0 评论 -
python token 访问 k8s api 403
创建admin1[root@node1 ~]# kubectl create serviceaccount admin1 -n kube-systemserviceaccount/admin1 created删除admin1kubectl delete clusterrolebinding admin1绑定权限[root@node1 ~]# kubectl create clusterrolebinding admin1 --clusterrole=cluster-admin..原创 2021-08-11 17:25:50 · 655 阅读 · 0 评论 -
k8s kubeadmin 安装
[root@node1 ~]# cat pre-setup.sh #!/bin/bash#关闭防火墙systemctl disable firewalldsystemctl stop firewalld#关闭selinuxsetenforce 0#永久关闭sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/sysconfig/selinuxsed -i "s/SELINUX=enforcing/SELINUX=disabled/g".原创 2021-08-11 14:45:06 · 162 阅读 · 0 评论 -
k8s 删除pod 一直卡在 pod 处于Terminating 销毁状态
[root@node1 ~]# kubectl get pod -ANAMESPACE NAME READY STATUS RESTARTS AGEingress-nginx ingress-nginx-admission-create-nmx6s 0/1 Completed 0 10hingress-nginx .原创 2021-08-10 12:23:42 · 1939 阅读 · 0 评论 -
k8s 集群整个集群重启存在的问题
由于集群是在公司内部安装好,需要给客户现场,安装好后,需要重启测试集群检查集群,状态正常etcd 正常安装rancher 导入k8s 出现问题,查看,发现pod 处于pending 状态describe 查看发现是由于污点导致pod 无法调度,我记得我安装完没有打污点啊,于是查看[root@k8s-master1 ~]# kubectl describe node k8s-node1 | grep TaintsTaints: unreacha...原创 2021-08-02 10:52:28 · 829 阅读 · 0 评论 -
k8s helm 1
1,为什么要用helm由于k8s 缺少对发布的应用版本管理和控制,使得部署的应用维护和更新等面临诸多挑战* 如何将这些服务作为一个整体管理* 这些资源如何高效复用* 不支持应用级别的版本管理helm 客户端安装使用helm很简单,你只需要下载一个二进制客户端包即可,会通过kubeconfig配置(通常$HOME/.kube/config)来连接Kubernetes。项目地址:https://github.com/helm/helm下载Helm客户端:wget https:/原创 2021-07-27 23:42:52 · 92 阅读 · 0 评论 -
探索k8s 如果某个节点如果挂了会怎么样
远程过去重启node7 节点[root@k8s-master-61 ~]# ssh 10.12.12.68 Last login: Mon Jul 19 18:18:23 2021 from k8s-master1[root@k8s-node7 ~]# reboot重启后pod不会立马显示挂掉error大概15s后,pod 会进入到error 状态,并且 pod ip 显示为 nonenode7 起来后,服务重启,pod id 没变,但是pod ip 发生变化,因为...原创 2021-07-19 20:27:10 · 2896 阅读 · 0 评论 -
Etcd数据库备份与恢复
Kubernetes 使用 Etcd 数据库实时存储集群中的数据,安全起见,一定要备份!kubeadm部署方式:备份:ETCDCTL_API=3 etcdctl \snapshot save snap.db \--endpoints=https://127.0.0.1:2379 \--cacert=/etc/kubernetes/pki/etcd/ca.crt \--cert=/etc/kubernetes/pki/etcd/server.crt \--key=/etc/kubernete.原创 2021-07-18 09:35:40 · 142 阅读 · 0 评论 -
k8s全链路监控2-agent
1,docker 打包,v2 版本其实也没做啥,就是打包安装了一个字体,原版是openjdk8,现在我把这个[root@log-242-31 product-service-biz]# ls skywalking/activations bootstrap-plugins config logs optional-plugins optional-reporter-plugins plugins skywalking-agent.jar[root@log-242-31 pro.原创 2021-07-17 12:15:30 · 381 阅读 · 0 评论 -
k8s 全链路监控1-server
建议迅雷下载比较快https://archive.apache.org/dist/skywalking/8.3.0/apache-skywalking-apm-es7-8.3.0.tar.gz修改主进程的配置文件vim apache-skywalking-apm-bin-es7/config/application.yml修改数据库储存 h2 改为elasticsearch7下面是es 的地址启动服务,这里会启动2个端口 ,8080 是 ui 端口 11800...原创 2021-07-16 20:06:55 · 305 阅读 · 2 评论 -
k8s master 打上污点不许被调度
查看节点信息[root@k8s-master-61 ~]# kubectl get nodeNAME STATUS ROLES AGE VERSIONk8s-master1 Ready <none> 10d v1.20.4k8s-node1 Ready <none> 10d v1.20.4k8s-node2 Ready <none> 10d v1.20.4k8s.原创 2021-07-15 22:53:06 · 1359 阅读 · 0 评论 -
k8s 回滚
查看当前有哪些版本,可以看到1和2[root@k8s-master-61 ~]# kubectl rollout history deployment/scm-admin -n java-test2deployment.apps/scm-admin REVISION CHANGE-CAUSE1 <none>2 <none>查看版本1[root@k8s-master-61 ~]# kubectl rollout hist...原创 2021-07-12 14:48:58 · 1029 阅读 · 0 评论 -
k8s 快照和恢复
root@wenruo-crm-dbbf67964-wv5fl:/# cat /usr/share/nginx/html/index.html 12333333生成快照rbd snap create kube/kubernetes-dynamic-pvc-e348c5fb-e152-11eb-8e9d-46b1e14d6ee6@wenruo-2021-7-12-snap修改index文件root@wenruo-crm-dbbf67964-wv5fl:/# echo '99999' .原创 2021-07-10 16:33:32 · 939 阅读 · 0 评论 -
k8s 关于ceph 存储的日常操作
[root@k8s-master-61 ~]# cat ceph-test.yaml apiVersion: apps/v1kind: Deploymentmetadata: creationTimestamp: null labels: app: wenruo-crm name: wenruo-crm namespace: defaultspec: replicas: 1 selector: matchLabels: app: wenruo-c.原创 2021-07-10 15:54:16 · 109 阅读 · 0 评论 -
k8s 多个前端服务部署在一个nginx
[root@k8s-master-61 ~]# cat nginx-configmap.yaml apiVersion: v1kind: ConfigMapmetadata: name: nginx-config namespace: defaultdata: nginx.conf: | user nginx; worker_processes auto; worker_cpu_affinity 00000001 000000.原创 2021-07-09 12:40:01 · 564 阅读 · 0 评论 -
k8s 本地镜像快速部署亲和性
打包异地镜像:docker save 10.1.1.247/datacenter/scm-admin:master-2021-07-08 > xx.tar把镜像导入到node1:docker loadl < xx.taraffinity: nodeAffinity: requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: ...原创 2021-07-08 21:21:17 · 210 阅读 · 0 评论 -
k8s 内部调试工具部署
[root@k8s-master-61 ~]# cat test.yaml apiVersion: apps/v1kind: Deploymentmetadata: creationTimestamp: null labels: app: busybox name: busybox namespace: java-test2spec: replicas: 1 selector: matchLabels: app: busybox templa.原创 2021-07-08 16:22:58 · 94 阅读 · 0 评论 -
k8s v1.20.4 nfs 动态创建pv 失败
[root@k8s-master-61 test]# kubectl get podsNAME READY STATUS RESTARTS AGEmy-pod 0/1 Pending 0 22snfs-client-provisioner-ff594c7b9-kwdqq 1/1 Running 0...原创 2021-07-06 22:13:24 · 802 阅读 · 0 评论 -
k8s api 接口 401
想直接调用https的,没有token就会[root@k8s-master1 ~]# curl https://10.1.234.100:6443/api/v1/namespaces/default/pods --insecure{ "kind": "Status", "apiVersion": "v1", "metadata": { }, "status": "Failure", "message": "pods is forbidden: User \"sy.原创 2021-03-04 20:29:24 · 3352 阅读 · 1 评论 -
k8s 生成config 文件
拷贝文件给masterscp admin.pem 10.1.234.30:/opt/kubernetes/ssl/scp admin-key.pem 10.1.234.30:/opt/kubernetes/ssl/[root@k8s-master1 ~]# cat config.sh # 配置kubernetes集群参数kubectl config set-cluster kubernetes \ --certificate-authority=/opt/kubernetes..原创 2021-02-23 16:32:31 · 2909 阅读 · 0 评论 -
k8s java供应链项目篇
启动前端项目#!/bin/bashcat > ${server}.sh <<EOFgit clone -b $Branch $gitcd ${server}/echo 'FROM nginx COPY dist/ /usr/share/nginx/htmlRUN chmod 777 -R /usr/share/nginx/htmlRUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeCMD ["ngin原创 2021-01-26 21:36:01 · 317 阅读 · 0 评论 -
k8s 本地文件映射
cat > /java/${server}-deploy.yaml <<EOFapiVersion: apps/v1kind: Deploymentmetadata: creationTimestamp: null labels: app: ${server} name: ${server} namespace: $Namespacespec: replicas: 1 selector: matchLabels: app: ${.原创 2021-01-25 21:02:40 · 2485 阅读 · 0 评论 -
k8s 前端代理
我这里走的是4层代理,把域名解析到nginx 服务器的vip 上,可以实现k8s 的高可用性,不管前端代理的哪个nginx 挂掉,或者master 挂掉,都不会影响对集群的访问stream { log_format main '$remote_addr $upstream_addr - [$time_local] $status $upstream_bytes_sent'; access_log /var/log/nginx/k8s-access.log main; .原创 2021-01-25 09:51:16 · 331 阅读 · 0 评论