K8S上mysql,无法创建rc解决,打不开/registry.access.redhat.com/redhat-ca.crt问题的解决

本文档记录了在K8S单机环境中部署MySQL遇到的问题及解决方案,包括rc创建失败、证书错误、版本不兼容和密码错误等,并提供了解决这些问题的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考文档:表示感谢

https://www.cnblogs.com/jason0529/p/9122694.html

https://blog.youkuaiyun.com/firehive/article/details/81331802?utm_source=blogxgwz1

参考《Kubernetes 权威指南》学习一下k8s,有些坑记录一下

一、安装单机版kubernetes
systemctl  disable  firewalld
systemctl  stop  firewalld
yum -y install etcd kubernetes
按顺序启动:
systemctl  start etcd
systemctl  start  docker
systemctl start kube-apiserver
systemctl start kube-controller-manager
systemctl start kube-scheduler
systemctl start kubelet
systemctl start kube-proxy

二、创建mysql的rc定义文件:
apiVersion: v1
kind: ReplicationController
metadata:
  name: mysql
spec:
  replicas: 1
  selector:
    app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql
        ports: 
        - containerPort: 3306
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "xxxxx"
          
kubectl  create  -f  mysql.yaml

问题一:

kubectl get rc ,ready为0
kubectl get pods 提示没有资源;
解决方法:
1、Generate a signing key:
openssl genrsa -out /tmp/serviceaccount.key 2048
2、vim   /etc/kubernetes/apiserver
KUBE_API_ARGS="--service_account_key_file=/tmp/serviceaccount.key"
 3、vim   /etc/kubernetes/controller-manager
KUBE_CONTROLLER_MANAGER_ARGS="--service_account_private_key_file=/tmp/serviceaccount.key"
4、重启服务
service kube-apiserver restart
service kube-controller-manager restart
5、再度执行:
kubectl get rc
kubectl get pods 
状态是ContainersCreating,还是没有正常运行,
排查:
kubectl describe pod mysql
问题二:
 (open /etc/docker/certs.d/registry.access.redhat.com/redhat-ca.crt: no such file or directory)
解决方法:
yum -y install *rhsm*
wget http://mirror.centos.org/centos/7/os/x86_64/Packages/python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm
rpm2cpio python-rhsm-certificates-1.19.10-1.el7_4.x86_64.rpm | cpio -iv --to-stdout ./etc/rhsm/ca/redhat-uep.pem | tee /etc/rhsm/ca/redhat-uep.pem
docker pull registry.access.redhat.com/rhel7/pod-infrastructure:latest
会生成/etc/rhsm/ca/redhat-uep.pem文件;
再次查看状态:
kubectl get rc
kubectl get pods 
如果有必要,可以删除原来创建的rc并重建
kubectl delete -f mysql-rc.yaml
kubectl create -f mysql-rc.yaml
再次查看状态:
kubectl get rc
NAME      DESIRED   CURRENT   READY     AGE
mysql     1         1         1         19h
kubectl get pods 
NAME          READY     STATUS    RESTARTS   AGE
mysql-xxxxx   1/1       Running   0          13h

问题三、tomcat 连不上mysql,提示无法创建数据库连接,是mysql版本问题,修改mysql-rc.yaml并重建:

apiVersion : v1
kind : ReplicationController
metadata : 
    name : mysql
spec : 
  replicas : 1
  selector : 
    app : mysql
  template : 
    metadata : 
      labels : 
        app : mysql
    spec : 
      containers : 
      - name : mysql
        image : mysql:5.7
        imagePullPolicy: IfNotPresent 
        ports : 
        - containerPort : 3306
        env : 
        - name : MYSQL_ROOT_PASSWORD
          value : "xxxxx"
删除并重建mysql:
kubectl delete -f mysql-rc.yaml
kubectl create -f mysql-rc.yaml
稍后重建完成;

问题四、提示访问数据库密码错误,原因是tomcat里的连接写的密码是123456,(在insert.jsp文件里),修改它;

先安装vim命令,虽然是centOS系统,但是docker里居然没有yum,却支持apt-get。

apt-get update 

