我在部署中使用 initContainers。为每个 Pod 创建一个 init 容器。
是否可以为整个部署只获得一个 init 容器?
编辑:
用例:需要在创建 pod 之前运行一些数据库迁移命令。所以我将这些命令放在 init pods 中。
问题: - 每次创建 Pod 时,都会创建 init 容器 - 向上扩展时会创建 init 容器
解决方案:我终于在这篇文章中找到了一个很好的例子来解决这个问题
我有一个 Kubernetes 部署,它是两个具有不同配置的 ACTIVE ReplicaSet 的所有者/父级。
此设置由 Helm 管理。
我已经尝试过制作revisionHistory: 0. 这不起作用,因为 ReplicaSet 并未处于非活动状态。这个旧的 ReplicaSet 尝试启动一个 Pod,但由于节点上的资源限制,它仍处于挂起状态。
我尝试更新 Deployment,但只更新了新的 ReplicaSet。旧的还是一样。
我也无法删除此 ReplicaSet。这给我带来了很多麻烦。
有人可以帮我解决这个问题吗?
Helm 部署模板 -
apiVersion: apps/v1
kind: Deployment
metadata:
name: example
namespace: kube-system
spec:
selector:
matchLabels:
k8s-app: example
replicas: 1
template:
metadata:
labels:
k8s-app: example
spec:
serviceAccountName: example
nodeSelector:
node-role: example-node
containers:
- name: example
image: example-image:vX.X.X
resources:
requests:
cpu: 100m
ports:
- name: example-port
containerPort: XXXX
- name: example-port-1
containerPort: XXXX
readinessProbe:
httpGet:
path: /example …Run Code Online (Sandbox Code Playgroud) 当我在 bash 模式下运行容器时,我想将用户www-data添加为默认用户。
目前,当我输入 WHOAMI 时,它显示root用户,但我需要www-data用户,如何在 docker 中执行此操作。
这是我的泊坞窗文件:
FROM php:7.2-fpm-alpine
LABEL maintainer="y.ghorecha@abc.de" \
muz.customer="xxx" \
muz.product="WIDC" \
container.mode="production"
#https://pkgs.alpinelinux.org/packages
RUN apk add --no-cache --virtual .deps autoconf tzdata build-base libzip-dev mysql-dev gmp-dev \
libxml2-dev libpng-dev zlib-dev freetype-dev jpeg-dev icu-dev openldap-dev libxslt-dev &&\
docker-php-ext-install zip xml mbstring json intl gd pdo pdo_mysql iconv soap \
dom gmp fileinfo sockets bcmath mysqli ldap xsl &&\
echo 'date.timezone="Europe/Berlin"' >> "${PHP_INI_DIR}"/php.ini &&\
cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime &&\
echo 'Europe/Berlin' > …Run Code Online (Sandbox Code Playgroud) 真的很难理解和调试 ingress 的规则。谁能分享一个好的参考?
问题是入口如何在不指定主机的情况下工作?
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/force-ssl-redirect: \"false\"
name: my-app
spec:
rules:
http:
paths:
- backend:
path: /
serviceName: my-app
servicePort: http
Run Code Online (Sandbox Code Playgroud)
分配主机(例如- host: aws-dsn-name.org)后,它不起作用。更改路径后path: /v1/也不起作用:(。
如何调试/检查映射是否正确完成?
此外,何时使用extensions/v1beta1或networking.k8s.io/v1beta1
我有来自kubernetes的这个json输出从kubectl get pods -o jsonpath = {.items [*]}得到它
<json>
{
"apiVersion": "v1",
"items": [
{
"apiVersion": "v1",
"kind": "Pod",
"metadata": {
"annotations": {
"kubernetes.io/created-by": "{\"kind\":\"SerializedReference\",\"apiVersion\":\"v1\",\"reference\":{\"kind\":\"ReplicaSet\",\"namespace\":\"default\",\"name\":\"some-appdeployment-1780875823\",\"uid\":\"7180b966-7ec1-11e7-9981-305a3ae15081\",\"apiVersion\":\"extensions\",\"resourceVersion\":\"16711638\"}}\n"
},
"creationTimestamp": "2017-08-11T18:18:15Z",
"generateName": "some-appdeployment-1780875823-",
"labels": {
"app": "myapp-auth-some-app",
"pod-template-hash": "1780875823"
},
"name": "some-appdeployment-1780875823-59p06",
"namespace": "default",
"ownerReferences": [
{
"apiVersion": "extensions/v1beta1",
"controller": true,
"kind": "ReplicaSet",
"name": "some-appdeployment-1780875823",
"uid": "7180b966-7ec1-11e7-9981-305a3ae15081"
}
],
"resourceVersion": "16711688",
"selfLink": "/api/v1/namespaces/default/pods/some-appdeployment-1780875823-59p06",
"uid": "71829a96-7ec1-11e7-9981-305a3ae15081"
},
"spec": {
"containers": [
{
"env": [
{
"name": "PROFILE",
"value": "dev"
}
],
"image": "dockerrepo/myapp-auth-some-app:6",
"imagePullPolicy": …Run Code Online (Sandbox Code Playgroud)