apt-get -y install vim 

修改/usr/local/tomcat/webapps/demo/insert.jsp文件的数据库连接密码为自己设置的密码;

不过关闭重启tomcat之后,tomcatservice重建了,修改也就失效了,vim命令也没有了,所以这种方法不行。

删除并重建tomcat  service,

kubectl delete -f myweb-rc.yaml
kubectl create -f myweb-rc.yaml

再次访问xxxxx:30001/demo,可以了。

<think>我们有一个明确的需求:配置yarn使用特定的npm镜像源(https://registry.npmmirror.com) 根据引用[1]和引用[2],我们知道淘宝镜像的地址是https://registry.npmmirror.com 引用[2]中提到了npm设置镜像的命令:npm config set registry https://registry.npmmirror.com 但是用户现在想要设置的是yarn的镜像源。 根据引用[1]中的代码,我们可以知道yarn的镜像源配置也是通过设置registry来实现的。 配置yarn镜像源有两种常用方法: 1. 使用yarn config命令设置全局镜像源 2. 在项目的.npmrc.yarnrc文件中进行配置(项目级别) 我们这里按照用户要求,设置全局的yarn镜像源。 步骤: 1. 打开终端(命令行) 2. 执行命令:yarn config set registry https://registry.npmmirror.com 注意:引用[3]和引用[4]提到了一些可能遇到的问题,比如证书错误或代理问题。如果设置后遇到问题,可能需要检查网络和代理设置。 另外,引用[4]中提到,如果之前设置过代理,可能会导致连接问题,可以清除代理设置: yarn config delete proxy yarn config delete https-proxy 验证设置是否成功: yarn config get registry 如果返回的是https://registry.npmmirror.com,则说明设置成功。 如果用户需要临时使用其他镜像源,可以在安装依赖时通过--registry参数指定: yarn add package-name --registry=https://registry.npm.taobao.org 但是这里用户要求的是全局设置。 因此,回答如下:</think>### 配置 Yarn 使用特定镜像源(https://registry.npmmirror.com) 以下是完整的配置步骤和注意事项,基于引用内容整理的最佳实践[^1][^2][^4]: #### 1. **设置镜像源** ```bash # 永久设置全局镜像源 yarn config set registry https://registry.npmmirror.com # 验证配置(应显示淘宝镜像) yarn config get registry ``` #### 2. **临时使用镜像(单次生效)** ```bash # 安装时临时指定镜像源 yarn add [package] --registry=https://registry.npmmirror.com ``` #### 3. **常见问题解决** 若遇到证书错误(如引用[3])或代理冲突(如引用[4]): ```bash # 清除代理配置 yarn config delete proxy yarn config delete https-proxy # 重置为默认安全设置 yarn config set strict-ssl true ``` #### 4. **镜像源对照表(参考引用[1])** | 包管理器 | 淘宝镜像地址 | 官方镜像地址 | |----------|--------------|--------------| | Yarn | `https://registry.npmmirror.com` | `https://registry.yarnpkg.com` | | NPM | `https://registry.npmmirror.com` | `https://registry.npmjs.org` | #### 5. **验证配置** ```bash # 检查最终配置 yarn config list | grep registry # 应输出: registry "https://registry.npmmirror.com" ``` #### ⚠️ 注意事项 1. **权限问题**:在 Linux/macOS 中使用 `sudo` 执行命令可能导致配置写入 root 目录,建议用普通用户操作[^4] 2. **项目级覆盖**:在项目根目录创建 `.yarnrc` 文件可覆盖全局配置: ```ini # 项目级配置(优先级高于全局) registry "https://registry.npmmirror.com" ``` 3. **镜像同步延迟**:淘宝镜像每 **10 分钟**同步一次官方源,紧急依赖建议查 [npmmirror.com](https://npmmirror.com) 确认包版本[^2] #### 🔍 配置原理 Yarn 的配置存储在用户目录的 `.yarnrc` 文件中(路径:`~/.yarnrc`),修改后所有操作将自动使用新镜像源。此配置独立于 npm,不会影响 npm 的 registry 设置[^1][^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值